From d31bd0767bc656407535dea5de793d440005da80 Mon Sep 17 00:00:00 2001 From: Juraj Vajda Date: Mon, 29 Jan 2024 13:08:45 -0500 Subject: [PATCH] 17 Create vines method --- LICENSE.txt | 11 +- api.lua | 21 +- nodes.lua | 4 - textures/everness_ivis_vine_1.png | Bin 0 -> 217 bytes ...ivis_vine.png => everness_ivis_vine_2.png} | Bin textures/everness_lumabus_vine_end.png | Bin 0 -> 300 bytes ...vine_cave.png => everness_vine_cave_1.png} | Bin ...se_leaves.png => everness_vine_cave_2.png} | Bin ...ow_vine.png => everness_willow_vine_1.png} | Bin textures/everness_willow_vine_2.png | Bin 0 -> 555 bytes tools.lua | 5 +- vines.lua | 3086 ++--------------- 12 files changed, 257 insertions(+), 2870 deletions(-) create mode 100644 textures/everness_ivis_vine_1.png rename textures/{everness_ivis_vine.png => everness_ivis_vine_2.png} (100%) create mode 100644 textures/everness_lumabus_vine_end.png rename textures/{everness_vine_cave.png => everness_vine_cave_1.png} (100%) rename textures/{everness_vine_cave_with_mese_leaves.png => everness_vine_cave_2.png} (100%) rename textures/{everness_willow_vine.png => everness_willow_vine_1.png} (100%) create mode 100644 textures/everness_willow_vine_2.png diff --git a/LICENSE.txt b/LICENSE.txt index 3d44000..293aacf 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -793,7 +793,8 @@ GNU Lesser General Public License v2.1 or later - everness_illumi_root.png - everness_ivis_moss.png - everness_ivis_vine_end.png -- everness_ivis_vine.png +- everness_ivis_vine_1.png +- everness_ivis_vine_2.png - everness_lootchest_marker_side.png - everness_lootchest_marker_top.png - everness_lotus_flower_mesh_not_animated.png @@ -814,6 +815,7 @@ GNU Lesser General Public License v2.1 or later - everness_lotus_leaf_y.png - everness_lumabus_bulb_purple.png - everness_lumabus_leaves.png +- everness_lumabus_vine_end.png - everness_lumabus_vine_1.png - everness_lumabus_vine_2.png - everness_lumecorn_item.png @@ -945,8 +947,8 @@ GNU Lesser General Public License v2.1 or later - everness_venus_trap_item.png - everness_venus_trap_mesh.png - everness_vine_cave_end.png -- everness_vine_cave_with_mese_leaves.png -- everness_vine_cave.png +- everness_vine_cave_1.png +- everness_vine_cave_2.png - everness_vine_shears.png - everness_volcanic_rock_with_magma_animated.png - everness_volcanic_rock.png @@ -961,7 +963,8 @@ GNU Lesser General Public License v2.1 or later - everness_willow_tree_side.png - everness_willow_tree_top.png - everness_willow_vine_end.png -- everness_willow_vine.png +- everness_willow_vine_1.png +- everness_willow_vine_2.png - everness_willow_wood.png -- Derived from texture by BlockMen (CC BY-SA 3.0) - everness_xpanes_edge_pyrite.png - everness_water_geyser_particle.png diff --git a/api.lua b/api.lua index 2d43911..612c03d 100644 --- a/api.lua +++ b/api.lua @@ -310,6 +310,8 @@ function Everness.tick_sulfur_stone_again(self, pos) minetest.get_node_timer(pos):start(math.random(40, 80)) end +-- Grows vines +-- @param pos {vector} function Everness.grow_vine(self, pos, elapsed, params) local node = minetest.get_node(pos) local pos_under = vector.new(pos.x, pos.y - 1, pos.z) @@ -350,30 +352,13 @@ function Everness.grow_vine(self, pos, elapsed, params) local new_node_name = node_names[math.random(1, #node_names)] - minetest.set_node(pos, { name = new_node_name, param2 = node.param2 }) + minetest.set_node(pos, { name = new_node_name, param2 = new_node_name.param2 or 0 }) -- last hanging vine minetest.set_node(pos_under, { name = end_node_name, param2 = end_node_param2 and end_node_param2 or node.param2 }) Everness:tick_vine(pos_under) end -function Everness.dig_vine(self, pos, node_name, digger) - --only dig give the vine if shears are used - if not digger then - return - end - - local wielded_item = digger:get_wielded_item() - - if 'everness:vine_shears' == wielded_item:get_name() then - local inv = digger:get_inventory() - - if inv then - inv:add_item('main', ItemStack(node_name)) - end - end -end - -- -- Sounds -- diff --git a/nodes.lua b/nodes.lua index 22e33c4..b3fbee1 100644 --- a/nodes.lua +++ b/nodes.lua @@ -11076,8 +11076,6 @@ Everness:register_node('everness:lumabus_vine_lantern', { }, use_texture_alpha = 'clip', paramtype = 'light', - -- wield_image = 'everness_lumabus_vine_end_bottom.png', - -- inventory_image = 'everness_lumabus_vine_end_bottom.png', groups = { -- MTG cracky = 3, @@ -11107,8 +11105,6 @@ Everness:register_node('everness:eye_vine_lantern', { 'everness_eye_vine_end_bottom.png', 'everness_eye_vine_end_side.png', }, - wield_image = 'everness_eye_vine_end_bottom.png', - inventory_image = 'everness_eye_vine_end_bottom.png', drawtype = 'normal', groups = { -- MTG diff --git a/textures/everness_ivis_vine_1.png b/textures/everness_ivis_vine_1.png new file mode 100644 index 0000000000000000000000000000000000000000..014d54b19cea017a634e6320cc96e7087d21ab64 GIT binary patch literal 217 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUbuaKqQOxMjQEO3Gny1^@ zsG_h)({ZN7(ki{4yQiLSbK2KysM)2bzR70o9Oc{vj@$q3T<`>_m$4+sFPOpM*^M+H zC*0G;F@)oKazaAFgTNi7jf^ZaF57S);0a?s$Y#*&*~rMWgZIFd^{hSuZmB1YJ365AaIrokvy5Sd`%oZ-k0FR*jw1i$>D4*PKr0wL MUHx3vIVCg!00x9ex&QzG literal 0 HcmV?d00001 diff --git a/textures/everness_ivis_vine.png b/textures/everness_ivis_vine_2.png similarity index 100% rename from textures/everness_ivis_vine.png rename to textures/everness_ivis_vine_2.png diff --git a/textures/everness_lumabus_vine_end.png b/textures/everness_lumabus_vine_end.png new file mode 100644 index 0000000000000000000000000000000000000000..e5694e9b7053bad5e7f3a0674c09bf37a075943d GIT binary patch literal 300 zcmV+{0n`48P)d;uiO1ES@#F2Yc{drzXSpUgu#fE9BYUg*{$74Sd5c`4(&?_ z^t6Gox8m4pI!g~p#5_D6ut&jjuQb;03q#dEq@a= yxe?RfL??;2r*9&6SODJxt9G92>1E6e*Z=?+fjL6M>znZa0000+KD^> literal 0 HcmV?d00001 diff --git a/textures/everness_vine_cave.png b/textures/everness_vine_cave_1.png similarity index 100% rename from textures/everness_vine_cave.png rename to textures/everness_vine_cave_1.png diff --git a/textures/everness_vine_cave_with_mese_leaves.png b/textures/everness_vine_cave_2.png similarity index 100% rename from textures/everness_vine_cave_with_mese_leaves.png rename to textures/everness_vine_cave_2.png diff --git a/textures/everness_willow_vine.png b/textures/everness_willow_vine_1.png similarity index 100% rename from textures/everness_willow_vine.png rename to textures/everness_willow_vine_1.png diff --git a/textures/everness_willow_vine_2.png b/textures/everness_willow_vine_2.png new file mode 100644 index 0000000000000000000000000000000000000000..61af58cd561780bd375b581d175fb3072a33cb65 GIT binary patch literal 555 zcmV+`0@VG9P)S7d2ohE3GDg4M6{gLCv~y}{n<@hvM$6KLN8(RHNsXl8hp4R?xn zm-H^9brEaThg99S^k^b+cp0sYw4?^yQ`yHad8f1mE?xa8t@2F@Yys)^U#f2Ca)eMy zVE{C+EKD`q+-+XplDs(2jKb(SR)oMgcDVL=ymN`4Y|uM80s+9oB-X#9jBT^6ni+1G z@_kfyzyy{;wNV~^W$8XgXISF~wwM;Ml0#Id20YL?kD~6JwZWyU-lQ0QXK9*|8}B5y zy4DxI00y?@(MfEe-S2NSI6zBt^azZq#KnJh2oK-^C})wI05de1T=T*lm|>ajJ(RmO zGo0f^HAz;gc>u(LbQg?O4M4>rAU+TPm)3nsuXvrTX%%-zXSgLY tVPGcIHXiD0cDdVpz8Q9UmKy$#hksmdm2a>|_z(a9002ovPDHLkV1flW0E++s literal 0 HcmV?d00001 diff --git a/tools.lua b/tools.lua index cc4d560..7f0e30c 100644 --- a/tools.lua +++ b/tools.lua @@ -30,6 +30,10 @@ Everness:register_tool('everness:vine_shears', { wool = { times = { [3] = 0.2 }, uses = 30, maxlevel = 3 } } }, + groups = { + -- Everness + vine_shears = 1 + }, -- MCL _mcl_toollike_wield = true, _mcl_diggroups = { @@ -203,7 +207,6 @@ Everness:register_tool('everness:shovel_silk', { local old_handle_node_drops = minetest.handle_node_drops ----@diagnostic disable-next-line: duplicate-set-field function minetest.handle_node_drops(pos, drops, digger) if not digger or not digger:is_player() diff --git a/vines.lua b/vines.lua index 5602332..1d0f460 100644 --- a/vines.lua +++ b/vines.lua @@ -16,2900 +16,300 @@ local S = minetest.get_translator(minetest.get_current_modname()) +local function register_vine(name, def, overrides) + local _overrides = overrides and table.copy(overrides) or {} + local _def = table.copy(def) + local _name = name + + _def.walkable = false + _def.climbable = true + _def.sunlight_propagates = true + _def.paramtype = 'light' + _def.buildable_to = false + _def.drawtype = 'plantlike' + _def.paramtype2 = 'meshoptions' + _def.place_param2 = 8 + _def.visual_scale = 1.1 + _def.light_source = 7 + _def.selection_box = def.selection_box or { + type = 'fixed', + fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } + } + _def.groups = { + -- MTG + vine = 1, + snappy = 3, + -- Everness + falling_vines = 1, + no_silktouch = 1, + -- X Farming + compost = 30, + -- MCL + handy = 1, + axey = 1, + shearsy = 1, + swordy = 1, + deco_block = 1, + dig_by_piston = 1, + destroy_by_lava_flow = 1, + compostability = 30, + fire_encouragement = 15, + fire_flammability = 100, + -- ALL + flammable = 2, + } + -- MCL + _def._mcl_shears_drop = true + _def._mcl_blast_resistance = 0.2 + _def._mcl_hardness = 0.2 + _def.on_rotate = function() + return false + end + _def.sounds = Everness.node_sound_leaves_defaults() + _def.waving = 2 + _def.on_destruct = function(pos) + local pos_below = vector.new(pos.x, pos.y - 1, pos.z) + local node_below = minetest.get_node(pos_below) + + if minetest.get_item_group(node_below.name, 'vine') > 0 then + minetest.remove_node(pos_below) + end + end + _def.after_dig_node = function(pos, oldnode, oldmetadata, digger) + local pos_above = vector.new(pos.x, pos.y + 1, pos.z) + Everness:tick_vine(pos_above) + end + _def.on_construct = function(pos) + Everness:tick_vine(pos) + end + + local grow_vine_node_names = {} + local grow_vine_end_node_name = '' + + for i = 1, 3 do + local _d = table.copy(_def) + local _n = _name + local first = i == 1 + local last = i == 3 + + if last then + -- end + _n = _n .. '_end' + _d.groups.vine_end = 1 + grow_vine_end_node_name = 'everness:' .. _n + _d.tiles = { 'everness_' .. _n .. '.png' } + _d.wield_image = 'everness_' .. _n .. '.png' + _d.inventory_image = 'everness_' .. _n .. '.png' + + _d.drop = { + max_items = 1, + items = { + { + tool_groups = { 'vine_shears' }, + items = { 'everness:' .. _n } + } + } + } + + if _overrides.last_def then + -- custom, not 'plantlike' drawtype + for k, v in pairs(_overrides.last_def) do + _d[k] = v + end + + if not _overrides.last_def.place_param2 then + _d.place_param2 = nil + end + end + else + -- 1, 2.. + _n = _n .. '_' .. i + _d.tiles = { 'everness_' .. _n .. '.png' } + _d.wield_image = 'everness_' .. _n .. '.png' + _d.inventory_image = 'everness_' .. _n .. '.png' + + _d.drop = { + max_items = 1, + items = { + { + tool_groups = { 'vine_shears' }, + items = { 'everness:' .. _n } + } + } + } + + table.insert(grow_vine_node_names, 'everness:' .. _n) + end + + if not first then + -- 2.., end + _d.light_source = 12 + end + + _d.on_timer = function(pos, elapsed) + Everness:grow_vine(pos, elapsed, { + node_names = grow_vine_node_names, + end_node_name = grow_vine_end_node_name, + end_node_param2 = _overrides.end_node_param2 and _overrides.end_node_param2 or nil + }) + end + + print('everness:' .. _n, dump(_d)) + + Everness:register_node('everness:' .. _n, _d) + end +end + -- Cave vine -Everness:register_node('everness:vine_cave', { - description = S('Cave Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_vine_cave.png' }, - wield_image = 'everness_vine_cave.png', - inventory_image = 'everness_vine_cave.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } - }, - groups = { - -- MTG - vine = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 7, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(pos) - Everness:tick_vine(pos) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:vine_cave', 'everness:vine_cave_with_mese_leaves' }, - end_node_name = 'everness:vine_cave_end' - }) - end, +register_vine('vine_cave', { + description = S('Cave Vine') }) -Everness:register_node('everness:vine_cave_end', { - description = S('Cave Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_vine_cave_end.png' }, - wield_image = 'everness_vine_cave_end.png', - inventory_image = 'everness_vine_cave_end.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } - }, - groups = { - -- MTG - vine = 1, - vine_end = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 7, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(...) - Everness:tick_vine(...) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:vine_cave', 'everness:vine_cave_with_mese_leaves' }, - end_node_name = 'everness:vine_cave_end' - }) - end, -}) - -Everness:register_node('everness:vine_cave_with_mese_leaves', { - description = S('Cave Vine with Mese Leaves'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_vine_cave_with_mese_leaves.png' }, - wield_image = 'everness_vine_cave_with_mese_leaves.png', - inventory_image = 'everness_vine_cave_with_mese_leaves.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } - }, - groups = { - -- MTG - vine = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 12, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(...) - Everness:tick_vine(...) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:vine_cave', 'everness:vine_cave_with_mese_leaves' }, - end_node_name = 'everness:vine_cave_end' - }) - end, -}) +minetest.register_alias('everness:vine_cave', 'everness:vine_cave_1') +minetest.register_alias('everness:vine_cave_with_mese_leaves', 'everness:vine_cave_2') -- Whispering Gourd Vine -Everness:register_node('everness:whispering_gourd_vine_1', { - description = S('Whispering Gourd Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_whispering_gourd_vine_1.png' }, - wield_image = 'everness_whispering_gourd_vine_1.png', - inventory_image = 'everness_whispering_gourd_vine_1.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } - }, - groups = { - -- MTG - vine = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 7, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(pos) - Everness:tick_vine(pos) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:whispering_gourd_vine_1', 'everness:whispering_gourd_vine_2' }, - end_node_name = 'everness:whispering_gourd_vine_end' - }) - end, -}) - -Everness:register_node('everness:whispering_gourd_vine_end', { - description = S('Whispering Gourd Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_whispering_gourd_vine_end.png' }, - wield_image = 'everness_whispering_gourd_vine_end.png', - inventory_image = 'everness_whispering_gourd_vine_end.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } - }, - groups = { - -- MTG - vine = 1, - vine_end = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 12, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(...) - Everness:tick_vine(...) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:whispering_gourd_vine_1', 'everness:whispering_gourd_vine_2' }, - end_node_name = 'everness:whispering_gourd_vine_end' - }) - end, -}) - -Everness:register_node('everness:whispering_gourd_vine_2', { - description = S('Whispering Gourd Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_whispering_gourd_vine_2.png' }, - wield_image = 'everness_whispering_gourd_vine_2.png', - inventory_image = 'everness_whispering_gourd_vine_2.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } - }, - groups = { - -- MTG - vine = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 12, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(...) - Everness:tick_vine(...) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:whispering_gourd_vine_1', 'everness:whispering_gourd_vine_2' }, - end_node_name = 'everness:whispering_gourd_vine_end' - }) - end, +register_vine('whispering_gourd_vine', { + description = S('Whispering Gourd Vine') }) -- Bulb Vine -Everness:register_node('everness:bulb_vine_1', { - description = S('Bulb Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_bulb_vine_1.png' }, - wield_image = 'everness_bulb_vine_1.png', - inventory_image = 'everness_bulb_vine_1.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } - }, - groups = { - -- MTG - vine = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 7, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(pos) - Everness:tick_vine(pos) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:bulb_vine_1', 'everness:bulb_vine_2' }, - end_node_name = 'everness:bulb_vine_end' - }) - end, -}) - -Everness:register_node('everness:bulb_vine_end', { - description = S('Bulb Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_bulb_vine_end.png' }, - wield_image = 'everness_bulb_vine_end.png', - inventory_image = 'everness_bulb_vine_end.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } - }, - groups = { - -- MTG - vine = 1, - vine_end = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 12, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(...) - Everness:tick_vine(...) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:bulb_vine_1', 'everness:bulb_vine_2' }, - end_node_name = 'everness:bulb_vine_end' - }) - end, -}) - -Everness:register_node('everness:bulb_vine_2', { - description = S('Bulb Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_bulb_vine_2.png' }, - wield_image = 'everness_bulb_vine_2.png', - inventory_image = 'everness_bulb_vine_2.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } - }, - groups = { - -- MTG - vine = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 12, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(...) - Everness:tick_vine(...) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:bulb_vine_1', 'everness:bulb_vine_2' }, - end_node_name = 'everness:bulb_vine_end' - }) - end, +register_vine('bulb_vine', { + description = S('Bulb Vine') }) -- Willow Vine -Everness:register_node('everness:willow_vine_1', { - description = S('Willow Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_willow_vine.png' }, - wield_image = 'everness_willow_vine.png', - inventory_image = 'everness_willow_vine.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } - }, - groups = { - -- MTG - vine = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 7, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(pos) - Everness:tick_vine(pos) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:willow_vine_1' }, - end_node_name = 'everness:willow_vine_end' - }) - end, -}) - -Everness:register_node('everness:willow_vine_end', { - description = S('Willow Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_willow_vine_end.png' }, - wield_image = 'everness_willow_vine_end.png', - inventory_image = 'everness_willow_vine_end.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } - }, - groups = { - -- MTG - vine = 1, - vine_end = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 12, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(...) - Everness:tick_vine(...) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:willow_vine_1' }, - end_node_name = 'everness:willow_vine_end' - }) - end, +register_vine('willow_vine', { + description = S('Willow Vine') }) -- Eye Vine -Everness:register_node('everness:eye_vine_1', { - description = S('Eye Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_eye_vine_1.png' }, - wield_image = 'everness_eye_vine_1.png', - inventory_image = 'everness_eye_vine_1.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } +register_vine('eye_vine', + { + description = S('Eye Vine'), }, - groups = { - -- MTG - vine = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 7, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(pos) - Everness:tick_vine(pos) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:eye_vine_1', 'everness:eye_vine_2' }, - end_node_name = 'everness:eye_vine_end' - }) - end, -}) - -Everness:register_node('everness:eye_vine_end', { - description = S('Eye Vine'), - walkable = false, - climbable = true, - paramtype = 'light', - tiles = { - 'everness_eye_vine_end_top.png', - 'everness_eye_vine_end_bottom.png', - 'everness_eye_vine_end_side.png', - }, - wield_image = 'everness_eye_vine_end_bottom.png', - inventory_image = 'everness_eye_vine_end_bottom.png', - drawtype = 'normal', - groups = { - -- MTG - vine = 1, - vine_end = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 12, - drop = '', - paramtype2 = 'facedir', - on_place = minetest.rotate_node, - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, 'everness:eye_vine_lantern', digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(...) - Everness:tick_vine(...) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:eye_vine_1', 'everness:eye_vine_2' }, - end_node_name = 'everness:eye_vine_end', - end_node_param2 = 0 - }) - end, -}) - -Everness:register_node('everness:eye_vine_2', { - description = S('Eye Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_eye_vine_2.png' }, - wield_image = 'everness_eye_vine_2.png', - inventory_image = 'everness_eye_vine_2.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } - }, - groups = { - -- MTG - vine = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 12, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(...) - Everness:tick_vine(...) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:eye_vine_1', 'everness:eye_vine_2' }, - end_node_name = 'everness:eye_vine_end' - }) - end, -}) + { + end_node_param2 = 0, + last_def = { + tiles = { + 'everness_eye_vine_end_top.png', + 'everness_eye_vine_end_bottom.png', + 'everness_eye_vine_end_side.png', + }, + wield_image = 'everness_eye_vine_end_bottom.png', + inventory_image = 'everness_eye_vine_end_bottom.png', + drawtype = 'normal', + paramtype2 = 'facedir', + sunlight_propagates = false, + visual_scale = 1, + selection_box = { + type = 'fixed', + fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 } + }, + drop = { + max_items = 1, + items = { + { + tool_groups = { 'vine_shears' }, + items = { 'everness:eye_vine_lantern' } + } + } + } + } + } +) -- Lumabus Vine -Everness:register_node('everness:lumabus_vine_1', { - description = S('Lumabus Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_lumabus_vine_1.png' }, - wield_image = 'everness_lumabus_vine_1.png', - inventory_image = 'everness_lumabus_vine_1.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } +register_vine('lumabus_vine', + { + description = S('Lumabus Vine') }, - groups = { - -- MTG - vine = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 7, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(pos) - Everness:tick_vine(pos) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:lumabus_vine_1', 'everness:lumabus_vine_2' }, - end_node_name = 'everness:lumabus_vine_end' - }) - end, -}) - -Everness:register_node('everness:lumabus_vine_end', { - description = S('Lumabus Vine'), - walkable = false, - climbable = true, - drawtype = 'mesh', - mesh = 'everness_lumabus.obj', - tiles = { - 'everness_lumabus_bulb_purple.png', - { - name = 'everness_lumabus_leaves.png', - backface_culling = false - } - }, - use_texture_alpha = 'clip', - paramtype = 'light', - -- wield_image = 'everness_lumabus_vine_end_bottom.png', - -- inventory_image = 'everness_lumabus_vine_end_bottom.png', - groups = { - -- MTG - vine = 1, - vine_end = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 12, - drop = '', - paramtype2 = 'wallmounted', - selection_box = { - type = 'fixed', - fixed = { - -1 / 2 + 3 / 16, - -1 / 2, - -1 / 2 + 3 / 16, - 1 / 2 - 3 / 16, - 1 / 2 - 6 / 16, - 1 / 2 - 3 / 16 - } - }, - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, 'everness:lumabus_vine_lantern', digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(...) - Everness:tick_vine(...) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:lumabus_vine_1', 'everness:lumabus_vine_2' }, - end_node_name = 'everness:lumabus_vine_end' - }) - end, -}) - -Everness:register_node('everness:lumabus_vine_2', { - description = S('Lumabus Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_lumabus_vine_2.png' }, - wield_image = 'everness_lumabus_vine_2.png', - inventory_image = 'everness_lumabus_vine_2.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } - }, - groups = { - -- MTG - vine = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 12, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(...) - Everness:tick_vine(...) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:lumabus_vine_1', 'everness:lumabus_vine_2' }, - end_node_name = 'everness:lumabus_vine_end' - }) - end, -}) + { + end_node_param2 = 0, + last_def = { + tiles = { + 'everness_lumabus_bulb_purple.png', + { + name = 'everness_lumabus_leaves.png', + backface_culling = false + } + }, + use_texture_alpha = 'clip', + drawtype = 'mesh', + mesh = 'everness_lumabus.obj', + paramtype2 = 'wallmounted', + sunlight_propagates = false, + visual_scale = 1, + selection_box = { + type = 'fixed', + fixed = { + -1 / 2 + 3 / 16, + -1 / 2, + -1 / 2 + 3 / 16, + 1 / 2 - 3 / 16, + 1 / 2 - 6 / 16, + 1 / 2 - 3 / 16 + } + }, + drop = { + max_items = 1, + items = { + { + tool_groups = { 'vine_shears' }, + items = { 'everness:lumabus_vine_lantern' } + } + } + } + }, + } +) -- Ivis Vine -Everness:register_node('everness:ivis_vine_1', { - description = S('Ivis Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_ivis_vine.png' }, - wield_image = 'everness_ivis_vine.png', - inventory_image = 'everness_ivis_vine.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } - }, - groups = { - -- MTG - vine = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 7, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(pos) - Everness:tick_vine(pos) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:ivis_vine_1', 'everness:ivis_vine_2' }, - end_node_name = 'everness:ivis_vine_end' - }) - end, -}) - -Everness:register_node('everness:ivis_vine_end', { - description = S('Ivis Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_ivis_vine_end.png' }, - wield_image = 'everness_ivis_vine_end.png', - inventory_image = 'everness_ivis_vine_end.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } - }, - groups = { - -- MTG - vine = 1, - vine_end = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 7, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(...) - Everness:tick_vine(...) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:ivis_vine_1', 'everness:ivis_vine_2' }, - end_node_name = 'everness:ivis_vine_end' - }) - end, -}) - -Everness:register_node('everness:ivis_vine_2', { - description = S('Ivis Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_ivis_vine.png' }, - wield_image = 'everness_ivis_vine.png', - inventory_image = 'everness_ivis_vine.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } - }, - groups = { - -- MTG - vine = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 12, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(...) - Everness:tick_vine(...) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:ivis_vine_1', 'everness:ivis_vine_2' }, - end_node_name = 'everness:ivis_vine_end' - }) - end, +register_vine('ivis_vine', { + description = S('Ivis Vine') }) -- Flowered vine -Everness:register_node('everness:flowered_vine_1', { - description = S('Flowered Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_flowered_vine_1.png' }, - wield_image = 'everness_flowered_vine_1.png', - inventory_image = 'everness_flowered_vine_1.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } - }, - groups = { - -- MTG - vine = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 12, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(pos) - Everness:tick_vine(pos) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:flowered_vine_1', 'everness:flowered_vine_2' }, - end_node_name = 'everness:flowered_vine_end' - }) - end, -}) - -Everness:register_node('everness:flowered_vine_end', { - description = S('Flowered Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_flowered_vine_end.png' }, - wield_image = 'everness_flowered_vine_end.png', - inventory_image = 'everness_flowered_vine_end.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } - }, - groups = { - -- MTG - vine = 1, - vine_end = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 12, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(...) - Everness:tick_vine(...) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:flowered_vine_1', 'everness:flowered_vine_2' }, - end_node_name = 'everness:flowered_vine_end' - }) - end, -}) - -Everness:register_node('everness:flowered_vine_2', { - description = S('Flowered Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_flowered_vine_2.png' }, - wield_image = 'everness_flowered_vine_2.png', - inventory_image = 'everness_flowered_vine_2.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } - }, - groups = { - -- MTG - vine = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 7, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(...) - Everness:tick_vine(...) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:flowered_vine_1', 'everness:flowered_vine_2' }, - end_node_name = 'everness:flowered_vine_end' - }) - end, +register_vine('flowered_vine', { + description = S('Flowered Vine') }) -- Reeds vine -Everness:register_node('everness:reeds_vine_1', { - description = S('Reeds Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_reeds_vine_1.png' }, - wield_image = 'everness_reeds_vine_1.png', - inventory_image = 'everness_reeds_vine_1.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } - }, - groups = { - -- MTG - vine = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 12, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(pos) - Everness:tick_vine(pos) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:reeds_vine_1', 'everness:reeds_vine_2' }, - end_node_name = 'everness:reeds_vine_end' - }) - end, -}) - -Everness:register_node('everness:reeds_vine_end', { - description = S('Reeds Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_reeds_vine_end.png' }, - wield_image = 'everness_reeds_vine_end.png', - inventory_image = 'everness_reeds_vine_end.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } - }, - groups = { - -- MTG - vine = 1, - vine_end = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 12, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(...) - Everness:tick_vine(...) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:reeds_vine_1', 'everness:reeds_vine_2' }, - end_node_name = 'everness:reeds_vine_end' - }) - end, -}) - -Everness:register_node('everness:reeds_vine_2', { - description = S('Reeds Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_reeds_vine_2.png' }, - wield_image = 'everness_reeds_vine_2.png', - inventory_image = 'everness_reeds_vine_2.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } - }, - groups = { - -- MTG - vine = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 7, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(...) - Everness:tick_vine(...) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:reeds_vine_1', 'everness:reeds_vine_2' }, - end_node_name = 'everness:reeds_vine_end' - }) - end, +register_vine('reeds_vine', { + description = S('Reeds Vine') }) -- Tenanea Flowers vine -Everness:register_node('everness:tenanea_flowers_vine_1', { - description = S('Flowered Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_tenanea_flowers_vine_2.png' }, - wield_image = 'everness_tenanea_flowers_vine_2.png', - inventory_image = 'everness_tenanea_flowers_vine_2.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } - }, - groups = { - -- MTG - vine = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 12, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(pos) - Everness:tick_vine(pos) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:tenanea_flowers_vine_1', 'everness:tenanea_flowers_vine_2' }, - end_node_name = 'everness:tenanea_flowers_vine_end' - }) - end, -}) - -Everness:register_node('everness:tenanea_flowers_vine_end', { - description = S('Flowered Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_tenanea_flowers_vine_end.png' }, - wield_image = 'everness_tenanea_flowers_vine_end.png', - inventory_image = 'everness_tenanea_flowers_vine_end.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } - }, - groups = { - -- MTG - vine = 1, - vine_end = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 12, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(...) - Everness:tick_vine(...) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:tenanea_flowers_vine_1', 'everness:tenanea_flowers_vine_2' }, - end_node_name = 'everness:tenanea_flowers_vine_end' - }) - end, -}) - -Everness:register_node('everness:tenanea_flowers_vine_2', { - description = S('Flowered Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_tenanea_flowers_vine_1.png' }, - wield_image = 'everness_tenanea_flowers_vine_1.png', - inventory_image = 'everness_tenanea_flowers_vine_1.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } - }, - groups = { - -- MTG - vine = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 7, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(...) - Everness:tick_vine(...) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:tenanea_flowers_vine_1', 'everness:tenanea_flowers_vine_2' }, - end_node_name = 'everness:tenanea_flowers_vine_end' - }) - end, +register_vine('tenanea_flowers_vine', { + description = S('Tenanea Flowers Vine') }) -- Twisted vine -Everness:register_node('everness:twisted_vine_1', { - description = S('Twisted Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_twisted_vine_1.png' }, - wield_image = 'everness_twisted_vine_1.png', - inventory_image = 'everness_twisted_vine_1.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } - }, - groups = { - -- MTG - vine = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 12, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(pos) - Everness:tick_vine(pos) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:twisted_vine_1', 'everness:twisted_vine_2' }, - end_node_name = 'everness:twisted_vine_end' - }) - end, -}) - -Everness:register_node('everness:twisted_vine_end', { - description = S('Twisted Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_twisted_vine_end.png' }, - wield_image = 'everness_twisted_vine_end.png', - inventory_image = 'everness_twisted_vine_end.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } - }, - groups = { - -- MTG - vine = 1, - vine_end = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 12, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(...) - Everness:tick_vine(...) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:twisted_vine_1', 'everness:twisted_vine_2' }, - end_node_name = 'everness:twisted_vine_end' - }) - end, -}) - -Everness:register_node('everness:twisted_vine_2', { - description = S('Twisted Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_twisted_vine_2.png' }, - wield_image = 'everness_twisted_vine_2.png', - inventory_image = 'everness_twisted_vine_2.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } - }, - groups = { - -- MTG - vine = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 7, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(...) - Everness:tick_vine(...) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:twisted_vine_1', 'everness:twisted_vine_2' }, - end_node_name = 'everness:twisted_vine_end' - }) - end, +register_vine('twisted_vine', { + description = S('Twisted Vine') }) -- Golden vine -Everness:register_node('everness:golden_vine_1', { - description = S('Golden Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_golden_vine_1.png' }, - wield_image = 'everness_golden_vine_1.png', - inventory_image = 'everness_golden_vine_1.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } - }, - groups = { - -- MTG - vine = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 12, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(pos) - Everness:tick_vine(pos) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:golden_vine_1', 'everness:golden_vine_2' }, - end_node_name = 'everness:golden_vine_end' - }) - end, -}) - -Everness:register_node('everness:golden_vine_end', { - description = S('Golden Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_golden_vine_end.png' }, - wield_image = 'everness_golden_vine_end.png', - inventory_image = 'everness_golden_vine_end.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } - }, - groups = { - -- MTG - vine = 1, - vine_end = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 12, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(...) - Everness:tick_vine(...) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:golden_vine_1', 'everness:golden_vine_2' }, - end_node_name = 'everness:golden_vine_end' - }) - end, -}) - -Everness:register_node('everness:golden_vine_2', { - description = S('Golden Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_golden_vine_2.png' }, - wield_image = 'everness_golden_vine_2.png', - inventory_image = 'everness_golden_vine_2.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } - }, - groups = { - -- MTG - vine = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 7, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(...) - Everness:tick_vine(...) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:golden_vine_1', 'everness:golden_vine_2' }, - end_node_name = 'everness:golden_vine_end' - }) - end, +register_vine('golden_vine', { + description = S('Golden Vine') }) -- Dense vine -Everness:register_node('everness:dense_vine_1', { - description = S('Dense Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_dense_vine_1.png' }, - wield_image = 'everness_dense_vine_1.png', - inventory_image = 'everness_dense_vine_1.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } - }, - groups = { - -- MTG - vine = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 12, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(pos) - Everness:tick_vine(pos) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:dense_vine_1', 'everness:dense_vine_2' }, - end_node_name = 'everness:dense_vine_end' - }) - end, -}) - -Everness:register_node('everness:dense_vine_end', { - description = S('Dense Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_dense_vine_end.png' }, - wield_image = 'everness_dense_vine_end.png', - inventory_image = 'everness_dense_vine_end.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } - }, - groups = { - -- MTG - vine = 1, - vine_end = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 12, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(...) - Everness:tick_vine(...) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:dense_vine_1', 'everness:dense_vine_2' }, - end_node_name = 'everness:dense_vine_end' - }) - end, -}) - -Everness:register_node('everness:dense_vine_2', { - description = S('Dense Vine'), - walkable = false, - climbable = true, - sunlight_propagates = true, - paramtype = 'light', - buildable_to = false, - tiles = { 'everness_dense_vine_2.png' }, - wield_image = 'everness_dense_vine_2.png', - inventory_image = 'everness_dense_vine_2.png', - drawtype = 'plantlike', - paramtype2 = 'meshoptions', - place_param2 = 8, - visual_scale = 1.1, - selection_box = { - type = 'fixed', - fixed = { -4 / 16, -8 / 16, -4 / 16, 4 / 16, 8 / 16, 4 / 16 } - }, - groups = { - -- MTG - vine = 1, - snappy = 3, - -- Everness - falling_vines = 1, - -- X Farming - compost = 50, - -- MCL - handy = 1, - axey = 1, - shearsy = 1, - swordy = 1, - deco_block = 1, - dig_by_piston = 1, - destroy_by_lava_flow = 1, - compostability = 50, - fire_encouragement = 15, - fire_flammability = 100, - -- ALL - flammable = 2, - }, - _mcl_shears_drop = true, - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = function() - return false - end, - sounds = Everness.node_sound_leaves_defaults(), - light_source = 7, - waving = 2, - drop = '', - on_destruct = function(pos) - local pos_below = vector.new(pos.x, pos.y - 1, pos.z) - local node_below = minetest.get_node(pos_below) - - if minetest.get_item_group(node_below.name, 'vine') > 0 then - minetest.remove_node(pos_below) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local pos_above = vector.new(pos.x, pos.y + 1, pos.z) - - Everness:dig_vine(pos, oldnode.name, digger) - Everness:tick_vine(pos_above) - end, - on_construct = function(...) - Everness:tick_vine(...) - end, - on_timer = function(pos, elapsed) - Everness:grow_vine(pos, elapsed, { - node_names = { 'everness:dense_vine_1', 'everness:dense_vine_2' }, - end_node_name = 'everness:dense_vine_end' - }) - end, +register_vine('dense_vine', { + description = S('Dense Vine') }) -- LBMs