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,
......
default
biome_lib
plantlife_i18n
bushes?
ferns?
moretrees?
trees?
trunks?
\ No newline at end of file
trunks?
......@@ -6,18 +6,21 @@ local mname = "woodsoils" -- former "forestsoils"
abstract_woodsoils = {}
-- support for i18n
local S = plantlife_i18n.gettext
dofile(minetest.get_modpath("woodsoils").."/nodes.lua")
dofile(minetest.get_modpath("woodsoils").."/generating.lua")
-- felt like playing a bit :D
--[[print(" _____ __")
--[[print(" _____ __")
print("_/ ____\\___________ ____ _______/ |_")
print("\\ __\\/ _ \\_ __ \\_/ __ \\ / ___/\\ __\\")
print(" | | ( <_> ) | \\/\\ ___/ \\___ \\ | |")
print(" |__| \\____/|__| \\___ >____ > |__|")
print(" | | ( <_> ) | \\/\\ ___/ \\___ \\ | |")
print(" |__| \\____/|__| \\___ >____ > |__|")
print(" \\/ \\/")
print(" .__.__")
print(" .__.__")
print(" __________ |__| | ______")
print(" / ___/ _ \\| | | / ___/")
print(" \\___ ( <_> ) | |__\\___ \\")
......@@ -26,4 +29,4 @@ print(" \\/ \\/")]]
-----------------------------------------------------------------------------------------------
print("[Mod] "..title.." ["..version.."] ["..mname.."] Loaded...")
-----------------------------------------------------------------------------------------------
\ No newline at end of file
-----------------------------------------------------------------------------------------------
-- support for i18n
local S = plantlife_i18n.gettext
-- nodes
minetest.register_node("woodsoils:dirt_with_leaves_1", {
description = "Forest Soil 1",
description = S("Forest Soil 1"),
tiles = {
"default_dirt.png^woodsoils_ground_cover.png",
"default_dirt.png",
"default_dirt.png^woodsoils_ground_cover.png",
"default_dirt.png",
"default_dirt.png^woodsoils_ground_cover_side.png"},
is_ground_content = true,
groups = {
......@@ -19,10 +22,10 @@ minetest.register_node("woodsoils:dirt_with_leaves_1", {
})
minetest.register_node("woodsoils:dirt_with_leaves_2", {
description = "Forest Soil 2",
description = S("Forest Soil 2"),
tiles = {
"woodsoils_ground.png",
"default_dirt.png",
"woodsoils_ground.png",
"default_dirt.png",
"default_dirt.png^woodsoils_ground_side.png"},
is_ground_content = true,
groups = {
......@@ -37,10 +40,10 @@ minetest.register_node("woodsoils:dirt_with_leaves_2", {
})
minetest.register_node("woodsoils:grass_with_leaves_1", {
description = "Forest Soil 3",
description = S("Forest Soil 3"),
tiles = {
"default_grass.png^woodsoils_ground_cover2.png",
"default_dirt.png",
"default_grass.png^woodsoils_ground_cover2.png",
"default_dirt.png",
"default_dirt.png^default_grass_side.png^woodsoils_ground_cover_side2.png"},
is_ground_content = true,
groups = {
......@@ -55,10 +58,10 @@ minetest.register_node("woodsoils:grass_with_leaves_1", {
})
minetest.register_node("woodsoils:grass_with_leaves_2", {
description = "Forest Soil 4",
description = S("Forest Soil 4"),
tiles = {
"default_grass.png^woodsoils_ground_cover.png",
"default_dirt.png",
"default_grass.png^woodsoils_ground_cover.png",
"default_dirt.png",
"default_dirt.png^default_grass_side.png^woodsoils_ground_cover_side.png"},
is_ground_content = true,
groups = {
......
default
biome_lib
\ No newline at end of file
biome_lib
plantlife_i18n
abstract_youngtrees = {}
-- support for i18n
local S = plantlife_i18n.gettext
abstract_youngtrees = {}
minetest.register_node("youngtrees:bamboo", {
description = "Young Bamboo Tree",
description = S("Young Bamboo Tree"),
drawtype="nodebox",
tiles = {"bamboo.png"},
paramtype = "light",
......@@ -21,11 +24,11 @@ minetest.register_node("youngtrees:bamboo", {
})
minetest.register_node("youngtrees:youngtree2_middle",{
description = "Young Tree 2 (middle)",
description = S("Young Tree 2 (middle)"),
drawtype="nodebox",
tiles = {"youngtree2branch.png"},
inventory_image = "youngtree2branch.png",
wield_image = "youngtree2branch.png",
wield_image = "youngtree2branch.png",
paramtype = "light",
walkable = false,
is_ground_content = true,
......@@ -43,7 +46,7 @@ minetest.register_node("youngtrees:youngtree2_middle",{
})
minetest.register_node("youngtrees:youngtree_top", {
description = "Young Tree (top)",
description = S("Young Tree (top)"),
drawtype = "plantlike",
tiles = {"youngtree16xa.png"},
inventory_image = "youngtree16xa.png",
......@@ -60,9 +63,9 @@ minetest.register_node("youngtrees:youngtree_top", {
drop = 'trunks:twig_1'
})
minetest.register_node("youngtrees:youngtree_middle", {
description = "Young Tree (middle)",
description = S("Young Tree (middle)"),
drawtype = "plantlike",
tiles = {"youngtree16xb.png"},
inventory_image = "youngtree16xb.png",
......@@ -80,9 +83,9 @@ minetest.register_node("youngtrees:youngtree_middle", {
})
minetest.register_node("youngtrees:youngtree_bottom", {
description = "Young Tree (bottom)",
description = S("Young Tree (bottom)"),
drawtype = "plantlike",
tiles = {"youngtree16xc.png"},
inventory_image = "youngtree16xc.png",
......@@ -98,19 +101,19 @@ minetest.register_node("youngtrees:youngtree_bottom", {
sounds = default.node_sound_leaves_defaults(),
drop = 'trunks:twig_1'
})
abstract_youngtrees.grow_youngtree = function(pos)
local height = math.random(1,3)
local height = math.random(1,3)
abstract_youngtrees.grow_youngtree_node(pos,height)
end
abstract_youngtrees.grow_youngtree_node = function(pos, height)
local right_here = {x=pos.x, y=pos.y+1, z=pos.z}
local above_right_here = {x=pos.x, y=pos.y+2, z=pos.z}
if minetest.get_node(right_here).name == "air" -- instead of check_air = true,
or minetest.get_node(right_here).name == "default:junglegrass" then
if height == 1 then
......@@ -119,20 +122,20 @@ abstract_youngtrees.grow_youngtree_node = function(pos, height)
if height == 2 then
minetest.set_node(right_here, {name="youngtrees:youngtree_bottom"})
minetest.set_node(above_right_here, {name="youngtrees:youngtree_top"})
end
end
if height == 3 then
local two_above_right_here = {x=pos.x, y=pos.y+3, z=pos.z}
minetest.set_node(right_here, {name="youngtrees:youngtree_bottom"})
minetest.set_node(above_right_here, {name="youngtrees:youngtree_middle"})
minetest.set_node(two_above_right_here, {name="youngtrees:youngtree_top"})
end
end
end
end
biome_lib:register_generate_plant({
surface = {
"default:dirt_with_grass",
"default:dirt_with_grass",
"stoneage:grass_with_silex",
"sumpf:peat",
"sumpf:sumpf"
......@@ -143,4 +146,4 @@ biome_lib:register_generate_plant({
plantlife_limit = -0.9,
},
abstract_youngtrees.grow_youngtree
)
)