Compare commits
9 Commits
master
...
replace_bi
Author | SHA1 | Date | |
---|---|---|---|
99d58e0876 | |||
59c483fd4f | |||
640cfd3ac7 | |||
cdfbf20ab0 | |||
85569605f5 | |||
a154cb9904 | |||
d55f066686 | |||
252c2bd1d2 | |||
15f62452b8 |
13
.github/workflows/luacheck.yml
vendored
@ -1,13 +0,0 @@
|
|||||||
name: luacheck
|
|
||||||
on: [push, pull_request]
|
|
||||||
jobs:
|
|
||||||
luacheck:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@master
|
|
||||||
- name: apt
|
|
||||||
run: sudo apt-get install -y luarocks
|
|
||||||
- name: luacheck install
|
|
||||||
run: luarocks install --local luacheck
|
|
||||||
- name: luacheck run
|
|
||||||
run: $HOME/.luarocks/bin/luacheck ./
|
|
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
*~
|
23
.luacheckrc
@ -1,21 +1,14 @@
|
|||||||
unused_args = false
|
unused_args = false
|
||||||
allow_defined_top = true
|
allow_defined_top = true
|
||||||
max_line_length = 185
|
|
||||||
|
|
||||||
exclude_files = {".luacheckrc"}
|
|
||||||
|
|
||||||
globals = {
|
|
||||||
"biome_lib",
|
|
||||||
"bushes_classic",
|
|
||||||
}
|
|
||||||
|
|
||||||
read_globals = {
|
read_globals = {
|
||||||
table = {fields = {"copy"}},
|
"biome_lib",
|
||||||
|
"DIR_DELIM",
|
||||||
"minetest", "ItemStack",
|
"minetest", "core",
|
||||||
"vector",
|
|
||||||
|
|
||||||
"default",
|
|
||||||
"moretrees",
|
|
||||||
"dump",
|
"dump",
|
||||||
|
"vector", "nodeupdate",
|
||||||
|
"VoxelManip", "VoxelArea",
|
||||||
|
"PseudoRandom", "ItemStack",
|
||||||
|
"default",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,10 @@
|
|||||||
-- 3D Mushroom mod by VanessaE
|
-- 3D Mushroom mod by VanessaE
|
||||||
|
|
||||||
|
mushroom = {}
|
||||||
|
|
||||||
|
-- support for i18n
|
||||||
|
local S = minetest.get_translator("3dmushrooms")
|
||||||
|
|
||||||
minetest.override_item("flowers:mushroom_fertile_brown", {
|
minetest.override_item("flowers:mushroom_fertile_brown", {
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
mesh = "3dmushrooms.obj",
|
mesh = "3dmushrooms.obj",
|
||||||
@ -63,3 +68,5 @@ minetest.register_alias("mushroom:spore1", "flowers:mushroom_spores_red")
|
|||||||
minetest.register_alias("mushroom:poison", "flowers:mushroom_red")
|
minetest.register_alias("mushroom:poison", "flowers:mushroom_red")
|
||||||
|
|
||||||
minetest.register_alias("mushroom:identifier", "default:mese_crystal_fragment")
|
minetest.register_alias("mushroom:identifier", "default:mese_crystal_fragment")
|
||||||
|
|
||||||
|
minetest.log("info", S("[3D Mushrooms] loaded."))
|
||||||
|
8
3dmushrooms/locale/3dmushrooms.de.tr
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# textdomain: 3dmushrooms
|
||||||
|
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# reusityback, 2022.
|
||||||
|
|
||||||
|
[3D Mushrooms] loaded.=[3D Mushrooms] geladen.
|
8
3dmushrooms/locale/3dmushrooms.eo.tr
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# textdomain: 3dmushrooms
|
||||||
|
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# Jolesh, 2022.
|
||||||
|
|
||||||
|
[3D Mushrooms] loaded.=[3D Mushrooms] ŝargis.
|
8
3dmushrooms/locale/template.txt
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# textdomain: 3dmushrooms
|
||||||
|
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
|
||||||
|
[3D Mushrooms] loaded.=
|
@ -1,2 +1,2 @@
|
|||||||
name = 3dmushrooms
|
name = 3dmushrooms
|
||||||
depends = flowers
|
depends = default, flowers
|
||||||
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 5.0 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.2 KiB |
219
bushes/init.lua
@ -8,9 +8,14 @@
|
|||||||
|
|
||||||
-- support for i18n
|
-- support for i18n
|
||||||
local S = minetest.get_translator("bushes")
|
local S = minetest.get_translator("bushes")
|
||||||
|
abstract_bushes = {}
|
||||||
|
|
||||||
|
local bushes_bush_rarity = tonumber(minetest.settings:get("bushes_bush_rarity")) or 99.9
|
||||||
|
local bushes_bush_rarity_fertility = tonumber(minetest.settings:get("bushes_bush_rarity_fertility")) or 1.5
|
||||||
|
|
||||||
|
local bushes_youngtrees_rarity = tonumber(minetest.settings:get("bushes_youngtrees_rarity")) or 100
|
||||||
|
local bushes_youngtrees_rarity_fertility = tonumber(minetest.settings:get("bushes_youngtrees_rarity_fertility")) or 0.6
|
||||||
|
|
||||||
local bush_rarity = minetest.settings:get("bushes.bush_rarity") or 0.008
|
|
||||||
local youngtree_rarity = minetest.settings:get("youngtree.bush_rarity") or 0.006
|
|
||||||
|
|
||||||
minetest.register_node("bushes:youngtree2_bottom", {
|
minetest.register_node("bushes:youngtree2_bottom", {
|
||||||
description = S("Young Tree 2 (bottom)"),
|
description = S("Young Tree 2 (bottom)"),
|
||||||
@ -24,6 +29,7 @@ minetest.register_node("bushes:youngtree2_bottom", {
|
|||||||
node_box = {
|
node_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {
|
fixed = {
|
||||||
|
--{0.375000,-0.500000,-0.500000,0.500000,0.500000,-0.375000}, --NodeBox 1
|
||||||
{-0.0612,-0.500000,-0.500000,0.0612,0.500000,-0.375000}, --NodeBox 1
|
{-0.0612,-0.500000,-0.500000,0.0612,0.500000,-0.375000}, --NodeBox 1
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -32,10 +38,10 @@ minetest.register_node("bushes:youngtree2_bottom", {
|
|||||||
drop = 'default:stick'
|
drop = 'default:stick'
|
||||||
})
|
})
|
||||||
|
|
||||||
local BushBranchCenter = { {1,1}, {3,2} }
|
local BushBranchCenter = { {1,1}, {3,2} }
|
||||||
for i in pairs(BushBranchCenter) do
|
for i in pairs(BushBranchCenter) do
|
||||||
local Num = BushBranchCenter[i][1]
|
local Num = BushBranchCenter[i][1]
|
||||||
local TexNum = BushBranchCenter[i][2]
|
local TexNum = BushBranchCenter[i][2]
|
||||||
minetest.register_node("bushes:bushbranches"..Num, {
|
minetest.register_node("bushes:bushbranches"..Num, {
|
||||||
description = S("Bush Branches @1", Num),
|
description = S("Bush Branches @1", Num),
|
||||||
drawtype = "nodebox",
|
drawtype = "nodebox",
|
||||||
@ -71,10 +77,10 @@ for i in pairs(BushBranchCenter) do
|
|||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
local BushBranchSide = { {2,1}, {4,2} }
|
local BushBranchSide = { {2,1}, {4,2} }
|
||||||
for i in pairs(BushBranchSide) do
|
for i in pairs(BushBranchSide) do
|
||||||
local Num = BushBranchSide[i][1]
|
local Num = BushBranchSide[i][1]
|
||||||
local TexNum = BushBranchSide[i][2]
|
local TexNum = BushBranchSide[i][2]
|
||||||
minetest.register_node("bushes:bushbranches"..Num, {
|
minetest.register_node("bushes:bushbranches"..Num, {
|
||||||
description = S("Bush Branches @1", Num),
|
description = S("Bush Branches @1", Num),
|
||||||
drawtype = "nodebox",
|
drawtype = "nodebox",
|
||||||
@ -116,7 +122,7 @@ for i in pairs(BushBranchSide) do
|
|||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
local BushLeafNode = { {1}, {2}}
|
local BushLeafNode = { {1}, {2}}
|
||||||
for i in pairs(BushLeafNode) do
|
for i in pairs(BushLeafNode) do
|
||||||
local Num = BushLeafNode[i][1]
|
local Num = BushLeafNode[i][1]
|
||||||
minetest.register_node("bushes:BushLeaves"..Num, {
|
minetest.register_node("bushes:BushLeaves"..Num, {
|
||||||
@ -135,12 +141,44 @@ for i in pairs(BushLeafNode) do
|
|||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
local function grow_bush_node(pos, dir, leaf_type)
|
abstract_bushes.grow_bush = function(pos)
|
||||||
|
local leaf_type = math.random(1,2)
|
||||||
|
local bush_side_height = math.random(0,1)
|
||||||
|
local chance_of_bush_node_right = math.random(1,10)
|
||||||
|
if chance_of_bush_node_right> 5 then
|
||||||
|
local right_pos = {x=pos.x+1, y=pos.y+bush_side_height, z=pos.z}
|
||||||
|
abstract_bushes.grow_bush_node(right_pos,3,leaf_type)
|
||||||
|
end
|
||||||
|
local chance_of_bush_node_left = math.random(1,10)
|
||||||
|
if chance_of_bush_node_left> 5 then
|
||||||
|
bush_side_height = math.random(0,1)
|
||||||
|
local left_pos = {x=pos.x-1, y=pos.y+bush_side_height, z=pos.z}
|
||||||
|
abstract_bushes.grow_bush_node(left_pos,1,leaf_type)
|
||||||
|
end
|
||||||
|
local chance_of_bush_node_front = math.random(1,10)
|
||||||
|
if chance_of_bush_node_front> 5 then
|
||||||
|
bush_side_height = math.random(0,1)
|
||||||
|
local front_pos = {x=pos.x, y=pos.y+bush_side_height, z=pos.z+1}
|
||||||
|
abstract_bushes.grow_bush_node(front_pos,2,leaf_type)
|
||||||
|
end
|
||||||
|
local chance_of_bush_node_back = math.random(1,10)
|
||||||
|
if chance_of_bush_node_back> 5 then
|
||||||
|
bush_side_height = math.random(0,1)
|
||||||
|
local back_pos = {x=pos.x, y=pos.y+bush_side_height, z=pos.z-1}
|
||||||
|
abstract_bushes.grow_bush_node(back_pos,0,leaf_type)
|
||||||
|
end
|
||||||
|
|
||||||
|
abstract_bushes.grow_bush_node(pos,5,leaf_type)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
abstract_bushes.grow_bush_node = function(pos,dir, leaf_type)
|
||||||
local right_here = {x=pos.x, y=pos.y+1, z=pos.z}
|
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}
|
local above_right_here = {x=pos.x, y=pos.y+2, z=pos.z}
|
||||||
|
|
||||||
local bush_branch_type = 2
|
local bush_branch_type = 2
|
||||||
|
|
||||||
|
-- MM: I'm not sure if it's slower now than before...
|
||||||
if dir ~= 5 and leaf_type == 1 then
|
if dir ~= 5 and leaf_type == 1 then
|
||||||
bush_branch_type = 2
|
bush_branch_type = 2
|
||||||
end
|
end
|
||||||
@ -156,108 +194,52 @@ local function grow_bush_node(pos, dir, leaf_type)
|
|||||||
dir = 1
|
dir = 1
|
||||||
end
|
end
|
||||||
|
|
||||||
local nodename = minetest.get_node(right_here).name
|
if minetest.get_node(right_here).name == "air" -- instead of check_air = true,
|
||||||
if nodename == "air" or nodename == "default:junglegrass" then -- instead of check_air = true,
|
or minetest.get_node(right_here).name == "default:junglegrass" then
|
||||||
minetest.swap_node(right_here, {name="bushes:bushbranches"..bush_branch_type , param2=dir})
|
minetest.swap_node(right_here, {name="bushes:bushbranches"..bush_branch_type , param2=dir})
|
||||||
|
--minetest.chat_send_all("leaf_type: (" .. leaf_type .. ")")
|
||||||
minetest.swap_node(above_right_here, {name="bushes:BushLeaves"..leaf_type})
|
minetest.swap_node(above_right_here, {name="bushes:BushLeaves"..leaf_type})
|
||||||
|
|
||||||
local chance_of_high_leaves = math.random(1,10)
|
local chance_of_high_leaves = math.random(1,10)
|
||||||
if chance_of_high_leaves > 5 then
|
if chance_of_high_leaves> 5 then
|
||||||
local two_above_right_here = {x=pos.x, y=pos.y+3, z=pos.z}
|
local two_above_right_here = {x=pos.x, y=pos.y+3, z=pos.z}
|
||||||
|
--minetest.chat_send_all("leaf_type: (" .. leaf_type .. ")")
|
||||||
minetest.swap_node(two_above_right_here, {name="bushes:BushLeaves"..leaf_type})
|
minetest.swap_node(two_above_right_here, {name="bushes:BushLeaves"..leaf_type})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local function grow_bush(pos)
|
|
||||||
-- replace possible grass nodes
|
|
||||||
minetest.swap_node({x=pos.x, y=pos.y+1, z=pos.z}, {name="air"})
|
|
||||||
|
|
||||||
local leaf_type = math.random(1,2)
|
pl.register_on_generate({
|
||||||
local bush_side_height = math.random(0,1)
|
surface = {
|
||||||
|
"default:dirt_with_grass",
|
||||||
|
"stoneage:grass_with_silex",
|
||||||
|
"sumpf:peat",
|
||||||
|
"sumpf:sumpf"
|
||||||
|
},
|
||||||
|
noise_params = pl.generate_noise_params({rarity = bushes_bush_rarity, rarity_fertility = bushes_bush_rarity_fertility}),
|
||||||
|
min_elevation = 1, -- above sea level
|
||||||
|
},
|
||||||
|
"bushes:bushes",
|
||||||
|
abstract_bushes.grow_bush
|
||||||
|
)
|
||||||
|
|
||||||
local chance_of_bush_node_right = math.random(1,10)
|
abstract_bushes.grow_youngtree2 = function(pos)
|
||||||
if chance_of_bush_node_right > 5 then
|
local height = math.random(4,5)
|
||||||
local right_pos = {x=pos.x+1, y=pos.y+bush_side_height, z=pos.z}
|
abstract_bushes.grow_youngtree_node2(pos,height)
|
||||||
grow_bush_node(right_pos,3,leaf_type)
|
|
||||||
end
|
|
||||||
|
|
||||||
local chance_of_bush_node_left = math.random(1,10)
|
|
||||||
if chance_of_bush_node_left > 5 then
|
|
||||||
local left_pos = {x=pos.x-1, y=pos.y+bush_side_height, z=pos.z}
|
|
||||||
grow_bush_node(left_pos,1,leaf_type)
|
|
||||||
end
|
|
||||||
|
|
||||||
local chance_of_bush_node_front = math.random(1,10)
|
|
||||||
if chance_of_bush_node_front > 5 then
|
|
||||||
local front_pos = {x=pos.x, y=pos.y+bush_side_height, z=pos.z+1}
|
|
||||||
grow_bush_node(front_pos,2,leaf_type)
|
|
||||||
end
|
|
||||||
|
|
||||||
local chance_of_bush_node_back = math.random(1,10)
|
|
||||||
if chance_of_bush_node_back > 5 then
|
|
||||||
local back_pos = {x=pos.x, y=pos.y+bush_side_height, z=pos.z-1}
|
|
||||||
grow_bush_node(back_pos,0,leaf_type)
|
|
||||||
end
|
|
||||||
|
|
||||||
grow_bush_node(pos,5,leaf_type)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_decoration({
|
|
||||||
name = "bushes:bush",
|
|
||||||
decoration = {
|
|
||||||
"air"
|
|
||||||
},
|
|
||||||
fill_ratio = bush_rarity,
|
|
||||||
y_min = 1,
|
|
||||||
y_max = 40,
|
|
||||||
place_on = {
|
|
||||||
"default:dirt_with_grass",
|
|
||||||
"stoneage:grass_with_silex",
|
|
||||||
"sumpf:peat",
|
|
||||||
"sumpf:sumpf"
|
|
||||||
},
|
|
||||||
deco_type = "simple",
|
|
||||||
flags = "all_floors",
|
|
||||||
})
|
|
||||||
|
|
||||||
--[[
|
abstract_bushes.grow_youngtree_node2 = function(pos, height)
|
||||||
this is purposefully wrapped in a on mods loaded callback to that it gets the proper ids
|
|
||||||
if other mods clear the registered decorations
|
|
||||||
]]
|
|
||||||
local did
|
|
||||||
minetest.register_on_mods_loaded(function()
|
|
||||||
did = minetest.get_decoration_id("bushes:bush")
|
|
||||||
minetest.set_gen_notify("decoration", {did})
|
|
||||||
end)
|
|
||||||
|
|
||||||
minetest.register_on_generated(function(minp, maxp, blockseed)
|
|
||||||
local g = minetest.get_mapgen_object("gennotify")
|
|
||||||
local locations = {}
|
|
||||||
|
|
||||||
local deco_locations = g["decoration#" .. did] or {}
|
|
||||||
for _, pos in pairs(deco_locations) do
|
|
||||||
locations[#locations+1] = pos
|
|
||||||
end
|
|
||||||
|
|
||||||
if #locations == 0 then return end
|
|
||||||
for _, pos in ipairs(locations) do
|
|
||||||
grow_bush(pos)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
local function grow_youngtree_node2(pos, height)
|
|
||||||
local right_here = {x=pos.x, y=pos.y+1, z=pos.z}
|
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}
|
local above_right_here = {x=pos.x, y=pos.y+2, z=pos.z}
|
||||||
local two_above_right_here = {x=pos.x, y=pos.y+3, z=pos.z}
|
local two_above_right_here = {x=pos.x, y=pos.y+3, z=pos.z}
|
||||||
local three_above_right_here = {x=pos.x, y=pos.y+4, z=pos.z}
|
local three_above_right_here = {x=pos.x, y=pos.y+4, z=pos.z}
|
||||||
|
|
||||||
local nodename = minetest.get_node(right_here).name
|
if minetest.get_node(right_here).name == "air" -- instead of check_air = true,
|
||||||
if nodename == "air" or nodename == "default:junglegrass" then -- instead of check_air = true,
|
or minetest.get_node(right_here).name == "default:junglegrass" then
|
||||||
if height == 4 then
|
if height == 4 then
|
||||||
local two_above_right_here_south = {x=pos.x, y=pos.y+3, z=pos.z-1}
|
local two_above_right_here_south = {x=pos.x, y=pos.y+3, z=pos.z-1}
|
||||||
local three_above_right_here_south = {x=pos.x, y=pos.y+4, z=pos.z-1}
|
local three_above_right_here_south = {x=pos.x, y=pos.y+4, z=pos.z-1}
|
||||||
|
|
||||||
minetest.swap_node(right_here, {name="bushes:youngtree2_bottom"})
|
minetest.swap_node(right_here, {name="bushes:youngtree2_bottom"})
|
||||||
minetest.swap_node(above_right_here, {name="bushes:youngtree2_bottom"})
|
minetest.swap_node(above_right_here, {name="bushes:youngtree2_bottom"})
|
||||||
minetest.swap_node(two_above_right_here, {name="bushes:bushbranches2" , param2=2})
|
minetest.swap_node(two_above_right_here, {name="bushes:bushbranches2" , param2=2})
|
||||||
@ -268,50 +250,17 @@ local function grow_youngtree_node2(pos, height)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local function grow_youngtree2(pos)
|
|
||||||
local height = math.random(4,5)
|
|
||||||
grow_youngtree_node2(pos,height)
|
|
||||||
end
|
|
||||||
|
|
||||||
minetest.register_decoration({
|
pl.register_on_generate({
|
||||||
name = "bushes:youngtree",
|
surface = {
|
||||||
decoration = {
|
"default:dirt_with_grass",
|
||||||
"air"
|
"stoneage:grass_with_silex",
|
||||||
|
"sumpf:peat",
|
||||||
|
"sumpf:sumpf"
|
||||||
|
},
|
||||||
|
noise_params = pl.generate_noise_params({rarity = bushes_youngtrees_rarity, rarity_fertility = bushes_youngtrees_rarity_fertility}),
|
||||||
|
min_elevation = 1, -- above sea level
|
||||||
},
|
},
|
||||||
fill_ratio = youngtree_rarity,
|
"bushes:youngtrees",
|
||||||
y_min = 1,
|
abstract_bushes.grow_youngtree2
|
||||||
y_max = 40,
|
)
|
||||||
place_on = {
|
|
||||||
"default:dirt_with_grass",
|
|
||||||
"stoneage:grass_with_silex",
|
|
||||||
"sumpf:peat",
|
|
||||||
"sumpf:sumpf"
|
|
||||||
},
|
|
||||||
deco_type = "simple",
|
|
||||||
flags = "all_floors",
|
|
||||||
})
|
|
||||||
|
|
||||||
--[[
|
|
||||||
this is purposefully wrapped in a on mods loaded callback to that it gets the proper ids
|
|
||||||
if other mods clear the registered decorations
|
|
||||||
]]
|
|
||||||
local did2
|
|
||||||
minetest.register_on_mods_loaded(function()
|
|
||||||
did2 = minetest.get_decoration_id("bushes:youngtree")
|
|
||||||
minetest.set_gen_notify("decoration", {did2})
|
|
||||||
end)
|
|
||||||
|
|
||||||
minetest.register_on_generated(function(minp, maxp, blockseed)
|
|
||||||
local g = minetest.get_mapgen_object("gennotify")
|
|
||||||
local locations = {}
|
|
||||||
|
|
||||||
local deco_locations = g["decoration#" .. did2] or {}
|
|
||||||
for _, pos in pairs(deco_locations) do
|
|
||||||
locations[#locations+1] = pos
|
|
||||||
end
|
|
||||||
|
|
||||||
if #locations == 0 then return end
|
|
||||||
for _, pos in ipairs(locations) do
|
|
||||||
grow_youngtree2(pos)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
@ -1,4 +1,10 @@
|
|||||||
# textdomain: bushes
|
# textdomain: bushes
|
||||||
|
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
|
||||||
Young Tree 2 (bottom)=Strauch 2 (Ansatz)
|
Young Tree 2 (bottom)=Strauch 2 (Ansatz)
|
||||||
Bush Branches @1=Buschäste @1
|
Bush Branches @1=Buschäste @1
|
||||||
Bush Leaves @1=Buschblätter @1
|
Bush Leaves @1=Buschblätter @1
|
||||||
|
@ -1,4 +1,10 @@
|
|||||||
# textdomain: bushes
|
# textdomain: bushes
|
||||||
|
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# Jolesh, 2022.
|
||||||
|
|
||||||
Young Tree 2 (bottom)=Juna Arbo 2 (malsupro)
|
Young Tree 2 (bottom)=Juna Arbo 2 (malsupro)
|
||||||
Bush Branches @1=Arbustaj Branĉoj @1
|
Bush Branches @1=Arbustaj Branĉoj @1
|
||||||
Bush Leaves @1=Arbustaj Folioj @1
|
Bush Leaves @1=Arbustaj Folioj @1
|
||||||
|
@ -1,4 +1,11 @@
|
|||||||
# textdomain: bushes
|
# textdomain: bushes
|
||||||
|
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# fat115 <fat115@framasoft.org>, 2017.
|
||||||
|
#
|
||||||
|
|
||||||
Young Tree 2 (bottom)=Arbuste 2 (bas)
|
Young Tree 2 (bottom)=Arbuste 2 (bas)
|
||||||
Bush Branches @1=Branches de buisson @1
|
Bush Branches @1=Branches de buisson @1
|
||||||
Bush Leaves @1=Feuilles de buisson @1
|
Bush Leaves @1=Feuilles de buisson @1
|
||||||
|
@ -1,4 +1,10 @@
|
|||||||
# textdomain: bushes
|
# textdomain: bushes
|
||||||
|
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
|
||||||
Young Tree 2 (bottom)=
|
Young Tree 2 (bottom)=
|
||||||
Bush Branches @1=
|
Bush Branches @1=
|
||||||
Bush Leaves @1=
|
Bush Leaves @1=
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
name = bushes
|
name = bushes
|
||||||
title = Bushes
|
depends = default, biome_lib
|
||||||
depends = default
|
optional_depends = stoneage, sumpf
|
||||||
optional_depends = stoneage, sumpf, ebiomes
|
|
||||||
|
@ -1,5 +1,17 @@
|
|||||||
# Bush rarity (higher number -> higher probability)
|
#Bush rarity %
|
||||||
bushes.bush_rarity (Bush rarity) float 0.008 0.0001 1
|
bushes_bush_rarity (Bush rarity %) float 99.9 0 100
|
||||||
|
|
||||||
# Youngtree rarity (higher number -> higher probability)
|
#How much the rarity is reduced by fertility %
|
||||||
bushes.youngtree_rarity (Youngtree rarity) float 0.006 0.0001 1
|
bushes_bush_rarity_fertility (Bush rarity fertility reduction %) float 1.5 0 100
|
||||||
|
|
||||||
|
#Bush minimum fertility (-1 to +1)
|
||||||
|
bushes_bush_fertility (Bush minimum fertility) float -0.7 -1 1
|
||||||
|
|
||||||
|
#Youngtree (from bushes mod) rarity %
|
||||||
|
bushes_youngtrees_rarity (Youngtree bush rarity %) float 100 0 100
|
||||||
|
|
||||||
|
#How much the rarity is reduced by fertility %
|
||||||
|
bushes_youngtrees_rarity_fertility (Youngtree bush rarity fertility reduction %) float 0.6 0 100
|
||||||
|
|
||||||
|
#Youngtree (from bushes mod) minimum fertility (-1 to +1)
|
||||||
|
bushes_youngtrees_fertility (Youngtree bush minimum fertility) float -0.5 -1 1
|
||||||
|
BIN
bushes/textures/old & unused/BlockBranch1.png
Normal file
After Width: | Height: | Size: 72 KiB |
BIN
bushes/textures/old & unused/BlockBranch1L.png
Normal file
After Width: | Height: | Size: 33 KiB |
BIN
bushes/textures/old & unused/BlockBranch1R.png
Normal file
After Width: | Height: | Size: 39 KiB |
BIN
bushes/textures/old & unused/BushBranches1.png
Normal file
After Width: | Height: | Size: 52 KiB |
BIN
bushes/textures/old & unused/BushBranches1sm.png
Normal file
After Width: | Height: | Size: 609 B |
BIN
bushes/textures/old & unused/BushBranches1sm2.png
Normal file
After Width: | Height: | Size: 620 B |
BIN
bushes/textures/old & unused/BushBranches1sm3.png
Normal file
After Width: | Height: | Size: 396 B |
BIN
bushes/textures/old & unused/BushBranches1sm4.png
Normal file
After Width: | Height: | Size: 540 B |
BIN
bushes/textures/old & unused/BushBranchesCenter.png
Normal file
After Width: | Height: | Size: 285 B |
BIN
bushes/textures/old & unused/BushBranchesSide1.png
Normal file
After Width: | Height: | Size: 657 B |
BIN
bushes/textures/old & unused/BushBranchesSide2.png
Normal file
After Width: | Height: | Size: 693 B |
BIN
bushes/textures/old & unused/blank.png
Normal file
After Width: | Height: | Size: 83 B |
BIN
bushes/textures/old & unused/moretrees_pine_leaves3.png
Normal file
After Width: | Height: | Size: 525 B |
@ -33,12 +33,9 @@ end
|
|||||||
|
|
||||||
-- override farming_plus strawberry and add food_ group
|
-- override farming_plus strawberry and add food_ group
|
||||||
if minetest.get_modpath("farming_plus") then
|
if minetest.get_modpath("farming_plus") then
|
||||||
local groups = table.copy(minetest.registered_items["farming_plus:strawberry_item"].groups)
|
|
||||||
groups["food_strawberry"] = 1
|
|
||||||
groups["food_berry"] = 1
|
|
||||||
|
|
||||||
minetest.override_item("farming_plus:strawberry_item", {
|
minetest.override_item("farming_plus:strawberry_item", {
|
||||||
groups = groups,
|
groups = {food_strawberry = 1, food_berry = 1, flammable = 2},
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ bushes_classic = {}
|
|||||||
local S = minetest.get_translator("bushes_classic")
|
local S = minetest.get_translator("bushes_classic")
|
||||||
|
|
||||||
bushes_classic.bushes = {
|
bushes_classic.bushes = {
|
||||||
"strawberry",
|
"strawberry",
|
||||||
"blackberry",
|
"blackberry",
|
||||||
"blueberry",
|
"blueberry",
|
||||||
"raspberry",
|
"raspberry",
|
||||||
@ -30,19 +30,12 @@ local modpath = minetest.get_modpath('bushes_classic')
|
|||||||
dofile(modpath..'/cooking.lua')
|
dofile(modpath..'/cooking.lua')
|
||||||
dofile(modpath..'/nodes.lua')
|
dofile(modpath..'/nodes.lua')
|
||||||
|
|
||||||
local spawn_plants = bushes_classic.spawn_list
|
biome_lib.register_active_spawner({
|
||||||
|
spawn_delay = 3600,
|
||||||
local function get_biome_data(pos, perlin_fertile)
|
spawn_plants = bushes_classic.spawn_list,
|
||||||
local fertility = perlin_fertile:get_2d({x=pos.x, y=pos.z})
|
avoid_radius = 10,
|
||||||
|
spawn_chance = 100,
|
||||||
local data = minetest.get_biome_data(pos)
|
spawn_surfaces = {
|
||||||
-- Original values this method returned were +1 (lowest) to -1 (highest)
|
|
||||||
-- so we need to convert the 0-100 range from get_biome_data() to that.
|
|
||||||
return fertility, 1 - (data.heat / 100 * 2), 1 - (data.humidity / 100 * 2)
|
|
||||||
end
|
|
||||||
|
|
||||||
minetest.register_abm({
|
|
||||||
nodenames = {
|
|
||||||
"default:dirt_with_grass",
|
"default:dirt_with_grass",
|
||||||
"woodsoils:dirt_with_leaves_1",
|
"woodsoils:dirt_with_leaves_1",
|
||||||
"woodsoils:grass_with_leaves_1",
|
"woodsoils:grass_with_leaves_1",
|
||||||
@ -50,31 +43,16 @@ minetest.register_abm({
|
|||||||
"farming:soil",
|
"farming:soil",
|
||||||
"farming:soil_wet"
|
"farming:soil_wet"
|
||||||
},
|
},
|
||||||
interval = 3600,
|
avoid_nodes = {"group:bush"},
|
||||||
chance = 100,
|
seed_diff = 545342534, -- chosen by a fair mashing of the keyboard - guaranteed to be random :P
|
||||||
label = "[bushes_classic] spawn bushes",
|
plantlife_limit = -0.1,
|
||||||
min_y = -16,
|
light_min = 10,
|
||||||
max_y = 48,
|
temp_min = 0.15, -- approx 20C
|
||||||
action = function(pos, node)
|
temp_max = -0.15, -- approx 35C
|
||||||
local p_top = {x = pos.x, y = pos.y + 1, z = pos.z}
|
humidity_min = 0, -- 50% RH
|
||||||
local n_top = minetest.get_node_or_nil(p_top)
|
humidity_max = -1, -- 100% RH
|
||||||
if not n_top or n_top.name ~= "air" then return end
|
|
||||||
|
|
||||||
local perlin_fertile_area = minetest.get_perlin(545342534, 3, 0.6, 100)
|
|
||||||
|
|
||||||
local fertility, temperature, humidity = get_biome_data(pos, perlin_fertile_area)
|
|
||||||
|
|
||||||
local pos_biome_ok = fertility > -0.1 and temperature <= 0.15 and temperature >= -0.15 and humidity <= 0 and humidity >= -1
|
|
||||||
if not pos_biome_ok then return end
|
|
||||||
|
|
||||||
if minetest.find_node_near(p_top, 10 + math.random(-1.5,2), {"group:bush"}) then
|
|
||||||
return -- Nodes to avoid are nearby
|
|
||||||
end
|
|
||||||
|
|
||||||
local plant_to_spawn = spawn_plants[math.random(1, #spawn_plants)]
|
|
||||||
|
|
||||||
minetest.swap_node(p_top, {name = plant_to_spawn, param2 = 0})
|
|
||||||
end
|
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_alias("bushes:basket_pies", "bushes:basket_strawberry")
|
minetest.register_alias("bushes:basket_pies", "bushes:basket_strawberry")
|
||||||
|
|
||||||
|
print("[Bushes] Loaded.")
|
||||||
|
@ -1,39 +1,46 @@
|
|||||||
# textdomain: bushes_classic
|
# textdomain: bushes_classic
|
||||||
|
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# Xanthin, 2017.
|
||||||
|
#
|
||||||
|
|
||||||
Sugar=Zucker
|
Sugar=Zucker
|
||||||
Strawberry=Erdbeere
|
|
||||||
Raw Strawberry pie=Rohe Erdbeertorte
|
|
||||||
Cooked Strawberry pie=Erdbeertorte
|
|
||||||
Slice of Strawberry pie=Erdbeertortenstück
|
|
||||||
Basket with Strawberry pies=Korb mit Erdbeertorten
|
Basket with Strawberry pies=Korb mit Erdbeertorten
|
||||||
|
Cooked Strawberry pie=Erdbeertorte
|
||||||
|
Raw Strawberry pie=Rohe Erdbeertorte
|
||||||
|
Slice of Strawberry pie=Erdbeertortenstueck
|
||||||
|
Strawberry=Erdbeere
|
||||||
Strawberry Bush=Erdbeerbusch
|
Strawberry Bush=Erdbeerbusch
|
||||||
Blackberry=Brombeere
|
|
||||||
Raw Blackberry pie=Rohe Brombeertorte
|
|
||||||
Cooked Blackberry pie=Brombeertorte
|
|
||||||
Slice of Blackberry pie=Brombeertortenstück
|
|
||||||
Basket with Blackberry pies=Korb mit Brombeertorten
|
Basket with Blackberry pies=Korb mit Brombeertorten
|
||||||
|
Blackberry=Brombeere
|
||||||
Blackberry Bush=Brombeerbusch
|
Blackberry Bush=Brombeerbusch
|
||||||
Blueberry=Blaubeere
|
Cooked Blackberry pie=Brombeertorte
|
||||||
Raw Blueberry pie=Rohe Blaubeertorte
|
Raw Blackberry pie=Rohe Brombeertorte
|
||||||
Cooked Blueberry pie=Blaubeertorte
|
Slice of Blackberry pie=Brombeertortenstueck
|
||||||
Slice of Blueberry pie=Blaubeertortenstück
|
|
||||||
Basket with Blueberry pies=Korb mit Blaubeertorten
|
Basket with Blueberry pies=Korb mit Blaubeertorten
|
||||||
|
Blueberry=Blaubeere
|
||||||
Blueberry Bush=Blaubeerbusch
|
Blueberry Bush=Blaubeerbusch
|
||||||
Raspberry=Himbeere
|
Cooked Blueberry pie=Blaubeertorte
|
||||||
Raw Raspberry pie=Rohe Himbeertorte
|
Raw Blueberry pie=Rohe Blaubeertorte
|
||||||
Cooked Raspberry pie=Himbeertorte
|
Slice of Blueberry pie=Blaubeertortenstueck
|
||||||
Slice of Raspberry pie=Himbeertortenstück
|
|
||||||
Basket with Raspberry pies=Korb mit Himbeertorten
|
Basket with Raspberry pies=Korb mit Himbeertorten
|
||||||
|
Cooked Raspberry pie=Himbeertorte
|
||||||
|
Raspberry=Himbeere
|
||||||
Raspberry Bush=Himbeerbusch
|
Raspberry Bush=Himbeerbusch
|
||||||
Gooseberry=Stachelbeere
|
Raw Raspberry pie=Rohe Himbeertorte
|
||||||
Raw Gooseberry pie=Rohe Stachelbeertorte
|
Slice of Raspberry pie=Himbeertortenstueck
|
||||||
Cooked Gooseberry pie=Stachelbeertorte
|
|
||||||
Slice of Gooseberry pie=Stachelbeertortenstück
|
|
||||||
Basket with Gooseberry pies=Korb mit Stachelbeertorten
|
Basket with Gooseberry pies=Korb mit Stachelbeertorten
|
||||||
|
Cooked Gooseberry pie=Stachelbeertorte
|
||||||
|
Gooseberry=Stachelbeere
|
||||||
Gooseberry Bush=Stachelbeerbusch
|
Gooseberry Bush=Stachelbeerbusch
|
||||||
|
Raw Gooseberry pie=Rohe Stachelbeertorte
|
||||||
|
Slice of Gooseberry pie=Stachelbeertortenstueck
|
||||||
|
Basket with Mixed Berry pies=Korb mit Beerenmixtorten
|
||||||
|
Cooked Mixed Berry pie=Beerenmixtorte
|
||||||
|
Currently fruitless Bush=zur Zeit fruechteloser
|
||||||
Mixed Berry=Beerenmix
|
Mixed Berry=Beerenmix
|
||||||
Raw Mixed Berry pie=Rohe Beerenmixtorte
|
Raw Mixed Berry pie=Rohe Beerenmixtorte
|
||||||
Cooked Mixed Berry pie=Beerenmixtorte
|
Slice of Mixed Berry pie=Beerenmixtortenstueck
|
||||||
Slice of Mixed Berry pie=Beerenmixtortenstück
|
|
||||||
Basket with Mixed Berry pies=Korb mit Beerenmixtorten
|
|
||||||
Currently fruitless Bush=Zur Zeit früchteloser Busch
|
|
||||||
Basket=Korb
|
Basket=Korb
|
||||||
|
@ -1,39 +1,46 @@
|
|||||||
# textdomain: bushes_classic
|
# textdomain: bushes_classic
|
||||||
|
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# Jolesh, 2022.
|
||||||
|
#
|
||||||
|
|
||||||
Sugar=Sukero
|
Sugar=Sukero
|
||||||
Strawberry=Frago
|
|
||||||
Raw Strawberry pie=Kruda Fragokuko
|
|
||||||
Cooked Strawberry pie=Kuirita Fragokuko
|
|
||||||
Slice of Strawberry pie=Tranĉaĵo de Fragokuko
|
|
||||||
Basket with Strawberry pies=Korbo kun Fragokukoj
|
Basket with Strawberry pies=Korbo kun Fragokukoj
|
||||||
|
Cooked Strawberry pie=Kuirita Fragokuko
|
||||||
|
Raw Strawberry pie=Kruda Fragokuko
|
||||||
|
Slice of Strawberry pie=Tranĉaĵo de Fragokuko
|
||||||
|
Strawberry=Frago
|
||||||
Strawberry Bush=Fraga Arbusto
|
Strawberry Bush=Fraga Arbusto
|
||||||
Blackberry=Rubuso
|
|
||||||
Raw Blackberry pie=Kruda Rubusokuko
|
|
||||||
Cooked Blackberry pie=Kuirita Rubusokuko
|
|
||||||
Slice of Blackberry pie=Tranĉaĵo de Rubusokuko
|
|
||||||
Basket with Blackberry pies=Korbo kun Rubusokukoj
|
Basket with Blackberry pies=Korbo kun Rubusokukoj
|
||||||
|
Cooked Blackberry pie=Kuirita Rubusokuko
|
||||||
|
Raw Blackberry pie=Kruda Rubusokuko
|
||||||
|
Slice of Blackberry pie=Tranĉaĵo de Rubusokuko
|
||||||
|
Blackberry=Rubuso
|
||||||
Blackberry Bush=Rubusa Arbusto
|
Blackberry Bush=Rubusa Arbusto
|
||||||
Blueberry=Mirtelo
|
|
||||||
Raw Blueberry pie=Kruda Mirtelokuko
|
|
||||||
Cooked Blueberry pie=Kuirita Mirtelokuko
|
|
||||||
Slice of Blueberry pie=Tranĉaĵo de Mirtelokuko
|
|
||||||
Basket with Blueberry pies=Korbo kun Mirtelokukoj
|
Basket with Blueberry pies=Korbo kun Mirtelokukoj
|
||||||
|
Blueberry=Mirtelo
|
||||||
Blueberry Bush=Mirtela Arbusto
|
Blueberry Bush=Mirtela Arbusto
|
||||||
Raspberry=Frambo
|
Cooked Blueberry pie=Kuirita Mirtelokuko
|
||||||
Raw Raspberry pie=Kruda Frambokuko
|
Raw Blueberry pie=Kruda Mirtelokuko
|
||||||
Cooked Raspberry pie=Kuirita Frambokuko
|
Slice of Blueberry pie=Tranĉaĵo de Mirtelokuko
|
||||||
Slice of Raspberry pie=Tranĉaĵo de Frambokuko
|
|
||||||
Basket with Raspberry pies=Korbo kun Frambokukoj
|
Basket with Raspberry pies=Korbo kun Frambokukoj
|
||||||
|
Cooked Raspberry pie=Kuirita Frambokuko
|
||||||
|
Raspberry=Frambo
|
||||||
Raspberry Bush=Framba Arbusto
|
Raspberry Bush=Framba Arbusto
|
||||||
Gooseberry=Grosbero
|
Raw Raspberry pie=Kruda Frambokuko
|
||||||
Raw Gooseberry pie=Kruda Grosberkuko
|
Slice of Raspberry pie=Tranĉaĵo de Frambokuko
|
||||||
Cooked Gooseberry pie=Kuirita Grosberkuko
|
|
||||||
Slice of Gooseberry pie=Tranĉaĵo de Grosberkuko
|
|
||||||
Basket with Gooseberry pies=Korbo kun Grosberkuko
|
Basket with Gooseberry pies=Korbo kun Grosberkuko
|
||||||
|
Cooked Gooseberry pie=Kuirita Grosberkuko
|
||||||
|
Gooseberry=Grosbero
|
||||||
Gooseberry Bush=Grosberarbusto
|
Gooseberry Bush=Grosberarbusto
|
||||||
|
Raw Gooseberry pie=Kruda Grosberkuko
|
||||||
|
Slice of Gooseberry pie=Tranĉaĵo de Grosberkuko
|
||||||
|
Basket with Mixed Berry pies=Korbo kun Miksitaj Beraj Kukoj
|
||||||
|
Cooked Mixed Berry pie=Kuirita Miksa Beraj Kukoj
|
||||||
|
Currently fruitless Bush=Nuntempe senfrukta Arbusto
|
||||||
Mixed Berry=Miksita Bero
|
Mixed Berry=Miksita Bero
|
||||||
Raw Mixed Berry pie=Kruda Miksita Bera Kuko
|
Raw Mixed Berry pie=Kruda Miksita Bera Kuko
|
||||||
Cooked Mixed Berry pie=Kuirita Miksa Beraj Kukoj
|
|
||||||
Slice of Mixed Berry pie=Tranĉaĵo de Miksita Bera Kuko
|
Slice of Mixed Berry pie=Tranĉaĵo de Miksita Bera Kuko
|
||||||
Basket with Mixed Berry pies=Korbo kun Miksitaj Beraj Kukoj
|
|
||||||
Currently fruitless Bush=Nuntempe senfrukta Arbusto
|
|
||||||
Basket=Korbo
|
Basket=Korbo
|
||||||
|
@ -1,39 +1,46 @@
|
|||||||
# textdomain: bushes_classic
|
# textdomain: bushes_classic
|
||||||
|
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# Carlos Barraza <carlosbarrazaes@gmail.com>, 2017.
|
||||||
|
#
|
||||||
|
|
||||||
Sugar=Azúcar
|
Sugar=Azúcar
|
||||||
Strawberry=Frutilla
|
|
||||||
Raw Strawberry pie=Pastel de Frutilla Crudo
|
|
||||||
Cooked Strawberry pie=Pastel de Frutilla Cocido
|
|
||||||
Slice of Strawberry pie=Rebanada de Pastel de Frutilla
|
|
||||||
Basket with Strawberry pies=Cesta con Pasteles de Frutilla
|
Basket with Strawberry pies=Cesta con Pasteles de Frutilla
|
||||||
|
Cooked Strawberry pie=Pastel de Frutilla Cocido
|
||||||
|
Raw Strawberry pie=Pastel de Frutilla Crudo
|
||||||
|
Slice of Strawberry pie=Rebanada de Pastel de Frutilla
|
||||||
|
Strawberry=Frutilla
|
||||||
Strawberry Bush=Arbusto de Frutilla
|
Strawberry Bush=Arbusto de Frutilla
|
||||||
Blackberry=Mora
|
|
||||||
Raw Blackberry pie=Pastel de Mora Crudo
|
|
||||||
Cooked Blackberry pie=Pastel de Mora Cocido
|
|
||||||
Slice of Blackberry pie=Rebanada de Pastel de Mora
|
|
||||||
Basket with Blackberry pies=Cesta con Pasteles de Mora
|
Basket with Blackberry pies=Cesta con Pasteles de Mora
|
||||||
|
Blackberry=Mora
|
||||||
Blackberry Bush=Arbusto de Mora
|
Blackberry Bush=Arbusto de Mora
|
||||||
Blueberry=Arándano
|
Cooked Blackberry pie=Pastel de Mora Cocido
|
||||||
Raw Blueberry pie=Pastel de Arándano Crudo
|
Raw Blackberry pie=Pastel de Mora Crudo
|
||||||
Cooked Blueberry pie=Pastel de Arándano Cocido
|
Slice of Blackberry pie=Rebanada de Pastel de Mora
|
||||||
Slice of Blueberry pie=Rebanada de Pastel de Arándano
|
|
||||||
Basket with Blueberry pies=Cesta con Pasteles de Arándano
|
Basket with Blueberry pies=Cesta con Pasteles de Arándano
|
||||||
|
Blueberry=Arándano
|
||||||
Blueberry Bush=Arbusto de Arándano
|
Blueberry Bush=Arbusto de Arándano
|
||||||
Raspberry=Frambuesa
|
Cooked Blueberry pie=Pastel de Arándano Cocido
|
||||||
Raw Raspberry pie=Pastel de Frambuesa Crudo
|
Raw Blueberry pie=Pastel de Arándano Crudo
|
||||||
Cooked Raspberry pie=Pastel de Frambuesa Cocido
|
Slice of Blueberry pie=Rebanada de Pastel de Arándano
|
||||||
Slice of Raspberry pie=Rebanada de Pastel de Frambuesa
|
|
||||||
Basket with Raspberry pies=Cesta con Pasteles de Frambuesa
|
Basket with Raspberry pies=Cesta con Pasteles de Frambuesa
|
||||||
|
Cooked Raspberry pie=Pastel de Frambuesa Cocido
|
||||||
|
Raspberry=Frambuesa
|
||||||
Raspberry Bush=Arbusto de Frambuesa
|
Raspberry Bush=Arbusto de Frambuesa
|
||||||
Gooseberry=Grosella
|
Raw Raspberry pie=Pastel de Frambuesa Crudo
|
||||||
Raw Gooseberry pie=Pastel de Grosella Crudo
|
Slice of Raspberry pie=Rebanada de Pastel de Frambuesa
|
||||||
Cooked Gooseberry pie=Pastel de Grosella Cocido
|
|
||||||
Slice of Gooseberry pie=Rebanada de Pastel de Grosella
|
|
||||||
Basket with Gooseberry pies=Cesta con Pasteles de Grosella
|
Basket with Gooseberry pies=Cesta con Pasteles de Grosella
|
||||||
|
Cooked Gooseberry pie=Pastel de Grosella Cocido
|
||||||
|
Gooseberry=Grosella
|
||||||
Gooseberry Bush=Arbusto de Grosella
|
Gooseberry Bush=Arbusto de Grosella
|
||||||
|
Raw Gooseberry pie=Pastel de Grosella Crudo
|
||||||
|
Slice of Gooseberry pie=Rebanada de Pastel de Grosella
|
||||||
|
Basket with Mixed Berry pies=Cesta con Pasteles de Mezcla de Baya
|
||||||
|
Cooked Mixed Berry pie=Pastel de Mezcla de Bayas Cocido
|
||||||
|
Currently fruitless Bush=Arbusto actualmente infructuoso
|
||||||
Mixed Berry=Mezcla de Baya
|
Mixed Berry=Mezcla de Baya
|
||||||
Raw Mixed Berry pie=Pastel de Mezcla de Bayas Cruda
|
Raw Mixed Berry pie=Pastel de Mezcla de Bayas Cruda
|
||||||
Cooked Mixed Berry pie=Pastel de Mezcla de Bayas Cocido
|
|
||||||
Slice of Mixed Berry pie=Rebanada de Pastel de Mezcla de Bayas
|
Slice of Mixed Berry pie=Rebanada de Pastel de Mezcla de Bayas
|
||||||
Basket with Mixed Berry pies=Cesta con Pasteles de Mezcla de Baya
|
|
||||||
Currently fruitless Bush=Arbusto actualmente infructuoso
|
|
||||||
Basket=Cesta
|
Basket=Cesta
|
||||||
|
@ -1,39 +1,46 @@
|
|||||||
# textdomain: bushes_classic
|
# textdomain: bushes_classic
|
||||||
|
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# fat115 <fat115@framasoft.org>, 2017.
|
||||||
|
#
|
||||||
|
|
||||||
Sugar=Sucre
|
Sugar=Sucre
|
||||||
Strawberry=Fraises
|
|
||||||
Raw Strawberry pie=Tarte aux fraises (crue)
|
|
||||||
Cooked Strawberry pie=Tarte aux fraises (cuite)
|
|
||||||
Slice of Strawberry pie=Part de tarte aux fraises
|
|
||||||
Basket with Strawberry pies=Panier de tartes aux fraises
|
Basket with Strawberry pies=Panier de tartes aux fraises
|
||||||
|
Cooked Strawberry pie=Tarte aux fraises (cuite)
|
||||||
|
Raw Strawberry pie=Tarte aux fraises (crue)
|
||||||
|
Slice of Strawberry pie=Part de tarte aux fraises
|
||||||
|
Strawberry=Fraises
|
||||||
Strawberry Bush=Buisson de fraises
|
Strawberry Bush=Buisson de fraises
|
||||||
Blackberry=Mûres
|
|
||||||
Raw Blackberry pie=Tarte aux mûres (crue)
|
|
||||||
Cooked Blackberry pie=Tarte aux mûres (cuite)
|
|
||||||
Slice of Blackberry pie=Part de tarte aux mûres
|
|
||||||
Basket with Blackberry pies=Panier de tartes aux fraises
|
Basket with Blackberry pies=Panier de tartes aux fraises
|
||||||
|
Blackberry=Mûres
|
||||||
Blackberry Bush=Buisson de mûres
|
Blackberry Bush=Buisson de mûres
|
||||||
Blueberry=Myrtilles
|
Cooked Blackberry pie=Tarte aux mûres (cuite)
|
||||||
Raw Blueberry pie=Tarte aux myrtilles (crue)
|
Raw Blackberry pie=Tarte aux mûres (crue)
|
||||||
Cooked Blueberry pie=Tarte aux myrtilles (cuite)
|
Slice of Blackberry pie=Part de tarte aux mûres
|
||||||
Slice of Blueberry pie=Part de tarte aux myrtilles
|
|
||||||
Basket with Blueberry pies=Panier de tartes aux mûres
|
Basket with Blueberry pies=Panier de tartes aux mûres
|
||||||
|
Blueberry=Myrtilles
|
||||||
Blueberry Bush=Buisson de myrtilles
|
Blueberry Bush=Buisson de myrtilles
|
||||||
Raspberry=Framboises
|
Cooked Blueberry pie=Tarte aux myrtilles (cuite)
|
||||||
Raw Raspberry pie=Tarte aux framboises (crue)
|
Raw Blueberry pie=Tarte aux myrtilles (crue)
|
||||||
Cooked Raspberry pie=Tarte aux framboises (cuite)
|
Slice of Blueberry pie=Part de tarte aux myrtilles
|
||||||
Slice of Raspberry pie=Part de tarts aux framboises
|
|
||||||
Basket with Raspberry pies=Panier de tartes aux framboises
|
Basket with Raspberry pies=Panier de tartes aux framboises
|
||||||
|
Cooked Raspberry pie=Tarte aux framboises (cuite)
|
||||||
|
Raspberry=Framboises
|
||||||
Raspberry Bush=Buisson de framboises
|
Raspberry Bush=Buisson de framboises
|
||||||
Gooseberry=Groseilles
|
Raw Raspberry pie=Tarte aux framboises (crue)
|
||||||
Raw Gooseberry pie=Tarte aux groseilles (crue)
|
Slice of Raspberry pie=Part de tarts aux framboises
|
||||||
Cooked Gooseberry pie=Tarte aux groseilles (cuite)
|
|
||||||
Slice of Gooseberry pie=Part de tarte aux groseilles
|
|
||||||
Basket with Gooseberry pies=Panier de tartes aux groseilles
|
Basket with Gooseberry pies=Panier de tartes aux groseilles
|
||||||
|
Cooked Gooseberry pie=Tarte aux groseilles (cuite)
|
||||||
|
Gooseberry=Groseilles
|
||||||
Gooseberry Bush=Buisson de groseilles
|
Gooseberry Bush=Buisson de groseilles
|
||||||
|
Raw Gooseberry pie=Tarte aux groseilles (crue)
|
||||||
|
Slice of Gooseberry pie=Part de tarte aux groseilles
|
||||||
|
Basket with Mixed Berry pies=Panier de tartes aux fruits rouges
|
||||||
|
Cooked Mixed Berry pie=Tarte aux fruits rouges (cuite)
|
||||||
|
Currently fruitless Bush=Buisson sans fruits pour l'instant
|
||||||
Mixed Berry=Fruits rouges
|
Mixed Berry=Fruits rouges
|
||||||
Raw Mixed Berry pie=Tarte aux fruits rouges (crue)
|
Raw Mixed Berry pie=Tarte aux fruits rouges (crue)
|
||||||
Cooked Mixed Berry pie=Tarte aux fruits rouges (cuite)
|
|
||||||
Slice of Mixed Berry pie=Part de tarte aux fruits rouges
|
Slice of Mixed Berry pie=Part de tarte aux fruits rouges
|
||||||
Basket with Mixed Berry pies=Panier de tartes aux fruits rouges
|
|
||||||
Currently fruitless Bush=Buisson sans fruits pour l'instant
|
|
||||||
Basket=Panier
|
Basket=Panier
|
||||||
|
@ -1,39 +1,46 @@
|
|||||||
# textdomain: bushes_classic
|
# textdomain: bushes_classic
|
||||||
|
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# mahmutelmas06@hotmail.com, 2017.
|
||||||
|
#
|
||||||
|
|
||||||
Sugar=Şeker
|
Sugar=Şeker
|
||||||
Strawberry=Çilek
|
|
||||||
Raw Strawberry pie=Çilekli çiğ pasta
|
|
||||||
Cooked Strawberry pie=Pişmiş çilekli pasta
|
|
||||||
Slice of Strawberry pie=Çilekli pasta dilimi
|
|
||||||
Basket with Strawberry pies=Çilekli pasta sepeti
|
Basket with Strawberry pies=Çilekli pasta sepeti
|
||||||
|
Cooked Strawberry pie=Pişmiş çilekli pasta
|
||||||
|
Raw Strawberry pie=Çilekli çiğ pasta
|
||||||
|
Slice of Strawberry pie=Çilekli pasta dilimi
|
||||||
|
Strawberry=Çilek
|
||||||
Strawberry Bush=Çilek fidanı
|
Strawberry Bush=Çilek fidanı
|
||||||
Blackberry=Böğürtlen
|
|
||||||
Raw Blackberry pie=Böğürtlenli çiğ pasta
|
|
||||||
Cooked Blackberry pie=Pişmiş böğürtlenli pasta
|
|
||||||
Slice of Blackberry pie=Böğürtlenli pasta dilimi
|
|
||||||
Basket with Blackberry pies=Böğürtlenli pasta sepeti
|
Basket with Blackberry pies=Böğürtlenli pasta sepeti
|
||||||
|
Blackberry=Böğürtlen
|
||||||
Blackberry Bush=Böğürtlen fidanı
|
Blackberry Bush=Böğürtlen fidanı
|
||||||
Blueberry=Yaban mersini
|
Cooked Blackberry pie=Pişmiş böğürtlenli pasta
|
||||||
Raw Blueberry pie=Yaban mersinli çiğ pasta
|
Raw Blackberry pie=Böğürtlenli çiğ pasta
|
||||||
Cooked Blueberry pie=Pişmiş yaban mersinli pasta
|
Slice of Blackberry pie=Böğürtlenli pasta dilimi
|
||||||
Slice of Blueberry pie=Yaban mersinli pasta dilimi
|
|
||||||
Basket with Blueberry pies=Yaban mersini pastalı sepet
|
Basket with Blueberry pies=Yaban mersini pastalı sepet
|
||||||
|
Blueberry=Yaban mersini
|
||||||
Blueberry Bush=Yaban mersini fidanı
|
Blueberry Bush=Yaban mersini fidanı
|
||||||
Raspberry=Ahududu
|
Cooked Blueberry pie=Pişmiş yaban mersinli pasta
|
||||||
Raw Raspberry pie=Ahududulu çiğ pasta
|
Raw Blueberry pie=Yaban mersinli çiğ pasta
|
||||||
Cooked Raspberry pie=Pişmiş ahududulu pasta
|
Slice of Blueberry pie=Yaban mersinli pasta dilimi
|
||||||
Slice of Raspberry pie=Ahududulu pasta dilimi
|
|
||||||
Basket with Raspberry pies=Ahududulu pasta sepeti
|
Basket with Raspberry pies=Ahududulu pasta sepeti
|
||||||
|
Cooked Raspberry pie=Pişmiş ahududulu pasta
|
||||||
|
Raspberry=Ahududu
|
||||||
Raspberry Bush=Ahududu fidanı
|
Raspberry Bush=Ahududu fidanı
|
||||||
Gooseberry=Bektaşi üzümü
|
Raw Raspberry pie=Ahududulu çiğ pasta
|
||||||
Raw Gooseberry pie=Bektaşi üzümlü çiğ pasta
|
Slice of Raspberry pie=Ahududulu pasta dilimi
|
||||||
Cooked Gooseberry pie=Pişmiş bektaşi üzümlü pasta
|
|
||||||
Slice of Gooseberry pie=Bektaşi üzümlü pasta dilimi
|
|
||||||
Basket with Gooseberry pies=Bektaşi üzümlü pasta sepeti
|
Basket with Gooseberry pies=Bektaşi üzümlü pasta sepeti
|
||||||
|
Cooked Gooseberry pie=Pişmiş bektaşi üzümlü pasta
|
||||||
|
Gooseberry=Bektaşi üzümü
|
||||||
Gooseberry Bush=Bektaşi üzümü fidanı
|
Gooseberry Bush=Bektaşi üzümü fidanı
|
||||||
|
Raw Gooseberry pie=Bektaşi üzümlü çiğ pasta
|
||||||
|
Slice of Gooseberry pie=Bektaşi üzümlü pasta dilimi
|
||||||
|
Basket with Mixed Berry pies=Dutlu pasta sepeti
|
||||||
|
Cooked Mixed Berry pie=Pişmiş dutlu pasta
|
||||||
|
Currently fruitless Bush=Fidanı şu anda meyvesiz
|
||||||
Mixed Berry=Dut
|
Mixed Berry=Dut
|
||||||
Raw Mixed Berry pie=Dutlu çiğ pasta
|
Raw Mixed Berry pie=Dutlu çiğ pasta
|
||||||
Cooked Mixed Berry pie=Pişmiş dutlu pasta
|
|
||||||
Slice of Mixed Berry pie=Dutlu pasta dilimi
|
Slice of Mixed Berry pie=Dutlu pasta dilimi
|
||||||
Basket with Mixed Berry pies=Dutlu pasta sepeti
|
|
||||||
Currently fruitless Bush=Fidanı şu anda meyvesiz
|
|
||||||
Basket=Sepet
|
Basket=Sepet
|
||||||
|
@ -1,39 +1,46 @@
|
|||||||
# textdomain: bushes_classic
|
# textdomain: bushes_classic
|
||||||
|
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
|
||||||
Sugar=
|
Sugar=
|
||||||
Strawberry=
|
|
||||||
Raw Strawberry pie=
|
|
||||||
Cooked Strawberry pie=
|
|
||||||
Slice of Strawberry pie=
|
|
||||||
Basket with Strawberry pies=
|
Basket with Strawberry pies=
|
||||||
|
Cooked Strawberry pie=
|
||||||
|
Raw Strawberry pie=
|
||||||
|
Slice of Strawberry pie=
|
||||||
|
Strawberry=
|
||||||
Strawberry Bush=
|
Strawberry Bush=
|
||||||
Blackberry=
|
|
||||||
Raw Blackberry pie=
|
|
||||||
Cooked Blackberry pie=
|
|
||||||
Slice of Blackberry pie=
|
|
||||||
Basket with Blackberry pies=
|
Basket with Blackberry pies=
|
||||||
|
Blackberry=
|
||||||
Blackberry Bush=
|
Blackberry Bush=
|
||||||
Blueberry=
|
Cooked Blackberry pie=
|
||||||
Raw Blueberry pie=
|
Raw Blackberry pie=
|
||||||
Cooked Blueberry pie=
|
Slice of Blackberry pie=
|
||||||
Slice of Blueberry pie=
|
|
||||||
Basket with Blueberry pies=
|
Basket with Blueberry pies=
|
||||||
|
Blueberry=
|
||||||
Blueberry Bush=
|
Blueberry Bush=
|
||||||
Raspberry=
|
Cooked Blueberry pie=
|
||||||
Raw Raspberry pie=
|
Raw Blueberry pie=
|
||||||
Cooked Raspberry pie=
|
Slice of Blueberry pie=
|
||||||
Slice of Raspberry pie=
|
|
||||||
Basket with Raspberry pies=
|
Basket with Raspberry pies=
|
||||||
|
Cooked Raspberry pie=
|
||||||
|
Raspberry=
|
||||||
Raspberry Bush=
|
Raspberry Bush=
|
||||||
Gooseberry=
|
Raw Raspberry pie=
|
||||||
Raw Gooseberry pie=
|
Slice of Raspberry pie=
|
||||||
Cooked Gooseberry pie=
|
|
||||||
Slice of Gooseberry pie=
|
|
||||||
Basket with Gooseberry pies=
|
Basket with Gooseberry pies=
|
||||||
|
Cooked Gooseberry pie=
|
||||||
|
Gooseberry=
|
||||||
Gooseberry Bush=
|
Gooseberry Bush=
|
||||||
|
Raw Gooseberry pie=
|
||||||
|
Slice of Gooseberry pie=
|
||||||
|
Basket with Mixed Berry pies=
|
||||||
|
Cooked Mixed Berry pie=
|
||||||
|
Currently fruitless Bush=
|
||||||
Mixed Berry=
|
Mixed Berry=
|
||||||
Raw Mixed Berry pie=
|
Raw Mixed Berry pie=
|
||||||
Cooked Mixed Berry pie=
|
|
||||||
Slice of Mixed Berry pie=
|
Slice of Mixed Berry pie=
|
||||||
Basket with Mixed Berry pies=
|
|
||||||
Currently fruitless Bush=
|
|
||||||
Basket=
|
Basket=
|
||||||
|
@ -1,2 +1,3 @@
|
|||||||
name = bushes_classic
|
name = bushes_classic
|
||||||
|
depends = biome_lib
|
||||||
optional_depends = farming, farming_plus
|
optional_depends = farming, farming_plus
|
||||||
|
@ -159,14 +159,19 @@ for i, bush_name in ipairs(bushes_classic.bushes) do
|
|||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
on_use = minetest.item_eat(18),
|
on_use = minetest.item_eat(18),
|
||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
is_ground_content = false,
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
local texture_top, texture_bottom
|
||||||
|
|
||||||
local groups = {snappy = 3, bush = 1, flammable = 2, attached_node=1}
|
local groups = {snappy = 3, bush = 1, flammable = 2, attached_node=1}
|
||||||
if bush_name == "mixed_berry" then
|
if bush_name == "mixed_berry" then
|
||||||
bush_name = "fruitless";
|
bush_name = "fruitless";
|
||||||
|
texture_top = "bushes_fruitless_bush_top.png"
|
||||||
|
texture_bottom = "bushes_fruitless_bush_bottom.png"
|
||||||
groups.not_in_creative_inventory = 1
|
groups.not_in_creative_inventory = 1
|
||||||
|
else
|
||||||
|
texture_top = "bushes_bush_top.png"
|
||||||
|
texture_bottom = "bushes_bush_bottom.png"
|
||||||
end
|
end
|
||||||
|
|
||||||
local node_dig_prediction
|
local node_dig_prediction
|
||||||
@ -211,5 +216,4 @@ minetest.register_node(":bushes:basket_empty", {
|
|||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
groups = { dig_immediate = 3 },
|
groups = { dig_immediate = 3 },
|
||||||
is_ground_content = false,
|
|
||||||
})
|
})
|
||||||
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 8.9 KiB |
Before Width: | Height: | Size: 6.7 KiB After Width: | Height: | Size: 9.0 KiB |
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 7.7 KiB |
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 9.1 KiB |
Before Width: | Height: | Size: 6.7 KiB After Width: | Height: | Size: 9.0 KiB |
Before Width: | Height: | Size: 6.7 KiB After Width: | Height: | Size: 8.9 KiB |
@ -1,2 +1,17 @@
|
|||||||
|
-----------------------------------------------------------------------------------------------
|
||||||
|
local title = "Cave Stuff"
|
||||||
|
local version = "0.0.3"
|
||||||
|
local mname = "cavestuff"
|
||||||
|
-----------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-- support for i18n
|
||||||
|
local S = minetest.get_translator("cavestuff")
|
||||||
|
|
||||||
|
cavestuff = {}
|
||||||
|
|
||||||
dofile(minetest.get_modpath("cavestuff").."/nodes.lua")
|
dofile(minetest.get_modpath("cavestuff").."/nodes.lua")
|
||||||
dofile(minetest.get_modpath("cavestuff").."/mapgen.lua")
|
dofile(minetest.get_modpath("cavestuff").."/mapgen.lua")
|
||||||
|
|
||||||
|
-----------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
print("[Mod] "..title.." ["..version.."] ["..mname.."] Loaded...")
|
||||||
|
@ -1,4 +1,11 @@
|
|||||||
# textdomain: cavestuff
|
# textdomain: cavestuff
|
||||||
|
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# reusityback, 2022.
|
||||||
|
#
|
||||||
|
|
||||||
Pebble=Kieselstein
|
Pebble=Kieselstein
|
||||||
Desert Pebble=Wüstenkiesel
|
Desert Pebble=Wüstenkiesel
|
||||||
Stalactite=Stalaktit
|
Stalactite=Stalaktit
|
||||||
|
@ -1,4 +1,11 @@
|
|||||||
# textdomain: cavestuff
|
# textdomain: cavestuff
|
||||||
|
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# Jolesh, 2022.
|
||||||
|
#
|
||||||
|
|
||||||
Pebble=Ŝtoneto
|
Pebble=Ŝtoneto
|
||||||
Desert Pebble=Dezerta Ŝtoneto
|
Desert Pebble=Dezerta Ŝtoneto
|
||||||
Stalactite=Stalaktito
|
Stalactite=Stalaktito
|
||||||
|
@ -1,4 +1,11 @@
|
|||||||
# textdomain: cavestuff
|
# textdomain: cavestuff
|
||||||
|
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# fat115 <fat115@framasoft.org>, 2017.
|
||||||
|
#
|
||||||
|
|
||||||
Pebble=Caillou
|
Pebble=Caillou
|
||||||
Desert Pebble=Caillou du désert
|
Desert Pebble=Caillou du désert
|
||||||
Stalactite=Stalactite
|
Stalactite=Stalactite
|
||||||
|
@ -1,4 +1,11 @@
|
|||||||
# textdomain: cavestuff
|
# textdomain: cavestuff
|
||||||
|
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
|
||||||
Pebble=
|
Pebble=
|
||||||
Desert Pebble=
|
Desert Pebble=
|
||||||
Stalactite=
|
Stalactite=
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
name = cavestuff
|
name = cavestuff
|
||||||
depends = default
|
depends = default,biome_lib
|
||||||
|
@ -12,32 +12,33 @@ minetest.register_node("cavestuff:pebble_1",{
|
|||||||
description = S("Pebble"),
|
description = S("Pebble"),
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
mesh = "cavestuff_pebble.obj",
|
mesh = "cavestuff_pebble.obj",
|
||||||
tiles = {"undergrowth_pebble.png"},
|
tiles = {"undergrowth_pebble.png"},
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
groups = {cracky=3, stone=1, attached_node=1, dig_immediate=3},
|
groups = {cracky=3, stone=1, attached_node=1},
|
||||||
selection_box = cbox,
|
selection_box = cbox,
|
||||||
collision_box = cbox,
|
collision_box = cbox,
|
||||||
on_place = function(itemstack, placer, pointed_thing)
|
on_place = function(itemstack, placer, pointed_thing)
|
||||||
-- place a random pebble node
|
-- place a random pebble node
|
||||||
local stack = ItemStack("cavestuff:pebble_"..math.random(1,2))
|
local stack = ItemStack("cavestuff:pebble_"..math.random(1,2))
|
||||||
local ret = minetest.item_place(stack, placer, pointed_thing)
|
local ret = minetest.item_place(stack, placer, pointed_thing)
|
||||||
return ItemStack("cavestuff:pebble_1 "..itemstack:get_count()-(1-ret:get_count()))
|
return ItemStack("cavestuff:pebble_1 "..itemstack:get_count()-(1-ret:get_count()))
|
||||||
end,
|
end,
|
||||||
sounds = default.node_sound_stone_defaults(),
|
sounds = default.node_sound_stone_defaults(),
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("cavestuff:pebble_2",{
|
minetest.register_node("cavestuff:pebble_2",{
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
mesh = "cavestuff_pebble.obj",
|
mesh = "cavestuff_pebble.obj",
|
||||||
tiles = {"undergrowth_pebble.png"},
|
tiles = {"undergrowth_pebble.png"},
|
||||||
drop = "cavestuff:pebble_1",
|
drop = "cavestuff:pebble_1",
|
||||||
paramtype = "light",
|
tiles = {"undergrowth_pebble.png"},
|
||||||
|
paramtype = "light",
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
groups = {cracky=3, stone=1, attached_node=1, not_in_creative_inventory=1, dig_immediate=3},
|
groups = {cracky=3, stone=1, attached_node=1, not_in_creative_inventory=1},
|
||||||
selection_box = cbox,
|
selection_box = cbox,
|
||||||
collision_box = cbox,
|
collision_box = cbox,
|
||||||
sounds = default.node_sound_stone_defaults(),
|
sounds = default.node_sound_stone_defaults(),
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("cavestuff:desert_pebble_1",{
|
minetest.register_node("cavestuff:desert_pebble_1",{
|
||||||
@ -47,7 +48,7 @@ minetest.register_node("cavestuff:desert_pebble_1",{
|
|||||||
tiles = {"default_desert_stone.png"},
|
tiles = {"default_desert_stone.png"},
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
groups = {cracky=3, stone=1, attached_node=1, dig_immediate=3},
|
groups = {cracky=3, stone=1, attached_node=1},
|
||||||
selection_box = cbox,
|
selection_box = cbox,
|
||||||
collision_box = cbox,
|
collision_box = cbox,
|
||||||
on_place = function(itemstack, placer, pointed_thing)
|
on_place = function(itemstack, placer, pointed_thing)
|
||||||
@ -66,7 +67,7 @@ minetest.register_node("cavestuff:desert_pebble_2",{
|
|||||||
tiles = {"default_desert_stone.png"},
|
tiles = {"default_desert_stone.png"},
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
groups = {cracky=3, stone=1, attached_node=1, not_in_creative_inventory=1, dig_immediate=3},
|
groups = {cracky=3, stone=1, attached_node=1, not_in_creative_inventory=1},
|
||||||
selection_box = cbox,
|
selection_box = cbox,
|
||||||
collision_box = cbox,
|
collision_box = cbox,
|
||||||
sounds = default.node_sound_stone_defaults(),
|
sounds = default.node_sound_stone_defaults(),
|
||||||
@ -78,7 +79,6 @@ minetest.register_node("cavestuff:stalactite_1",{
|
|||||||
drawtype="nodebox",
|
drawtype="nodebox",
|
||||||
tiles = {"undergrowth_pebble.png"},
|
tiles = {"undergrowth_pebble.png"},
|
||||||
groups = {cracky=3,attached_node=1},
|
groups = {cracky=3,attached_node=1},
|
||||||
is_ground_content = false,
|
|
||||||
description = S("Stalactite"),
|
description = S("Stalactite"),
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "wallmounted",
|
paramtype2 = "wallmounted",
|
||||||
@ -113,7 +113,7 @@ minetest.register_node("cavestuff:stalactite_1",{
|
|||||||
name = "cavestuff:stalactite_"..math.random(1,3),
|
name = "cavestuff:stalactite_"..math.random(1,3),
|
||||||
param2 = minetest.dir_to_wallmounted(vector.multiply(dir, -1))
|
param2 = minetest.dir_to_wallmounted(vector.multiply(dir, -1))
|
||||||
})
|
})
|
||||||
if not minetest.is_creative_enabled(playername) then
|
if not minetest.setting_getbool("creative_mode") then
|
||||||
itemstack:take_item()
|
itemstack:take_item()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -125,7 +125,6 @@ minetest.register_node("cavestuff:stalactite_2",{
|
|||||||
drawtype="nodebox",
|
drawtype="nodebox",
|
||||||
tiles = {"undergrowth_pebble.png"},
|
tiles = {"undergrowth_pebble.png"},
|
||||||
groups = {cracky=3,attached_node=1,not_in_creative_inventory=1},
|
groups = {cracky=3,attached_node=1,not_in_creative_inventory=1},
|
||||||
is_ground_content = false,
|
|
||||||
drop = "cavestuff:stalactite_1",
|
drop = "cavestuff:stalactite_1",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "wallmounted",
|
paramtype2 = "wallmounted",
|
||||||
@ -144,7 +143,6 @@ minetest.register_node("cavestuff:stalactite_3",{
|
|||||||
drawtype="nodebox",
|
drawtype="nodebox",
|
||||||
tiles = {"undergrowth_pebble.png"},
|
tiles = {"undergrowth_pebble.png"},
|
||||||
groups = {cracky=3,attached_node=1,not_in_creative_inventory=1},
|
groups = {cracky=3,attached_node=1,not_in_creative_inventory=1},
|
||||||
is_ground_content = false,
|
|
||||||
drop = "cavestuff:stalactite_1",
|
drop = "cavestuff:stalactite_1",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "wallmounted",
|
paramtype2 = "wallmounted",
|
||||||
@ -158,3 +156,5 @@ minetest.register_node("cavestuff:stalactite_3",{
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
--Stalagmites
|
||||||
|
@ -53,7 +53,7 @@ minetest.register_craft({
|
|||||||
{"default:stick",""}
|
{"default:stick",""}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
if minetest.get_modpath("flint") then
|
if minetest.get_modpath("flint") ~= nil then
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "dryplants:sickle",
|
output = "dryplants:sickle",
|
||||||
recipe = {
|
recipe = {
|
||||||
@ -63,7 +63,7 @@ if minetest.get_modpath("flint") then
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
if minetest.get_modpath("stoneage") then
|
if minetest.get_modpath("stoneage") ~= nil then
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "dryplants:sickle",
|
output = "dryplants:sickle",
|
||||||
recipe = {
|
recipe = {
|
||||||
|
@ -1,15 +1,33 @@
|
|||||||
|
-----------------------------------------------------------------------------------------------
|
||||||
|
local title = "Grasses" -- former "Dry plants"
|
||||||
|
local version = "0.1.5"
|
||||||
|
local mname = "dryplants"
|
||||||
|
-----------------------------------------------------------------------------------------------
|
||||||
|
-- by Mossmanikin
|
||||||
|
-- textures & ideas partly by Neuromancer
|
||||||
|
|
||||||
|
-- Contains code from: default, farming
|
||||||
|
-- Looked at code from: darkage, sickle, stairs
|
||||||
|
-- Dependencies: default, farming, biome_lib
|
||||||
|
-- Supports:
|
||||||
|
-----------------------------------------------------------------------------------------------
|
||||||
|
abstract_dryplants = {}
|
||||||
|
|
||||||
-- support for i18n
|
-- support for i18n
|
||||||
local S = minetest.get_translator("dryplants")
|
local S = minetest.get_translator("dryplants")
|
||||||
|
|
||||||
abstract_dryplants = {}
|
|
||||||
|
|
||||||
dofile(minetest.get_modpath("dryplants").."/crafting.lua")
|
dofile(minetest.get_modpath("dryplants").."/crafting.lua")
|
||||||
|
dofile(minetest.get_modpath("dryplants").."/settings.txt")
|
||||||
dofile(minetest.get_modpath("dryplants").."/reed.lua")
|
dofile(minetest.get_modpath("dryplants").."/reed.lua")
|
||||||
|
if REEDMACE_GENERATES == true then
|
||||||
dofile(minetest.get_modpath("dryplants").."/reedmace.lua")
|
dofile(minetest.get_modpath("dryplants").."/reedmace.lua")
|
||||||
|
end
|
||||||
|
if SMALL_JUNCUS_GENERATES == true then
|
||||||
dofile(minetest.get_modpath("dryplants").."/juncus.lua")
|
dofile(minetest.get_modpath("dryplants").."/juncus.lua")
|
||||||
|
end
|
||||||
|
if EXTRA_TALL_GRASS_GENERATES == true then
|
||||||
dofile(minetest.get_modpath("dryplants").."/moregrass.lua")
|
dofile(minetest.get_modpath("dryplants").."/moregrass.lua")
|
||||||
|
end
|
||||||
--dofile(minetest.get_modpath("dryplants").."/meadowvariation.lua")
|
--dofile(minetest.get_modpath("dryplants").."/meadowvariation.lua")
|
||||||
|
|
||||||
-----------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------
|
||||||
@ -119,7 +137,6 @@ minetest.register_node("dryplants:grass", {
|
|||||||
fixed = {-0.5 , -0.5 , -0.5 , 0.5 , -0.4375, 0.5 },
|
fixed = {-0.5 , -0.5 , -0.5 , 0.5 , -0.4375, 0.5 },
|
||||||
},
|
},
|
||||||
groups = {snappy=3, flammable=2},
|
groups = {snappy=3, flammable=2},
|
||||||
is_ground_content = false,
|
|
||||||
sounds = default.node_sound_leaves_defaults(),
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -128,7 +145,7 @@ minetest.register_node("dryplants:grass", {
|
|||||||
-----------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
nodenames = {"dryplants:grass"},
|
nodenames = {"dryplants:grass"},
|
||||||
interval = 3600, --1200, -- 20 minutes: a minetest-day/night-cycle
|
interval = HAY_DRYING_TIME, --1200, -- 20 minutes: a minetest-day/night-cycle
|
||||||
chance = 1,
|
chance = 1,
|
||||||
action = function(pos)
|
action = function(pos)
|
||||||
minetest.swap_node(pos, {name="dryplants:hay"})
|
minetest.swap_node(pos, {name="dryplants:hay"})
|
||||||
@ -152,7 +169,6 @@ minetest.register_node("dryplants:hay", {
|
|||||||
fixed = {-0.5 , -0.5 , -0.5 , 0.5 , -0.4375, 0.5 },
|
fixed = {-0.5 , -0.5 , -0.5 , 0.5 , -0.4375, 0.5 },
|
||||||
},
|
},
|
||||||
groups = {snappy=3, flammable=2},
|
groups = {snappy=3, flammable=2},
|
||||||
is_ground_content = false,
|
|
||||||
sounds = default.node_sound_leaves_defaults(),
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -175,8 +191,8 @@ minetest.register_node("dryplants:grass_short", {
|
|||||||
-----------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
nodenames = {"dryplants:grass_short"},
|
nodenames = {"dryplants:grass_short"},
|
||||||
interval = 1200, --1200, -- 20 minutes: a minetest-day/night-cycle
|
interval = GRASS_REGROWING_TIME, --1200, -- 20 minutes: a minetest-day/night-cycle
|
||||||
chance = 100/1200,
|
chance = 100/GRASS_REGROWING_CHANCE,
|
||||||
action = function(pos)
|
action = function(pos)
|
||||||
-- Only become dirt with grass if no cut grass or hay lies on top
|
-- Only become dirt with grass if no cut grass or hay lies on top
|
||||||
local above = minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z})
|
local above = minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z})
|
||||||
@ -185,3 +201,7 @@ minetest.register_abm({
|
|||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
-----------------------------------------------------------------------------------------------
|
||||||
|
print("[Mod] "..title.." ["..version.."] ["..mname.."] Loaded...")
|
||||||
|
-----------------------------------------------------------------------------------------------
|
||||||
|
@ -1,12 +1,21 @@
|
|||||||
|
-----------------------------------------------------------------------------------------------
|
||||||
|
-- Grasses - Juncus 0.0.5
|
||||||
|
-----------------------------------------------------------------------------------------------
|
||||||
|
-- by Mossmanikin
|
||||||
|
-- textures & ideas partly by Neuromancer
|
||||||
|
|
||||||
|
-- Contains code from: biome_lib
|
||||||
|
-- Looked at code from: default
|
||||||
|
-----------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
-- support for i18n
|
-- support for i18n
|
||||||
local S = minetest.get_translator("dryplants")
|
local S = minetest.get_translator("dryplants")
|
||||||
|
|
||||||
local function grow_juncus(pos)
|
abstract_dryplants.grow_juncus = function(pos)
|
||||||
local juncus_type = math.random(2,3)
|
local juncus_type = math.random(2,3)
|
||||||
local right_here = {x=pos.x, y=pos.y+1, z=pos.z}
|
local right_here = {x=pos.x, y=pos.y+1, z=pos.z}
|
||||||
|
if minetest.get_node(right_here).name == "air" -- instead of check_air = true,
|
||||||
local nodename = minetest.get_node(right_here).name
|
or minetest.get_node(right_here).name == "default:junglegrass" then
|
||||||
if nodename == "air" or nodename == "default:junglegrass" then
|
|
||||||
if juncus_type == 2 then
|
if juncus_type == 2 then
|
||||||
minetest.swap_node(right_here, {name="dryplants:juncus_02"})
|
minetest.swap_node(right_here, {name="dryplants:juncus_02"})
|
||||||
else
|
else
|
||||||
@ -37,10 +46,6 @@ minetest.register_node("dryplants:juncus", {
|
|||||||
fixed = {-7/16, -1/2, -7/16, 7/16, 0, 7/16},
|
fixed = {-7/16, -1/2, -7/16, 7/16, 0, 7/16},
|
||||||
},
|
},
|
||||||
on_place = function(itemstack, placer, pointed_thing)
|
on_place = function(itemstack, placer, pointed_thing)
|
||||||
if not itemstack or not placer or not pointed_thing then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local playername = placer:get_player_name()
|
local playername = placer:get_player_name()
|
||||||
if minetest.is_protected(pointed_thing.above, playername) or
|
if minetest.is_protected(pointed_thing.above, playername) or
|
||||||
minetest.is_protected(pointed_thing.under, playername) then
|
minetest.is_protected(pointed_thing.under, playername) then
|
||||||
@ -55,13 +60,12 @@ minetest.register_node("dryplants:juncus", {
|
|||||||
else
|
else
|
||||||
minetest.swap_node(right_here, {name="dryplants:juncus"})
|
minetest.swap_node(right_here, {name="dryplants:juncus"})
|
||||||
end
|
end
|
||||||
if not minetest.is_creative_enabled(playername) then
|
if not minetest.setting_getbool("creative_mode") then
|
||||||
itemstack:take_item()
|
itemstack:take_item()
|
||||||
end
|
end
|
||||||
return itemstack
|
return itemstack
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("dryplants:juncus_02", {
|
minetest.register_node("dryplants:juncus_02", {
|
||||||
description = S("Juncus"),
|
description = S("Juncus"),
|
||||||
drawtype = "plantlike",
|
drawtype = "plantlike",
|
||||||
@ -88,69 +92,42 @@ minetest.register_node("dryplants:juncus_02", {
|
|||||||
-- GENERATE SMALL JUNCUS
|
-- GENERATE SMALL JUNCUS
|
||||||
-----------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------
|
||||||
-- near water or swamp
|
-- near water or swamp
|
||||||
minetest.register_decoration({
|
pl.register_on_generate({
|
||||||
name = "dryplants:juncus_water",
|
surface = {
|
||||||
decoration = {"air"},
|
"default:dirt_with_grass",
|
||||||
fill_ratio = 0.16,
|
--"default:desert_sand",
|
||||||
y_min = 1,
|
--"default:sand",
|
||||||
y_max = 40,
|
"stoneage:grass_with_silex",
|
||||||
place_on = {
|
"sumpf:peat",
|
||||||
"default:dirt_with_grass",
|
"sumpf:sumpf"
|
||||||
"stoneage:grass_with_silex",
|
},
|
||||||
"sumpf:peat",
|
noise_params = pl.generate_noise_params({max_count = JUNCUS_NEAR_WATER_PER_MAPBLOCK, rarity = 101 - JUNCUS_NEAR_WATER_RARITY}),
|
||||||
"sumpf:sumpf"
|
min_elevation = 1, -- above sea level
|
||||||
|
near_nodes = {"default:water_source","sumpf:dirtywater_source","sumpf:sumpf"},
|
||||||
|
near_nodes_size = 2,
|
||||||
|
near_nodes_vertical = 1,
|
||||||
|
near_nodes_count = 1,
|
||||||
},
|
},
|
||||||
deco_type = "simple",
|
"dryplants:juncus_near_water",
|
||||||
flags = "all_floors",
|
abstract_dryplants.grow_juncus
|
||||||
spawn_by = {
|
)
|
||||||
"default:water_source",
|
|
||||||
"sumpf:dirtywater_source",
|
|
||||||
"sumpf:sumpf"
|
|
||||||
},
|
|
||||||
check_offset = -1,
|
|
||||||
num_spawn_by = 1
|
|
||||||
})
|
|
||||||
|
|
||||||
-- at dunes/beach
|
-- at dunes/beach
|
||||||
minetest.register_decoration({
|
pl.register_on_generate({
|
||||||
name = "dryplants:juncus_beach",
|
surface = {
|
||||||
decoration = {"air"},
|
--"default:dirt_with_grass",
|
||||||
fill_ratio = 0.08,
|
--"default:desert_sand",
|
||||||
y_min = 1,
|
"default:sand",
|
||||||
y_max = 40,
|
--"stoneage:grass_with_silex",
|
||||||
place_on = {
|
--"sumpf:peat",
|
||||||
"default:sand",
|
--"sumpf:sumpf"
|
||||||
|
},
|
||||||
|
noise_params = pl.generate_noise_params({max_count = JUNCUS_AT_BEACH_PER_MAPBLOCK, rarity = 101 - JUNCUS_AT_BEACH_RARITY}),
|
||||||
|
min_elevation = 1, -- above sea level
|
||||||
|
near_nodes = {"default:dirt_with_grass"},
|
||||||
|
near_nodes_size = 2,
|
||||||
|
near_nodes_vertical = 1,
|
||||||
|
near_nodes_count = 1,
|
||||||
},
|
},
|
||||||
deco_type = "simple",
|
"dryplants:junces_at_beach",
|
||||||
flags = "all_floors",
|
abstract_dryplants.grow_juncus
|
||||||
spawn_by = {"default:dirt_with_grass"},
|
)
|
||||||
check_offset = -1,
|
|
||||||
num_spawn_by = 1
|
|
||||||
})
|
|
||||||
|
|
||||||
local did, did2
|
|
||||||
minetest.register_on_mods_loaded(function()
|
|
||||||
did = minetest.get_decoration_id("dryplants:juncus_water")
|
|
||||||
did2 = minetest.get_decoration_id("dryplants:juncus_beach")
|
|
||||||
minetest.set_gen_notify("decoration", {did, did2})
|
|
||||||
end)
|
|
||||||
|
|
||||||
minetest.register_on_generated(function(minp, maxp, blockseed)
|
|
||||||
local g = minetest.get_mapgen_object("gennotify")
|
|
||||||
local locations = {}
|
|
||||||
|
|
||||||
local deco_locations_1 = g["decoration#" .. did] or {}
|
|
||||||
local deco_locations_2 = g["decoration#" .. did2] or {}
|
|
||||||
|
|
||||||
for _, pos in pairs(deco_locations_1) do
|
|
||||||
locations[#locations+1] = pos
|
|
||||||
end
|
|
||||||
for _, pos in pairs(deco_locations_2) do
|
|
||||||
locations[#locations+1] = pos
|
|
||||||
end
|
|
||||||
|
|
||||||
if #locations == 0 then return end
|
|
||||||
for _, pos in ipairs(locations) do
|
|
||||||
grow_juncus(pos)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
@ -1,18 +1,25 @@
|
|||||||
# textdomain: dryplants
|
# textdomain: dryplants
|
||||||
|
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# reusityback, 2022.
|
||||||
|
#
|
||||||
|
|
||||||
Sickle=Sichel
|
Sickle=Sichel
|
||||||
Cut Grass=Grasschnitt
|
Cut Grass=Gras schneiden
|
||||||
Hay=Heu
|
Hay=Heu
|
||||||
Short Grass=Kurzes Gras
|
Short Grass=Kurzes Gras
|
||||||
Juncus=Binsen
|
Juncus=Binsen
|
||||||
Wet Reed=Nasses Schilf
|
Wet Reed=Nasses Schilf
|
||||||
Wet Reed Slab=Nasse Schilfplatte
|
Wet Reed Slab=Nasse Schilfstufe
|
||||||
Wet Reed Roof=Nasses Schilfdach
|
Wet Reed Roof=Nasses Schilfdach
|
||||||
Wet Reed Roof Corner 1=Nasser Schilfdachwinkel 1
|
Wet Reed Roof Corner=Nasser Schilfdachwinkel
|
||||||
Wet Reed Roof Corner 2=Nasser Schilfdachwinkel 2
|
Wet Reed Roof Corner 2=Nasser Schilfdachwinkel 2
|
||||||
Reed=Schilf
|
Reed=Schilf
|
||||||
Reed Slab=Schilfstufe
|
Reed Slab=Schilfstufe
|
||||||
Reed Roof=Schilfdach
|
Reed Roof=Schilfdach
|
||||||
Reed Roof Corner 1=Schilfdachwinkel 1
|
Reed Roof Corner=Schilfdachwinkel
|
||||||
Reed Roof Corner 2=Schilfdachwinkel
|
Reed Roof Corner 2=Schilfdachwinkel
|
||||||
Reedmace=Rohrkolben
|
Reedmace=Rohrkolben
|
||||||
Reedmace, height: 1=Rohrkolben, Höhe: 1
|
Reedmace, height: 1=Rohrkolben, Höhe: 1
|
||||||
|
@ -1,4 +1,11 @@
|
|||||||
# textdomain: dryplants
|
# textdomain: dryplants
|
||||||
|
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# Jolesh, 2022.
|
||||||
|
#
|
||||||
|
|
||||||
Sickle=
|
Sickle=
|
||||||
Cut Grass=Tranĉita Herbenon
|
Cut Grass=Tranĉita Herbenon
|
||||||
Hay=Fojno
|
Hay=Fojno
|
||||||
@ -7,12 +14,12 @@ Juncus=Junko
|
|||||||
Wet Reed=Malseka Kano
|
Wet Reed=Malseka Kano
|
||||||
Wet Reed Slab=Slabo de Malseka Kano
|
Wet Reed Slab=Slabo de Malseka Kano
|
||||||
Wet Reed Roof=Tegmento de Malseka Kano
|
Wet Reed Roof=Tegmento de Malseka Kano
|
||||||
Wet Reed Roof Corner 1=Tegmentangulo 1 de Malseka Kano
|
Wet Reed Roof Corner=Tegmentangulo de Malseka Kano
|
||||||
Wet Reed Roof Corner 2=Tegmentangulo 2 de Malseka Kano
|
Wet Reed Roof Corner 2=Tegmentangulo 2 de Malseka Kano
|
||||||
Reed=Kano
|
Reed=Kano
|
||||||
Reed Slab=Slabo de Kano
|
Reed Slab=Slabo de Kano
|
||||||
Reed Roof=Tegmento de Kano
|
Reed Roof=Tegmento de Kano
|
||||||
Reed Roof Corner 1=Tegmentangulo 1 de Kano
|
Reed Roof Corner=Tegmentangulo de Kano
|
||||||
Reed Roof Corner 2=Tegmentangulo 2 de Kano
|
Reed Roof Corner 2=Tegmentangulo 2 de Kano
|
||||||
Reedmace=Tifeo
|
Reedmace=Tifeo
|
||||||
Reedmace, height: 1=Tifeo, alteco: 1
|
Reedmace, height: 1=Tifeo, alteco: 1
|
||||||
|
@ -1,4 +1,11 @@
|
|||||||
# textdomain: dryplants
|
# textdomain: dryplants
|
||||||
|
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# fat115 <fat115@framasoft.org>, 2017.
|
||||||
|
#
|
||||||
|
|
||||||
Sickle=Faucille
|
Sickle=Faucille
|
||||||
Cut Grass=Herbe coupée
|
Cut Grass=Herbe coupée
|
||||||
Hay=Foin
|
Hay=Foin
|
||||||
@ -7,12 +14,12 @@ Juncus=Joncs
|
|||||||
Wet Reed=Bloc de roseau humide
|
Wet Reed=Bloc de roseau humide
|
||||||
Wet Reed Slab=Dalle en roseau humide
|
Wet Reed Slab=Dalle en roseau humide
|
||||||
Wet Reed Roof=Toit en roseau humide
|
Wet Reed Roof=Toit en roseau humide
|
||||||
Wet Reed Roof Corner 1=Angle de toit en roseau humide 1
|
Wet Reed Roof Corner=Angle de toit en roseau humide
|
||||||
Wet Reed Roof Corner 2=Angle de toit en roseau humide 2
|
Wet Reed Roof Corner 2=Angle de toit en roseau humide 2
|
||||||
Reed=Roseau
|
Reed=Roseau
|
||||||
Reed Slab=Dalle en roseau
|
Reed Slab=Dalle en roseau
|
||||||
Reed Roof=Toit en roseau
|
Reed Roof=Toit en roseau
|
||||||
Reed Roof Corner 1=Angle de toit en roseau 1
|
Reed Roof Corner=Angle de toit en roseau
|
||||||
Reed Roof Corner 2=Angle de toit en roseau 2
|
Reed Roof Corner 2=Angle de toit en roseau 2
|
||||||
Reedmace=Roseau
|
Reedmace=Roseau
|
||||||
Reedmace, height: 1=Roseau, 1 de hauteur
|
Reedmace, height: 1=Roseau, 1 de hauteur
|
||||||
|
@ -1,4 +1,11 @@
|
|||||||
# textdomain: dryplants
|
# textdomain: dryplants
|
||||||
|
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
|
||||||
Sickle=
|
Sickle=
|
||||||
Cut Grass=
|
Cut Grass=
|
||||||
Hay=
|
Hay=
|
||||||
@ -7,12 +14,12 @@ Juncus=
|
|||||||
Wet Reed=
|
Wet Reed=
|
||||||
Wet Reed Slab=
|
Wet Reed Slab=
|
||||||
Wet Reed Roof=
|
Wet Reed Roof=
|
||||||
Wet Reed Roof Corner 1=
|
Wet Reed Roof Corner=
|
||||||
Wet Reed Roof Corner 2=
|
Wet Reed Roof Corner 2=
|
||||||
Reed=
|
Reed=
|
||||||
Reed Slab=
|
Reed Slab=
|
||||||
Reed Roof=
|
Reed Roof=
|
||||||
Reed Roof Corner 1=
|
Reed Roof Corner=
|
||||||
Reed Roof Corner 2=
|
Reed Roof Corner 2=
|
||||||
Reedmace=
|
Reedmace=
|
||||||
Reedmace, height: 1=
|
Reedmace, height: 1=
|
||||||
|
@ -1,12 +1,24 @@
|
|||||||
-- @reviewer: couldn't even find using biome_lib
|
-----------------------------------------------------------------------------------------------
|
||||||
minetest.register_decoration({
|
-- Grasses - Meadow Variation 0.0.1
|
||||||
decoration = {"dryplants:grass_short"},
|
-----------------------------------------------------------------------------------------------
|
||||||
fill_ratio = 0.8,
|
-- by Mossmanikin
|
||||||
y_min = 1,
|
|
||||||
y_max = 40,
|
-- Contains code from: biome_lib
|
||||||
place_on = {
|
-- Looked at code from: default
|
||||||
"default:dirt_with_grass",
|
-----------------------------------------------------------------------------------------------
|
||||||
},
|
|
||||||
deco_type = "simple",
|
abstract_dryplants.grow_grass_variation = function(pos)
|
||||||
flags = "all_floors"
|
local right_here = {x=pos.x, y=pos.y, z=pos.z}
|
||||||
})
|
minetest.swap_node(right_here, {name="dryplants:grass_short"})
|
||||||
|
end
|
||||||
|
|
||||||
|
pl.register_on_generate({
|
||||||
|
surface = {
|
||||||
|
"default:dirt_with_grass",
|
||||||
|
},
|
||||||
|
noise_params = pl.generate_noise_params({max_count = 4800, rarity = 25}),
|
||||||
|
min_elevation = 1, -- above sea level
|
||||||
|
},
|
||||||
|
"dryplants:grass",
|
||||||
|
abstract_dryplants.grow_grass_variation
|
||||||
|
)
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
name = dryplants
|
name = dryplants
|
||||||
depends = default
|
depends = default, biome_lib
|
||||||
optional_depends = farming, ebiomes
|
optional_depends = farming
|
||||||
|
@ -1,3 +1,12 @@
|
|||||||
|
-----------------------------------------------------------------------------------------------
|
||||||
|
-- Grasses - More Tall Grass 0.0.2
|
||||||
|
-----------------------------------------------------------------------------------------------
|
||||||
|
-- by Mossmanikin
|
||||||
|
|
||||||
|
-- Contains code from: biome_lib
|
||||||
|
-- Looked at code from: default
|
||||||
|
-----------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
minetest.register_decoration({
|
minetest.register_decoration({
|
||||||
decoration = {
|
decoration = {
|
||||||
"default:grass_1",
|
"default:grass_1",
|
||||||
@ -6,15 +15,15 @@ minetest.register_decoration({
|
|||||||
"default:grass_4",
|
"default:grass_4",
|
||||||
"default:grass_5"
|
"default:grass_5"
|
||||||
},
|
},
|
||||||
fill_ratio = 0.8,
|
|
||||||
y_min = 1,
|
|
||||||
y_max = 40,
|
|
||||||
place_on = {
|
place_on = {
|
||||||
"default:dirt_with_grass",
|
"default:dirt_with_grass",
|
||||||
"stoneage:grass_with_silex",
|
"stoneage:grass_with_silex",
|
||||||
"sumpf:peat",
|
"sumpf:peat",
|
||||||
"sumpf:sumpf"
|
"sumpf:sumpf"
|
||||||
},
|
},
|
||||||
|
noise_params = pl.generate_noise_params({max_count = TALL_GRASS_PER_MAPBLOCK, rarity = 101 - TALL_GRASS_RARITY}),
|
||||||
|
flags = "all_floors",
|
||||||
deco_type = "simple",
|
deco_type = "simple",
|
||||||
flags = "all_floors"
|
y_min = 1,
|
||||||
|
y_max = 48
|
||||||
})
|
})
|
@ -44,7 +44,6 @@ minetest.register_node("dryplants:wetreed_slab", {
|
|||||||
fixed = {-1/2, -1/2, -1/2, 1/2, 0, 1/2},
|
fixed = {-1/2, -1/2, -1/2, 1/2, 0, 1/2},
|
||||||
},
|
},
|
||||||
groups = {snappy=3, flammable=2},
|
groups = {snappy=3, flammable=2},
|
||||||
is_ground_content = false,
|
|
||||||
sounds = default.node_sound_leaves_defaults(),
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -73,107 +72,109 @@ minetest.register_node("dryplants:wetreed_roof", {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
groups = {snappy=3, flammable=2},
|
groups = {snappy=3, flammable=2},
|
||||||
is_ground_content = false,
|
|
||||||
sounds = default.node_sound_leaves_defaults(),
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
})
|
})
|
||||||
|
|
||||||
local CoRNeR = {
|
if AUTO_ROOF_CORNER == true then
|
||||||
|
|
||||||
|
local CoRNeR = {
|
||||||
-- MaTeRiaL
|
-- MaTeRiaL
|
||||||
{"wetreed"},
|
{"wetreed"},
|
||||||
{"reed"}
|
{"reed"}
|
||||||
}
|
}
|
||||||
|
|
||||||
for i in pairs(CoRNeR) do
|
for i in pairs(CoRNeR) do
|
||||||
|
|
||||||
local MaTeRiaL = CoRNeR[i][1]
|
local MaTeRiaL = CoRNeR[i][1]
|
||||||
local roof = "dryplants:"..MaTeRiaL.."_roof"
|
local roof = "dryplants:"..MaTeRiaL.."_roof"
|
||||||
local corner = "dryplants:"..MaTeRiaL.."_roof_corner"
|
local corner = "dryplants:"..MaTeRiaL.."_roof_corner"
|
||||||
local corner_2 = "dryplants:"..MaTeRiaL.."_roof_corner_2"
|
local corner_2 = "dryplants:"..MaTeRiaL.."_roof_corner_2"
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
nodenames = {roof},
|
nodenames = {roof},
|
||||||
interval = 1,
|
interval = 1,
|
||||||
chance = 1,
|
chance = 1,
|
||||||
action = function(pos)
|
action = function(pos)
|
||||||
|
|
||||||
local node_east = minetest.get_node({x=pos.x+1, y=pos.y, z=pos.z })
|
local node_east = minetest.get_node({x=pos.x+1, y=pos.y, z=pos.z })
|
||||||
local node_west = minetest.get_node({x=pos.x-1, y=pos.y, z=pos.z })
|
local node_west = minetest.get_node({x=pos.x-1, y=pos.y, z=pos.z })
|
||||||
local node_north = minetest.get_node({x=pos.x, y=pos.y, z=pos.z+1})
|
local node_north = minetest.get_node({x=pos.x, y=pos.y, z=pos.z+1})
|
||||||
local node_south = minetest.get_node({x=pos.x, y=pos.y, z=pos.z-1})
|
local node_south = minetest.get_node({x=pos.x, y=pos.y, z=pos.z-1})
|
||||||
-- corner 1
|
-- corner 1
|
||||||
if ((node_west.name == roof and node_west.param2 == 0)
|
if ((node_west.name == roof and node_west.param2 == 0)
|
||||||
or (node_west.name == corner and node_west.param2 == 1))
|
or (node_west.name == corner and node_west.param2 == 1))
|
||||||
and ((node_north.name == roof and node_north.param2 == 3)
|
and ((node_north.name == roof and node_north.param2 == 3)
|
||||||
or (node_north.name == corner and node_north.param2 == 3))
|
or (node_north.name == corner and node_north.param2 == 3))
|
||||||
then
|
then
|
||||||
minetest.swap_node(pos, {name=corner, param2=0})
|
minetest.swap_node(pos, {name=corner, param2=0})
|
||||||
end
|
end
|
||||||
|
|
||||||
if ((node_north.name == roof and node_north.param2 == 1)
|
if ((node_north.name == roof and node_north.param2 == 1)
|
||||||
or (node_north.name == corner and node_north.param2 == 2))
|
or (node_north.name == corner and node_north.param2 == 2))
|
||||||
and ((node_east.name == roof and node_east.param2 == 0)
|
and ((node_east.name == roof and node_east.param2 == 0)
|
||||||
or (node_east.name == corner and node_east.param2 == 0))
|
or (node_east.name == corner and node_east.param2 == 0))
|
||||||
then
|
then
|
||||||
minetest.swap_node(pos, {name=corner, param2=1})
|
minetest.swap_node(pos, {name=corner, param2=1})
|
||||||
end
|
end
|
||||||
|
|
||||||
if ((node_east.name == roof and node_east.param2 == 2)
|
if ((node_east.name == roof and node_east.param2 == 2)
|
||||||
or (node_east.name == corner and node_east.param2 == 3))
|
or (node_east.name == corner and node_east.param2 == 3))
|
||||||
and ((node_south.name == roof and node_south.param2 == 1)
|
and ((node_south.name == roof and node_south.param2 == 1)
|
||||||
or (node_south.name == corner and node_south.param2 == 1))
|
or (node_south.name == corner and node_south.param2 == 1))
|
||||||
then
|
then
|
||||||
minetest.swap_node(pos, {name=corner, param2=2})
|
minetest.swap_node(pos, {name=corner, param2=2})
|
||||||
end
|
end
|
||||||
|
|
||||||
if ((node_south.name == roof and node_south.param2 == 3)
|
if ((node_south.name == roof and node_south.param2 == 3)
|
||||||
or (node_south.name == corner and node_south.param2 == 0))
|
or (node_south.name == corner and node_south.param2 == 0))
|
||||||
and ((node_west.name == roof and node_west.param2 == 2)
|
and ((node_west.name == roof and node_west.param2 == 2)
|
||||||
or (node_west.name == corner and node_west.param2 == 2))
|
or (node_west.name == corner and node_west.param2 == 2))
|
||||||
then
|
then
|
||||||
minetest.swap_node(pos, {name=corner, param2=3})
|
minetest.swap_node(pos, {name=corner, param2=3})
|
||||||
end
|
end
|
||||||
-- corner 2
|
-- corner 2
|
||||||
if ((node_west.name == roof and node_west.param2 == 2)
|
if ((node_west.name == roof and node_west.param2 == 2)
|
||||||
or (node_west.name == corner_2 and node_west.param2 == 1))
|
or (node_west.name == corner_2 and node_west.param2 == 1))
|
||||||
and ((node_north.name == roof and node_north.param2 == 1)
|
and ((node_north.name == roof and node_north.param2 == 1)
|
||||||
or (node_north.name == corner_2 and node_north.param2 == 3))
|
or (node_north.name == corner_2 and node_north.param2 == 3))
|
||||||
then
|
then
|
||||||
minetest.swap_node(pos, {name=corner_2, param2=0})
|
minetest.swap_node(pos, {name=corner_2, param2=0})
|
||||||
end
|
end
|
||||||
|
|
||||||
if ((node_north.name == roof and node_north.param2 == 3)
|
if ((node_north.name == roof and node_north.param2 == 3)
|
||||||
or (node_north.name == corner_2 and node_north.param2 == 2))
|
or (node_north.name == corner_2 and node_north.param2 == 2))
|
||||||
and ((node_east.name == roof and node_east.param2 == 2)
|
and ((node_east.name == roof and node_east.param2 == 2)
|
||||||
or (node_east.name == corner_2 and node_east.param2 == 0))
|
or (node_east.name == corner_2 and node_east.param2 == 0))
|
||||||
then
|
then
|
||||||
minetest.swap_node(pos, {name=corner_2, param2=1})
|
minetest.swap_node(pos, {name=corner_2, param2=1})
|
||||||
end
|
end
|
||||||
|
|
||||||
if ((node_east.name == roof and node_east.param2 == 0)
|
if ((node_east.name == roof and node_east.param2 == 0)
|
||||||
or (node_east.name == corner_2 and node_east.param2 == 3))
|
or (node_east.name == corner_2 and node_east.param2 == 3))
|
||||||
and ((node_south.name == roof and node_south.param2 == 3)
|
and ((node_south.name == roof and node_south.param2 == 3)
|
||||||
or (node_south.name == corner_2 and node_south.param2 == 1))
|
or (node_south.name == corner_2 and node_south.param2 == 1))
|
||||||
then
|
then
|
||||||
minetest.swap_node(pos, {name=corner_2, param2=2})
|
minetest.swap_node(pos, {name=corner_2, param2=2})
|
||||||
end
|
end
|
||||||
|
|
||||||
if ((node_south.name == roof and node_south.param2 == 1)
|
if ((node_south.name == roof and node_south.param2 == 1)
|
||||||
or (node_south.name == corner_2 and node_south.param2 == 0))
|
or (node_south.name == corner_2 and node_south.param2 == 0))
|
||||||
and ((node_west.name == roof and node_west.param2 == 0)
|
and ((node_west.name == roof and node_west.param2 == 0)
|
||||||
or (node_west.name == corner_2 and node_west.param2 == 2))
|
or (node_west.name == corner_2 and node_west.param2 == 2))
|
||||||
then
|
then
|
||||||
minetest.swap_node(pos, {name=corner_2, param2=3})
|
minetest.swap_node(pos, {name=corner_2, param2=3})
|
||||||
end
|
end
|
||||||
|
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-----------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------
|
||||||
-- Wet Reed Roof Corner 1
|
-- Wet Reed Roof Corner
|
||||||
-----------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------
|
||||||
minetest.register_node("dryplants:wetreed_roof_corner", {
|
minetest.register_node("dryplants:wetreed_roof_corner", {
|
||||||
description = S("Wet Reed Roof Corner 1"),
|
description = S("Wet Reed Roof Corner"),
|
||||||
drawtype = "nodebox",
|
drawtype = "nodebox",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
@ -196,7 +197,6 @@ minetest.register_node("dryplants:wetreed_roof_corner", {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
groups = {snappy=3, flammable=2},
|
groups = {snappy=3, flammable=2},
|
||||||
is_ground_content = false,
|
|
||||||
sounds = default.node_sound_leaves_defaults(),
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -227,35 +227,37 @@ minetest.register_node("dryplants:wetreed_roof_corner_2", {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
groups = {snappy=3, flammable=2},
|
groups = {snappy=3, flammable=2},
|
||||||
is_ground_content = false,
|
|
||||||
sounds = default.node_sound_leaves_defaults(),
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
})
|
})
|
||||||
|
|
||||||
-----------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------
|
||||||
-- Wet Reed becomes (dry) Reed over time
|
-- Wet Reed becomes (dry) Reed over time
|
||||||
-----------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------
|
||||||
local DRyiNG = {
|
if REED_WILL_DRY == true then
|
||||||
|
|
||||||
|
local DRyiNG = {
|
||||||
-- WeT DRy
|
-- WeT DRy
|
||||||
{"dryplants:wetreed", "dryplants:reed"},
|
{"dryplants:wetreed", "dryplants:reed"},
|
||||||
{"dryplants:wetreed_slab", "dryplants:reed_slab"},
|
{"dryplants:wetreed_slab", "dryplants:reed_slab"},
|
||||||
{"dryplants:wetreed_roof", "dryplants:reed_roof"},
|
{"dryplants:wetreed_roof", "dryplants:reed_roof"},
|
||||||
{"dryplants:wetreed_roof_corner", "dryplants:reed_roof_corner"},
|
{"dryplants:wetreed_roof_corner", "dryplants:reed_roof_corner"},
|
||||||
{"dryplants:wetreed_roof_corner_2", "dryplants:reed_roof_corner_2"}
|
{"dryplants:wetreed_roof_corner_2", "dryplants:reed_roof_corner_2"}
|
||||||
}
|
}
|
||||||
for i in pairs(DRyiNG) do
|
for i in pairs(DRyiNG) do
|
||||||
|
|
||||||
local WeT = DRyiNG[i][1]
|
local WeT = DRyiNG[i][1]
|
||||||
local DRy = DRyiNG[i][2]
|
local DRy = DRyiNG[i][2]
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
nodenames = {WeT},
|
nodenames = {WeT},
|
||||||
interval = 3600, --1200, -- 20 minutes: a minetest-day/night-cycle
|
interval = REED_DRYING_TIME, --1200, -- 20 minutes: a minetest-day/night-cycle
|
||||||
chance = 1,
|
chance = 1,
|
||||||
action = function(pos)
|
action = function(pos)
|
||||||
local direction = minetest.get_node(pos).param2
|
local direction = minetest.get_node(pos).param2
|
||||||
minetest.swap_node(pos, {name=DRy, param2=direction})
|
minetest.swap_node(pos, {name=DRy, param2=direction})
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-----------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------
|
||||||
@ -267,7 +269,6 @@ minetest.register_node("dryplants:reed", {
|
|||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
tiles = {"dryplants_reed.png"},
|
tiles = {"dryplants_reed.png"},
|
||||||
groups = {snappy=3, flammable=2},
|
groups = {snappy=3, flammable=2},
|
||||||
is_ground_content = false,
|
|
||||||
sounds = default.node_sound_leaves_defaults(),
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -289,7 +290,6 @@ minetest.register_node("dryplants:reed_slab", {
|
|||||||
fixed = {-1/2, -1/2, -1/2, 1/2, 0, 1/2},
|
fixed = {-1/2, -1/2, -1/2, 1/2, 0, 1/2},
|
||||||
},
|
},
|
||||||
groups = {snappy=3, flammable=2},
|
groups = {snappy=3, flammable=2},
|
||||||
is_ground_content = false,
|
|
||||||
sounds = default.node_sound_leaves_defaults(),
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -318,15 +318,14 @@ minetest.register_node("dryplants:reed_roof", {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
groups = {snappy=3, flammable=2},
|
groups = {snappy=3, flammable=2},
|
||||||
is_ground_content = false,
|
|
||||||
sounds = default.node_sound_leaves_defaults(),
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
})
|
})
|
||||||
|
|
||||||
-----------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------
|
||||||
-- Reed Roof Corner 1
|
-- Reed Roof Corner
|
||||||
-----------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------
|
||||||
minetest.register_node("dryplants:reed_roof_corner", {
|
minetest.register_node("dryplants:reed_roof_corner", {
|
||||||
description = S("Reed Roof Corner 1"),
|
description = S("Reed Roof Corner"),
|
||||||
drawtype = "nodebox",
|
drawtype = "nodebox",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
@ -349,7 +348,6 @@ minetest.register_node("dryplants:reed_roof_corner", {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
groups = {snappy=3, flammable=2},
|
groups = {snappy=3, flammable=2},
|
||||||
is_ground_content = false,
|
|
||||||
sounds = default.node_sound_leaves_defaults(),
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -380,6 +378,5 @@ minetest.register_node("dryplants:reed_roof_corner_2", {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
groups = {snappy=3, flammable=2},
|
groups = {snappy=3, flammable=2},
|
||||||
is_ground_content = false,
|
|
||||||
sounds = default.node_sound_leaves_defaults(),
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
})
|
})
|
||||||
|
@ -1,3 +1,13 @@
|
|||||||
|
-----------------------------------------------------------------------------------------------
|
||||||
|
-- Grasses - Reedmace 0.1.1
|
||||||
|
-----------------------------------------------------------------------------------------------
|
||||||
|
-- by Mossmanikin
|
||||||
|
-- textures & ideas partly by Neuromancer
|
||||||
|
|
||||||
|
-- Contains code from: biome_lib
|
||||||
|
-- Looked at code from: default, trees
|
||||||
|
-----------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
-- NOTES (from wikipedia, some of this might get implemented)
|
-- NOTES (from wikipedia, some of this might get implemented)
|
||||||
-- rhizomes are edible
|
-- rhizomes are edible
|
||||||
-- outer portion of young plants can be peeled and the heart can be eaten raw or boiled and eaten like asparagus
|
-- outer portion of young plants can be peeled and the heart can be eaten raw or boiled and eaten like asparagus
|
||||||
@ -14,16 +24,14 @@ local S = minetest.get_translator("dryplants")
|
|||||||
-- REEDMACE SHAPES
|
-- REEDMACE SHAPES
|
||||||
-----------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
local function grow_reedmace(pos)
|
abstract_dryplants.grow_reedmace = function(pos)
|
||||||
local size = math.random(1,3)
|
local size = math.random(1,3)
|
||||||
local spikes = math.random(1,3)
|
local spikes = math.random(1,3)
|
||||||
local pos_01 = {x = pos.x, y = pos.y + 1, z = pos.z}
|
local pos_01 = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||||
local pos_02 = {x = pos.x, y = pos.y + 2, z = pos.z}
|
local pos_02 = {x = pos.x, y = pos.y + 2, z = pos.z}
|
||||||
local pos_03 = {x = pos.x, y = pos.y + 3, z = pos.z}
|
local pos_03 = {x = pos.x, y = pos.y + 3, z = pos.z}
|
||||||
|
if minetest.get_node(pos_01).name == "air" -- bug fix
|
||||||
local nodename = minetest.get_node(pos_01).name
|
or minetest.get_node(pos_01).name == "dryplants:reedmace_sapling" then
|
||||||
if nodename == "air" -- bug fix
|
|
||||||
or nodename == "dryplants:reedmace_sapling" then
|
|
||||||
if minetest.get_node(pos_02).name ~= "air" then
|
if minetest.get_node(pos_02).name ~= "air" then
|
||||||
minetest.swap_node(pos_01, {name="dryplants:reedmace_top"})
|
minetest.swap_node(pos_01, {name="dryplants:reedmace_top"})
|
||||||
elseif minetest.get_node(pos_03).name ~= "air" then
|
elseif minetest.get_node(pos_03).name ~= "air" then
|
||||||
@ -42,16 +50,14 @@ local function grow_reedmace(pos)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local function grow_reedmace_water(pos)
|
abstract_dryplants.grow_reedmace_water = function(pos)
|
||||||
local size = math.random(1,3)
|
local size = math.random(1,3)
|
||||||
local spikes = math.random(1,3)
|
local spikes = math.random(1,3)
|
||||||
local pos_01 = {x = pos.x, y = pos.y + 1, z = pos.z}
|
local pos_01 = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||||
local pos_02 = {x = pos.x, y = pos.y + 2, z = pos.z}
|
local pos_02 = {x = pos.x, y = pos.y + 2, z = pos.z}
|
||||||
local pos_03 = {x = pos.x, y = pos.y + 3, z = pos.z}
|
local pos_03 = {x = pos.x, y = pos.y + 3, z = pos.z}
|
||||||
local pos_04 = {x = pos.x, y = pos.y + 4, z = pos.z}
|
local pos_04 = {x = pos.x, y = pos.y + 4, z = pos.z}
|
||||||
|
|
||||||
minetest.add_entity(pos_01, "dryplants:reedmace_water_entity")
|
minetest.add_entity(pos_01, "dryplants:reedmace_water_entity")
|
||||||
|
|
||||||
if minetest.get_node(pos_02).name == "air" then -- bug fix
|
if minetest.get_node(pos_02).name == "air" then -- bug fix
|
||||||
if minetest.get_node(pos_03).name ~= "air" then
|
if minetest.get_node(pos_03).name ~= "air" then
|
||||||
minetest.swap_node(pos_02, {name="dryplants:reedmace_top"})
|
minetest.swap_node(pos_02, {name="dryplants:reedmace_top"})
|
||||||
@ -71,8 +77,6 @@ local function grow_reedmace_water(pos)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
abstract_dryplants.grow_reedmace = grow_reedmace -- compatibility
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------
|
||||||
-- REEDMACE SPIKES
|
-- REEDMACE SPIKES
|
||||||
-----------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------
|
||||||
@ -88,7 +92,6 @@ minetest.register_node("dryplants:reedmace_spikes", {
|
|||||||
flammable=2,
|
flammable=2,
|
||||||
not_in_creative_inventory=1
|
not_in_creative_inventory=1
|
||||||
},
|
},
|
||||||
is_ground_content = false,
|
|
||||||
drop = 'dryplants:reedmace_sapling',
|
drop = 'dryplants:reedmace_sapling',
|
||||||
sounds = default.node_sound_leaves_defaults(),
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
selection_box = {
|
selection_box = {
|
||||||
@ -111,7 +114,6 @@ minetest.register_node("dryplants:reedmace_top", {
|
|||||||
flammable=2,
|
flammable=2,
|
||||||
not_in_creative_inventory=1
|
not_in_creative_inventory=1
|
||||||
},
|
},
|
||||||
is_ground_content = false,
|
|
||||||
drop = 'dryplants:reedmace_sapling',
|
drop = 'dryplants:reedmace_sapling',
|
||||||
sounds = default.node_sound_leaves_defaults(),
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
selection_box = {
|
selection_box = {
|
||||||
@ -135,7 +137,6 @@ minetest.register_node("dryplants:reedmace_height_2", {
|
|||||||
flammable=2--,
|
flammable=2--,
|
||||||
--not_in_creative_inventory=1
|
--not_in_creative_inventory=1
|
||||||
},
|
},
|
||||||
is_ground_content = false,
|
|
||||||
drop = 'dryplants:reedmace_sapling',
|
drop = 'dryplants:reedmace_sapling',
|
||||||
sounds = default.node_sound_leaves_defaults(),
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
selection_box = {
|
selection_box = {
|
||||||
@ -159,7 +160,6 @@ minetest.register_node("dryplants:reedmace_height_3", {
|
|||||||
flammable=2--,
|
flammable=2--,
|
||||||
--not_in_creative_inventory=1
|
--not_in_creative_inventory=1
|
||||||
},
|
},
|
||||||
is_ground_content = false,
|
|
||||||
drop = 'dryplants:reedmace_sapling',
|
drop = 'dryplants:reedmace_sapling',
|
||||||
sounds = default.node_sound_leaves_defaults(),
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
selection_box = {
|
selection_box = {
|
||||||
@ -183,7 +183,6 @@ minetest.register_node("dryplants:reedmace_height_3_spikes", {
|
|||||||
flammable=2--,
|
flammable=2--,
|
||||||
--not_in_creative_inventory=1
|
--not_in_creative_inventory=1
|
||||||
},
|
},
|
||||||
is_ground_content = false,
|
|
||||||
drop = 'dryplants:reedmace_sapling',
|
drop = 'dryplants:reedmace_sapling',
|
||||||
sounds = default.node_sound_leaves_defaults(),
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
selection_box = {
|
selection_box = {
|
||||||
@ -206,7 +205,6 @@ minetest.register_node("dryplants:reedmace", {
|
|||||||
flammable=2,
|
flammable=2,
|
||||||
not_in_creative_inventory=1
|
not_in_creative_inventory=1
|
||||||
},
|
},
|
||||||
is_ground_content = false,
|
|
||||||
drop = 'dryplants:reedmace_sapling',
|
drop = 'dryplants:reedmace_sapling',
|
||||||
sounds = default.node_sound_leaves_defaults(),
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
selection_box = {
|
selection_box = {
|
||||||
@ -237,7 +235,6 @@ minetest.register_node("dryplants:reedmace_bottom", {
|
|||||||
flammable=2,
|
flammable=2,
|
||||||
not_in_creative_inventory=1
|
not_in_creative_inventory=1
|
||||||
},
|
},
|
||||||
is_ground_content = false,
|
|
||||||
drop = 'dryplants:reedmace_sapling',
|
drop = 'dryplants:reedmace_sapling',
|
||||||
sounds = default.node_sound_leaves_defaults(),
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
selection_box = {
|
selection_box = {
|
||||||
@ -279,19 +276,19 @@ minetest.register_node("dryplants:reedmace_sapling", {
|
|||||||
-- abm
|
-- abm
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
nodenames = "dryplants:reedmace_sapling",
|
nodenames = "dryplants:reedmace_sapling",
|
||||||
interval = 600,
|
interval = REEDMACE_GROWING_TIME,
|
||||||
chance = 100/5,
|
chance = 100/REEDMACE_GROWING_CHANCE,
|
||||||
action = function(pos, node, _, _)
|
action = function(pos, node, _, _)
|
||||||
if string.find(minetest.get_node({x = pos.x + 1, y = pos.y, z = pos.z }).name, "default:water")
|
if string.find(minetest.get_node({x = pos.x + 1, y = pos.y, z = pos.z }).name, "default:water")
|
||||||
or string.find(minetest.get_node({x = pos.x, y = pos.y, z = pos.z + 1}).name, "default:water")
|
or string.find(minetest.get_node({x = pos.x, y = pos.y, z = pos.z + 1}).name, "default:water")
|
||||||
or string.find(minetest.get_node({x = pos.x - 1, y = pos.y, z = pos.z }).name, "default:water")
|
or string.find(minetest.get_node({x = pos.x - 1, y = pos.y, z = pos.z }).name, "default:water")
|
||||||
or string.find(minetest.get_node({x = pos.x, y = pos.y, z = pos.z - 1}).name, "default:water") then
|
or string.find(minetest.get_node({x = pos.x, y = pos.y, z = pos.z - 1}).name, "default:water") then
|
||||||
if minetest.get_node({x = pos.x, y = pos.y + 1, z = pos.z}).name == "air" then
|
if minetest.get_node({x = pos.x, y = pos.y + 1, z = pos.z}).name == "air" then
|
||||||
grow_reedmace_water({x = pos.x, y = pos.y - 1, z = pos.z})
|
abstract_dryplants.grow_reedmace_water({x = pos.x, y = pos.y - 1, z = pos.z})
|
||||||
end
|
end
|
||||||
minetest.swap_node({x=pos.x, y=pos.y, z=pos.z}, {name="default:water_source"})
|
minetest.swap_node({x=pos.x, y=pos.y, z=pos.z}, {name="default:water_source"})
|
||||||
else
|
else
|
||||||
grow_reedmace({x = pos.x, y = pos.y - 1, z = pos.z})
|
abstract_dryplants.grow_reedmace({x = pos.x, y = pos.y - 1, z = pos.z})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
@ -321,7 +318,7 @@ minetest.register_entity("dryplants:reedmace_water_entity",{
|
|||||||
collisionbox = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3},
|
collisionbox = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3},
|
||||||
on_punch = function(self, puncher)
|
on_punch = function(self, puncher)
|
||||||
if puncher:is_player() and puncher:get_inventory() then
|
if puncher:is_player() and puncher:get_inventory() then
|
||||||
if not minetest.is_creative_enabled(puncher:get_player_name()) then
|
if not minetest.setting_getbool("creative_mode") then
|
||||||
puncher:get_inventory():add_item("main", "dryplants:reedmace_sapling")
|
puncher:get_inventory():add_item("main", "dryplants:reedmace_sapling")
|
||||||
end
|
end
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
@ -329,120 +326,86 @@ minetest.register_entity("dryplants:reedmace_water_entity",{
|
|||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
-----------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------
|
||||||
|
-- SPAWN REEDMACE
|
||||||
|
-----------------------------------------------------------------------------------------------
|
||||||
|
--[[biome_lib.register_active_spawner({
|
||||||
|
spawn_delay = 1200,
|
||||||
|
spawn_plants = {"dryplants:reedmace_sapling"},
|
||||||
|
spawn_chance = 400,
|
||||||
|
spawn_surfaces = {
|
||||||
|
"default:dirt_with_grass",
|
||||||
|
"default:desert_sand",
|
||||||
|
"default:sand",
|
||||||
|
"dryplants:grass_short",
|
||||||
|
"stoneage:grass_with_silex"
|
||||||
|
},
|
||||||
|
seed_diff = 329,
|
||||||
|
near_nodes = {"default:water_source"},
|
||||||
|
near_nodes_size = 2,
|
||||||
|
near_nodes_vertical = 1,
|
||||||
|
near_nodes_count = 1,
|
||||||
|
})]]
|
||||||
|
-----------------------------------------------------------------------------------------------
|
||||||
-- GENERATE REEDMACE
|
-- GENERATE REEDMACE
|
||||||
-----------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------
|
||||||
-- near water or swamp
|
-- near water or swamp
|
||||||
minetest.register_decoration({
|
pl.register_on_generate({
|
||||||
name = "dryplants:reedmace_swamp",
|
surface = {
|
||||||
decoration = {"air"},
|
"default:dirt_with_grass",
|
||||||
fill_ratio = "0.05",
|
"default:desert_sand",
|
||||||
y_min = 1,
|
"stoneage:grass_with_silex",
|
||||||
y_max = 40,
|
"sumpf:peat",
|
||||||
place_on = {
|
"sumpf:sumpf"
|
||||||
"default:dirt_with_grass",
|
},
|
||||||
"default:desert_sand",
|
noise_params = pl.generate_noise_params({max_count = REEDMACE_NEAR_WATER_PER_MAPBLOCK, rarity = 101 - REEDMACE_NEAR_WATER_RARITY}),
|
||||||
"stoneage:grass_with_silex",
|
--rarity = 60,
|
||||||
"sumpf:peat",
|
min_elevation = 1, -- above sea level
|
||||||
"sumpf:sumpf"
|
near_nodes = {"default:water_source","sumpf:dirtywater_source","sumpf:sumpf"},
|
||||||
|
near_nodes_size = 2,
|
||||||
|
near_nodes_vertical = 1,
|
||||||
|
near_nodes_count = 1,
|
||||||
},
|
},
|
||||||
deco_type = "simple",
|
"dryplants:reedmace_near_water",
|
||||||
flags = "all_floors",
|
abstract_dryplants.grow_reedmace
|
||||||
spawn_by = {
|
)
|
||||||
"default:water_source",
|
|
||||||
"sumpf:dirtywater_source",
|
|
||||||
"sumpf:sumpf"
|
|
||||||
},
|
|
||||||
check_offset = -1,
|
|
||||||
num_spawn_by = 1
|
|
||||||
})
|
|
||||||
|
|
||||||
-- in water
|
-- in water
|
||||||
minetest.register_decoration({
|
pl.register_on_generate({
|
||||||
name = "dryplants:reedmace_water",
|
surface = {
|
||||||
decoration = {"air"},
|
"default:dirt",
|
||||||
fill_ratio = "0.01",
|
"default:dirt_with_grass",
|
||||||
y_min = 0,
|
--"default:desert_sand",
|
||||||
y_max = 0,
|
--"stoneage:grass_with_silex",
|
||||||
place_on = {
|
"stoneage:sand_with_silex",
|
||||||
"default:dirt",
|
"sumpf:peat",
|
||||||
"default:dirt_with_grass",
|
"sumpf:sumpf"
|
||||||
"stoneage:sand_with_silex",
|
},
|
||||||
"sumpf:peat",
|
noise_params = pl.generate_noise_params({max_count = REEDMACE_IN_WATER_PER_MAPBLOCK, rarity = 101 - REEDMACE_IN_WATER_RARITY}),
|
||||||
"sumpf:sumpf"
|
--rarity = 35,
|
||||||
|
min_elevation = 0, -- a bit below sea level
|
||||||
|
max_elevation = 0, -- ""
|
||||||
|
near_nodes = {"default:water_source","sumpf:dirtywater_source"},
|
||||||
|
near_nodes_size = 1,
|
||||||
|
near_nodes_count = 1,
|
||||||
},
|
},
|
||||||
deco_type = "simple",
|
"dryplants:reedmace_in_water",
|
||||||
flags = "all_floors",
|
abstract_dryplants.grow_reedmace_water
|
||||||
spawn_by = {
|
)
|
||||||
"default:water_source",
|
|
||||||
"sumpf:dirtywater_source"
|
|
||||||
},
|
|
||||||
check_offset = -1,
|
|
||||||
num_spawn_by = 1
|
|
||||||
})
|
|
||||||
|
|
||||||
-- for oases & tropical beaches & tropical swamps
|
-- for oases & tropical beaches & tropical swamps
|
||||||
minetest.register_decoration({
|
pl.register_on_generate({
|
||||||
name = "dryplants:reedmace_beach",
|
surface = {
|
||||||
decoration = {"air"},
|
"default:sand",
|
||||||
fill_ratio = "0.05",
|
"sumpf:sumpf"
|
||||||
y_min = 1,
|
},
|
||||||
y_max = 40,
|
noise_params = pl.generate_noise_params({max_count = REEDMACE_FOR_OASES_PER_MAPBLOCK, 101 - REEDMACE_FOR_OASES_RARITY}),
|
||||||
place_on = {
|
--rarity = 10,
|
||||||
"default:sand",
|
neighbors = {"default:water_source","sumpf:dirtywater_source","sumpf:sumpf"},
|
||||||
"sumpf:sumpf"
|
ncount = 1,
|
||||||
|
min_elevation = 1, -- above sea level
|
||||||
|
near_nodes = {"default:desert_sand","sumpf:sumpf"},
|
||||||
|
near_nodes_size = 2,
|
||||||
|
near_nodes_vertical = 1,
|
||||||
|
near_nodes_count = 1,
|
||||||
},
|
},
|
||||||
deco_type = "simple",
|
"dryplants:reemace_oases",
|
||||||
flags = "all_floors",
|
abstract_dryplants.grow_reedmace
|
||||||
spawn_by = {
|
)
|
||||||
"default:water_source",
|
|
||||||
"sumpf:dirtywater_source",
|
|
||||||
"sumpf:sumpf",
|
|
||||||
"default:desert_sand"
|
|
||||||
},
|
|
||||||
check_offset = -1,
|
|
||||||
num_spawn_by = 1
|
|
||||||
})
|
|
||||||
|
|
||||||
local did, did2, did3
|
|
||||||
minetest.register_on_mods_loaded(function()
|
|
||||||
did = minetest.get_decoration_id("dryplants:reedmace_swamp")
|
|
||||||
did2 = minetest.get_decoration_id("dryplants:reedmace_water")
|
|
||||||
did3 = minetest.get_decoration_id("dryplants:reedmace_beach")
|
|
||||||
minetest.set_gen_notify("decoration", {did, did2, did3})
|
|
||||||
end)
|
|
||||||
|
|
||||||
minetest.register_on_generated(function(minp, maxp, blockseed)
|
|
||||||
local g = minetest.get_mapgen_object("gennotify")
|
|
||||||
local locations = {}
|
|
||||||
|
|
||||||
local deco_locations_1 = g["decoration#" .. did] or {}
|
|
||||||
local deco_locations_3 = g["decoration#" .. did3] or {}
|
|
||||||
|
|
||||||
for _, pos in pairs(deco_locations_1) do
|
|
||||||
locations[#locations+1] = pos
|
|
||||||
end
|
|
||||||
for _, pos in pairs(deco_locations_3) do
|
|
||||||
locations[#locations+1] = pos
|
|
||||||
end
|
|
||||||
|
|
||||||
if #locations == 0 then return end
|
|
||||||
for _, pos in ipairs(locations) do
|
|
||||||
grow_reedmace(pos)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
minetest.register_on_generated(function(minp, maxp, blockseed)
|
|
||||||
local g = minetest.get_mapgen_object("gennotify")
|
|
||||||
local locations = {}
|
|
||||||
|
|
||||||
local deco_locations_2 = g["decoration#" .. did2] or {}
|
|
||||||
|
|
||||||
for _, pos in pairs(deco_locations_2) do
|
|
||||||
locations[#locations+1] = pos
|
|
||||||
end
|
|
||||||
|
|
||||||
if #locations == 0 then return end
|
|
||||||
for _, pos in ipairs(locations) do
|
|
||||||
grow_reedmace_water(pos)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
52
dryplants/settings.txt
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
-- Here you can enable/disable the different plants
|
||||||
|
REEDMACE_GENERATES = true
|
||||||
|
SMALL_JUNCUS_GENERATES = true
|
||||||
|
EXTRA_TALL_GRASS_GENERATES = true
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- Amount of Reedmace near water or swamp
|
||||||
|
REEDMACE_NEAR_WATER_PER_MAPBLOCK = 35 -- plants per 80x80x80 nodes (absolute maximum number)
|
||||||
|
REEDMACE_NEAR_WATER_RARITY = 40 -- percent
|
||||||
|
|
||||||
|
-- Amount of Reedmace in water
|
||||||
|
REEDMACE_IN_WATER_PER_MAPBLOCK = 35 -- plants per 80x80x80 nodes (absolute maximum number)
|
||||||
|
REEDMACE_IN_WATER_RARITY = 65 -- percent
|
||||||
|
|
||||||
|
-- Amount of Reedmace for oases, tropical beaches and tropical swamps
|
||||||
|
REEDMACE_FOR_OASES_PER_MAPBLOCK = 35 -- plants per 80x80x80 nodes (absolute maximum number)
|
||||||
|
REEDMACE_FOR_OASES_RARITY = 90 -- percent
|
||||||
|
|
||||||
|
-- growing of reedmace sapling
|
||||||
|
REEDMACE_GROWING_TIME = 600 -- seconds
|
||||||
|
REEDMACE_GROWING_CHANCE = 5 -- percent
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- Amount of small Juncus near water or swamp
|
||||||
|
JUNCUS_NEAR_WATER_PER_MAPBLOCK = 70 -- plants per 80x80x80 nodes (absolute maximum number)
|
||||||
|
JUNCUS_NEAR_WATER_RARITY = 75 -- percent
|
||||||
|
|
||||||
|
-- Amount of small Juncus at dunes/beach
|
||||||
|
JUNCUS_AT_BEACH_PER_MAPBLOCK = 70 -- plants per 80x80x80 nodes (absolute maximum number)
|
||||||
|
JUNCUS_AT_BEACH_RARITY = 75 -- percent
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- Tall Grass on dirt with grass
|
||||||
|
TALL_GRASS_PER_MAPBLOCK = 4800 -- plants per 80x80x80 nodes (absolute maximum number)
|
||||||
|
TALL_GRASS_RARITY = 75 -- percent
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- short grass becomes dirt with grass again
|
||||||
|
GRASS_REGROWING_TIME = 1200 -- seconds
|
||||||
|
GRASS_REGROWING_CHANCE = 5 -- percent
|
||||||
|
|
||||||
|
HAY_DRYING_TIME = 3600 -- seconds
|
||||||
|
|
||||||
|
REED_WILL_DRY = false -- wet reed nodes will become dry reed nodes
|
||||||
|
REED_DRYING_TIME = 3600 -- seconds
|
||||||
|
|
||||||
|
AUTO_ROOF_CORNER = true
|
||||||
|
|
BIN
dryplants/textures/not_in_use/big_pic_8.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
dryplants/textures/not_in_use/big_pic_9.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
dryplants/textures/not_in_use/dryplants_cattailsG_m2.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
dryplants/textures/not_in_use/dryplants_juncus_02_left.png
Normal file
After Width: | Height: | Size: 352 B |
BIN
dryplants/textures/not_in_use/dryplants_juncus_02_right.png
Normal file
After Width: | Height: | Size: 393 B |
BIN
dryplants/textures/not_in_use/dryplants_juncus_02_whole2.png
Normal file
After Width: | Height: | Size: 621 B |
BIN
dryplants/textures/not_in_use/dryplants_juncus_03_left.png
Normal file
After Width: | Height: | Size: 414 B |
BIN
dryplants/textures/not_in_use/dryplants_juncus_03_right.png
Normal file
After Width: | Height: | Size: 387 B |
BIN
dryplants/textures/not_in_use/dryplants_juncus_03_whole2.png
Normal file
After Width: | Height: | Size: 665 B |
BIN
dryplants/textures/not_in_use/dryplants_reedmace_01.png
Normal file
After Width: | Height: | Size: 362 B |
BIN
dryplants/textures/not_in_use/dryplants_reedmace_02.png
Normal file
After Width: | Height: | Size: 708 B |
BIN
dryplants/textures/not_in_use/dryplants_reedmace_03.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
dryplants/textures/not_in_use/dryplants_reedmace_04.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
dryplants/textures/not_in_use/dryplants_reedmace_bottom_left.png
Normal file
After Width: | Height: | Size: 122 B |
After Width: | Height: | Size: 189 B |
BIN
dryplants/textures/not_in_use/dryplants_reedmace_left.png
Normal file
After Width: | Height: | Size: 185 B |
BIN
dryplants/textures/not_in_use/dryplants_reedmace_right.png
Normal file
After Width: | Height: | Size: 196 B |
BIN
dryplants/textures/not_in_use/dryplants_reedmace_top_left.png
Normal file
After Width: | Height: | Size: 102 B |
BIN
dryplants/textures/not_in_use/dryplants_reedmace_top_right.png
Normal file
After Width: | Height: | Size: 147 B |
BIN
dryplants/textures/not_in_use/reedmace2.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
dryplants/textures/not_in_use/reedmace3.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
dryplants/textures/not_in_use/reedmace4.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
dryplants/textures/not_in_use/reedtest.png
Normal file
After Width: | Height: | Size: 333 B |
BIN
dryplants/textures/not_in_use/texturing.png
Normal file
After Width: | Height: | Size: 3.0 KiB |
BIN
dryplants/textures/old/dryplants_grass_short_old3.png
Normal file
After Width: | Height: | Size: 823 B |
BIN
dryplants/textures/old/dryplants_grass_short_old4.png
Normal file
After Width: | Height: | Size: 337 B |