Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • Illuna-Minetest/plantlife_modpack
1 result
Show changes
Adds climbable vines that are spawned on trees.
-- support for i18n
local S = plantlife_i18n.gettext
vines.register_vine = function( name, defs, biome )
local biome = biome
local groups = { vines=1, snappy=3, flammable=2 }
local vine_name_end = 'vines:'..name..'_end'
......@@ -61,9 +63,8 @@ vines.register_vine = function( name, defs, biome )
end
})
minetest.register_node( vine_name_middle, {
description = "Matured "..defs.description,
description = S("Matured").." "..defs.description,
walkable = false,
climbable = true,
drop = "",
......@@ -79,12 +80,9 @@ vines.register_vine = function( name, defs, biome )
sounds = default.node_sound_leaves_defaults(),
selection_box = selection_box,
on_destruct = function( pos )
local node = minetest.get_node( pos )
local bottom = {x=pos.x, y=pos.y-1, z=pos.z}
local bottom_node = minetest.get_node( bottom )
if minetest.get_item_group( bottom_node.name, "vines") > 0 then
-- Calling `remove_node` directly would cause
-- a stack overflow for really long vines.
minetest.after( 0, minetest.remove_node, bottom )
end
end,
......@@ -95,12 +93,12 @@ vines.register_vine = function( name, defs, biome )
biome_lib:spawn_on_surfaces( biome )
local override_nodes = function( nodes, defs )
local function override( index, registered )
local override_nodes = function( nodes, def )
local function override( index, registered )
local node = nodes[ index ]
if index > #nodes then return registered end
if minetest.registered_nodes[node] then
minetest.override_item( node, defs )
minetest.override_item( node, def )
registered[#registered+1] = node
end
override( index+1, registered )
......@@ -109,7 +107,7 @@ vines.register_vine = function( name, defs, biome )
end
override_nodes( biome.spawn_surfaces,{
after_destruct = function( pos )
on_destruct = function( pos )
local pos_min = { x = pos.x -1, y = pos.y - 1, z = pos.z - 1 }
local pos_max = { x = pos.x +1, y = pos.y + 1, z = pos.z + 1 }
local positions = minetest.find_nodes_in_area( pos_min, pos_max, "group:vines" )
......@@ -125,7 +123,7 @@ vines.dig_vine = function( pos, node_name, user )
--only dig give the vine if shears are used
if not user then return false end
local wielded = user:get_wielded_item()
if 'vines:shears' == wielded:get_name() then
if 'vines:shears' == wielded:get_name() then
local inv = user:get_inventory()
if inv then
inv:add_item("main", ItemStack( node_name ))
......
......@@ -3,6 +3,9 @@ vines = {
recipes = {}
}
-- support for i18n
local S = plantlife_i18n.gettext
dofile( minetest.get_modpath( vines.name ) .. "/functions.lua" )
dofile( minetest.get_modpath( vines.name ) .. "/aliases.lua" )
dofile( minetest.get_modpath( vines.name ) .. "/recipes.lua" )
......@@ -11,4 +14,4 @@ dofile( minetest.get_modpath( vines.name ) .. "/nodes.lua" )
dofile( minetest.get_modpath( vines.name ) .. "/shear.lua" )
dofile( minetest.get_modpath( vines.name ) .. "/vines.lua" )
print("[Vines] Loaded!")
print(S("[Vines] Loaded!"))
name = vines
-- support for i18n
local S = plantlife_i18n.gettext
minetest.register_node("vines:rope_block", {
description = "Rope",
description = S("Rope"),
sunlight_propagates = true,
paramtype = "light",
tiles = {
......@@ -30,7 +33,7 @@ minetest.register_node("vines:rope_block", {
})
minetest.register_node("vines:rope", {
description = "Rope",
description = S("Rope"),
walkable = false,
climbable = true,
sunlight_propagates = true,
......@@ -47,7 +50,7 @@ minetest.register_node("vines:rope", {
})
minetest.register_node("vines:rope_end", {
description = "Rope",
description = S("Rope"),
walkable = false,
climbable = true,
sunlight_propagates = true,
......@@ -58,7 +61,7 @@ minetest.register_node("vines:rope_end", {
groups = {flammable=2, not_in_creative_inventory=1},
sounds = default.node_sound_leaves_defaults(),
after_place_node = function(pos)
yesh = {x = pos.x, y= pos.y-1, z=pos.z}
local yesh = {x = pos.x, y= pos.y-1, z=pos.z}
minetest.add_node(yesh, {name="vines:rope"})
end,
selection_box = {
......
vines.recipes['rope_block'] = {
{'', 'default:wood', ''},
{'', 'group:wood', ''},
{'', 'group:vines', ''},
{'', 'group:vines', ''}
}
vines.recipes['shears'] = {
{'', 'default:steel_ingot', ''},
{'default:stick', 'default:wood', 'default:steel_ingot'},
{'', '', 'default:stick'}
{'group:stick', 'group:wood', 'default:steel_ingot'},
{'', '', 'group:stick'}
}
vines/screenshot.png

185 KiB

-- support for i18n
local S = plantlife_i18n.gettext
minetest.register_tool("vines:shears", {
description = "Shears",
description = S("Shears"),
inventory_image = "vines_shears.png",
wield_image = "vines_shears.png",
stack_max = 1,
......@@ -8,8 +11,8 @@ minetest.register_tool("vines:shears", {
full_punch_interval = 1.0,
max_drop_level=0,
groupcaps={
snappy={times={[3]=0.2}, maxwear=0.05, maxlevel=3},
wool={times={[3]=0.2}, maxwear=0.05, maxlevel=3}
snappy={times={[3]=0.2}, uses=60, maxlevel=3},
wool={times={[3]=0.2}, uses=60, maxlevel=3}
}
},
})
-- support for i18n
local S = plantlife_i18n.gettext
vines.register_vine( 'root', {
description = "Roots",
description = S("Roots"),
average_length = 9,
},{
choose_random_wall = true,
......@@ -17,7 +20,7 @@ vines.register_vine( 'root', {
})
vines.register_vine( 'vine', {
description = "Vines",
description = S("Vines"),
average_length = 5,
},{
choose_random_wall = true,
......@@ -26,6 +29,7 @@ vines.register_vine( 'vine', {
spawn_delay = 500,
spawn_chance = 100,
spawn_surfaces = {
"default:leaves",
"default:jungleleaves",
"moretrees:jungletree_leaves_red",
"moretrees:jungletree_leaves_yellow",
......@@ -37,16 +41,16 @@ vines.register_vine( 'vine', {
})
vines.register_vine( 'side', {
description = "Vines",
description = S("Vines"),
average_length = 6,
},{
choose_random_wall = true,
avoid_nodes = {"group:vines", "default:apple"},
choose_random_wall = true,
avoid_radius = 3,
spawn_delay = 500,
spawn_chance = 100,
spawn_surfaces = {
"default:leaves",
"default:jungleleaves",
"moretrees:jungletree_leaves_red",
"moretrees:jungletree_leaves_yellow",
......@@ -58,7 +62,7 @@ vines.register_vine( 'side', {
})
vines.register_vine( "jungle", {
description = "Jungle Vines",
description = S("Jungle Vines"),
average_length = 7,
},{
choose_random_wall = true,
......@@ -85,7 +89,7 @@ vines.register_vine( "jungle", {
})
vines.register_vine( 'willow', {
description = "Willow Vines",
description = S("Willow Vines"),
average_length = 9,
},{
choose_random_wall = true,
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
default
biome_lib
\ No newline at end of file
biome_lib
plantlife_i18n
This diff is collapsed.