diff --git a/aliases.lua b/aliases.lua new file mode 100644 index 0000000..fce7218 --- /dev/null +++ b/aliases.lua @@ -0,0 +1,11 @@ +-- used to remove the old vine nodes. This gives room for the new nodes +minetest.register_alias( 'vines:root', 'air' ) +minetest.register_alias( 'vines:root_rotten', 'air' ) +minetest.register_alias( 'vines:vine', 'air' ) +minetest.register_alias( 'vines:vine_rotten', 'air' ) +minetest.register_alias( 'vines:side', 'air' ) +minetest.register_alias( 'vines:side_rotten', 'air' ) +minetest.register_alias( 'vines:jungle', 'air' ) +minetest.register_alias( 'vines:jungle_rotten', 'air' ) +minetest.register_alias( 'vines:willow', 'air' ) +minetest.register_alias( 'vines:willow_rotten', 'air' ) diff --git a/functions.lua b/functions.lua index ec0eba9..5ffb3c9 100644 --- a/functions.lua +++ b/functions.lua @@ -1,41 +1,41 @@ vines.register_vine = function( name, defs, biome ) --different properties for bottom and side vines. - local drop_node = 'vines:'..name - local drawtype = '' local selection_box local groups = { vines=1, snappy=3, flammable=2 } - local group_name = name..'_vines' - biome.spawn_surfaces[ #biome.spawn_surfaces ] = group_name + local vine_name_end = 'vines:'..name..'_end' + local vine_name_middle = 'vines:'..name..'_middle' - if ( biome.spawn_on_side ) then - selection_box = { - type = "wallmounted", - } - drawtype = 'signlike' - else - selection_box = { - type = "fixed", - fixed = { -0.4, -1/2, -0.4, 0.4, 1/2, 0.4 }, - } + local vine_image_end = "vines_"..name.."_end.png" + local vine_image_middle = "vines_"..name.."_middle.png" + + local drop_node = vine_name_end + + biome.spawn_plants = { vine_name_end } + + local vine_group = 'group:'..name..'_vines' + biome.spawn_surfaces[ #biome.spawn_surfaces + 1 ] = vine_group + + local selection_box = { type = "wallmounted", } + local drawtype = 'signlike' + if ( not biome.spawn_on_side ) then + selection_box = { type = "fixed", fixed = { -0.4, -1/2, -0.4, 0.4, 1/2, 0.4 }, } drawtype = 'plantlike' end - biome.spawn_plants = { "vines:"..name } - - minetest.register_node( "vines:"..name, { + minetest.register_node( vine_name_end, { description = defs.description, walkable = false, climbable = true, - wield_image = "vines_"..name..".png", + wield_image = vine_image_end, drop = "", sunlight_propagates = true, paramtype = "light", paramtype2 = "wallmounted", buildable_to = true, - tile_images = { "vines_"..name..".png" }, + tile_images = { vine_image_end }, drawtype = drawtype, - inventory_image = "vines_"..name..".png", + inventory_image = vine_image_end, groups = groups, sounds = default.node_sound_leaves_defaults(), selection_box = selection_box, @@ -49,7 +49,7 @@ vines.register_vine = function( name, defs, biome ) local bottom_node = minetest.get_node( bottom ) if bottom_node.name == "air" then if not ( math.random( defs.average_length ) == 1 ) then - minetest.set_node( pos, { name = node.name..'_rotten', param2 = node.param2 } ) + minetest.set_node( pos, { name = vine_name_middle, param2 = node.param2 } ) minetest.set_node( bottom, { name = node.name, param2 = node.param2 } ) local timer = minetest.get_node_timer( bottom_node ) timer:start( math.random(5, 10) ) @@ -61,10 +61,9 @@ vines.register_vine = function( name, defs, biome ) end }) - local name = name..'_rotten' - minetest.register_node( "vines:"..name, { - description = "Rotten "..defs.description, + minetest.register_node( vine_name_middle, { + description = "Matured "..defs.description, walkable = false, climbable = true, drop = "", @@ -72,10 +71,10 @@ vines.register_vine = function( name, defs, biome ) paramtype = "light", paramtype2 = "wallmounted", buildable_to = true, - tile_images = { "vines_"..name..".png" }, - wield_image = "vines_"..name..".png", + tile_images = { vine_image_middle }, + wield_image = vine_image_middle, drawtype = drawtype, - inventory_image = "vines_"..name..".png", + inventory_image = vine_image_middle, groups = groups, sounds = default.node_sound_leaves_defaults(), selection_box = selection_box, diff --git a/init.lua b/init.lua index 5a32412..72eda93 100644 --- a/init.lua +++ b/init.lua @@ -4,6 +4,7 @@ vines = { } dofile( minetest.get_modpath( vines.name ) .. "/functions.lua" ) +dofile( minetest.get_modpath( vines.name ) .. "/aliases.lua" ) dofile( minetest.get_modpath( vines.name ) .. "/recipes.lua" ) dofile( minetest.get_modpath( vines.name ) .. "/crafts.lua" ) dofile( minetest.get_modpath( vines.name ) .. "/nodes.lua" ) diff --git a/textures/vines_jungle.png b/textures/vines_jungle_end.png similarity index 100% rename from textures/vines_jungle.png rename to textures/vines_jungle_end.png diff --git a/textures/vines_jungle_rotten.png b/textures/vines_jungle_middle.png similarity index 100% rename from textures/vines_jungle_rotten.png rename to textures/vines_jungle_middle.png diff --git a/textures/vines_root.png b/textures/vines_root_end.png similarity index 100% rename from textures/vines_root.png rename to textures/vines_root_end.png diff --git a/textures/vines_root_rotten.png b/textures/vines_root_middle.png similarity index 100% rename from textures/vines_root_rotten.png rename to textures/vines_root_middle.png diff --git a/textures/vines_side.png b/textures/vines_side_end.png similarity index 100% rename from textures/vines_side.png rename to textures/vines_side_end.png diff --git a/textures/vines_side_rotten.png b/textures/vines_side_middle.png similarity index 100% rename from textures/vines_side_rotten.png rename to textures/vines_side_middle.png diff --git a/textures/vines_vine.png b/textures/vines_vine_end.png similarity index 100% rename from textures/vines_vine.png rename to textures/vines_vine_end.png diff --git a/textures/vines_vine_rotten.png b/textures/vines_vine_middle.png similarity index 100% rename from textures/vines_vine_rotten.png rename to textures/vines_vine_middle.png diff --git a/textures/vines_willow.png b/textures/vines_willow_end.png similarity index 100% rename from textures/vines_willow.png rename to textures/vines_willow_end.png diff --git a/textures/vines_willow_rotten.png b/textures/vines_willow_middle.png similarity index 100% rename from textures/vines_willow_rotten.png rename to textures/vines_willow_middle.png diff --git a/vines.lua b/vines.lua index 349a1ee..2b5cf59 100644 --- a/vines.lua +++ b/vines.lua @@ -88,15 +88,13 @@ vines.register_vine( 'willow', { description = "Willow Vines", average_length = 9, },{ - avoid_nodes = {"vines:willow", "vines:willow_rotten"}, + avoid_nodes = { "vines:willow_middle" }, avoid_radius = 5, + near_nodes = { 'default:water_source' }, + near_nodes_size = 20, + plantlife_limit = -0.7, + spawn_chance = 10, spawn_delay = 500, - spawn_chance = 100, - spawn_surfaces = {"moretrees:willow_leaves"}, spawn_on_side = true, - plantlife_limit = -0.9, - humidity_max = 1, - humidity_min = 0.8, - temp_min = 0.1, - temp_max = 1, + spawn_surfaces = {"moretrees:willow_leaves"}, })