Compare commits
33 Commits
01d71b2b29
...
93a46c05a6
Author | SHA1 | Date | |
---|---|---|---|
93a46c05a6 | |||
77c02f1b7a | |||
afc6d7ef12 | |||
130fffbf97 | |||
b604ca39da | |||
a5a4798aed | |||
97f4b11110 | |||
ebbec592bf | |||
19df0b4036 | |||
e6eaea544c | |||
e4a0a9bfe9 | |||
7053e44ea4 | |||
bf7d9d6652 | |||
ea34f9cc99 | |||
1402047c2e | |||
93f7eb44d6 | |||
48718b60f7 | |||
9c335b0029 | |||
e017406a10 | |||
2b5decbc50 | |||
f639917a98 | |||
43fd151357 | |||
f3ad4abff1 | |||
c621448df3 | |||
5949d15726 | |||
1299f39126 | |||
363ec856ee | |||
5384fc7924 | |||
cff3fc378b | |||
a4c4716c36 | |||
797bae9c46 | |||
54b856158c | |||
9bc52e2042 |
@ -30,5 +30,8 @@ Changelog:
|
|||||||
- 0.8 - Added support for farming redo's new garlic, pepper and onion crops
|
- 0.8 - Added support for farming redo's new garlic, pepper and onion crops
|
||||||
- 0.9 - Added support for farming redo's pea and beetroot crops, checks for place_param
|
- 0.9 - Added support for farming redo's pea and beetroot crops, checks for place_param
|
||||||
- 1.0 - add_deco() now adds to existing item list while set_deco() replaces item list (thanks h-v-smacker)
|
- 1.0 - add_deco() now adds to existing item list while set_deco() replaces item list (thanks h-v-smacker)
|
||||||
|
- 1.1 - Added {can_bonemeal=1} group for special nodes
|
||||||
|
- 1.2 - Added support for minetest 5.0 cactus seedling, blueberry bush sapling and emergent jungle tree saplings, additional flowers and pine bush sapling.
|
||||||
|
- 1.3 - Ability to craft dye from mulch, bonemeal and fertiliser (thanks orbea)
|
||||||
|
|
||||||
Lucky Blocks: 6
|
Lucky Blocks: 6
|
||||||
|
@ -5,3 +5,5 @@ ethereal?
|
|||||||
moretrees?
|
moretrees?
|
||||||
technic_worldgen?
|
technic_worldgen?
|
||||||
lucky_block?
|
lucky_block?
|
||||||
|
flowers?
|
||||||
|
dye?
|
||||||
|
196
init.lua
@ -1,14 +1,18 @@
|
|||||||
|
|
||||||
bonemeal = {}
|
bonemeal = {}
|
||||||
|
|
||||||
|
local path = minetest.get_modpath("bonemeal")
|
||||||
|
local min, max, random = math.min, math.max, math.random
|
||||||
|
|
||||||
|
|
||||||
-- Load support for intllib.
|
-- Load support for intllib.
|
||||||
local MP = minetest.get_modpath(minetest.get_current_modname())
|
local S = minetest.get_translator and minetest.get_translator("bonemeal") or
|
||||||
local S, NS = dofile(MP .. "/intllib.lua")
|
dofile(path .. "/intllib.lua")
|
||||||
|
|
||||||
|
|
||||||
-- creative check
|
-- creative check
|
||||||
local creative_mode_cache = minetest.settings:get_bool("creative_mode")
|
local creative_mode_cache = minetest.settings:get_bool("creative_mode")
|
||||||
function is_creative(name)
|
function bonemeal.is_creative(name)
|
||||||
return creative_mode_cache or minetest.check_player_privs(name, {creative = true})
|
return creative_mode_cache or minetest.check_player_privs(name, {creative = true})
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -16,7 +20,7 @@ end
|
|||||||
-- default crops
|
-- default crops
|
||||||
local crops = {
|
local crops = {
|
||||||
{"farming:cotton_", 8, "farming:seed_cotton"},
|
{"farming:cotton_", 8, "farming:seed_cotton"},
|
||||||
{"farming:wheat_", 8, "farming:seed_wheat"},
|
{"farming:wheat_", 8, "farming:seed_wheat"}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -37,11 +41,15 @@ end
|
|||||||
local saplings = {
|
local saplings = {
|
||||||
{"default:sapling", default.grow_new_apple_tree, "soil"},
|
{"default:sapling", default.grow_new_apple_tree, "soil"},
|
||||||
{"default:junglesapling", default.grow_new_jungle_tree, "soil"},
|
{"default:junglesapling", default.grow_new_jungle_tree, "soil"},
|
||||||
|
{"default:emergent_jungle_sapling", default.grow_new_emergent_jungle_tree, "soil"},
|
||||||
{"default:acacia_sapling", default.grow_new_acacia_tree, "soil"},
|
{"default:acacia_sapling", default.grow_new_acacia_tree, "soil"},
|
||||||
{"default:aspen_sapling", default.grow_new_aspen_tree, "soil"},
|
{"default:aspen_sapling", default.grow_new_aspen_tree, "soil"},
|
||||||
{"default:pine_sapling", pine_grow, "soil"},
|
{"default:pine_sapling", pine_grow, "soil"},
|
||||||
{"default:bush_sapling", default.grow_bush, "soil"},
|
{"default:bush_sapling", default.grow_bush, "soil"},
|
||||||
{"default:acacia_bush_sapling", default.grow_acacia_bush, "soil"},
|
{"default:acacia_bush_sapling", default.grow_acacia_bush, "soil"},
|
||||||
|
{"default:large_cactus_seedling", default.grow_large_cactus, "sand"},
|
||||||
|
{"default:blueberry_bush_sapling", default.grow_blueberry_bush, "soil"},
|
||||||
|
{"default:pine_bush_sapling", default.grow_pine_bush, "soil"}
|
||||||
}
|
}
|
||||||
|
|
||||||
-- helper tables ( "" denotes a blank item )
|
-- helper tables ( "" denotes a blank item )
|
||||||
@ -55,18 +63,23 @@ local dry_grass = {
|
|||||||
"default:dry_grass_5", "", ""
|
"default:dry_grass_5", "", ""
|
||||||
}
|
}
|
||||||
|
|
||||||
local flowers = {
|
-- add all in-game flowers except waterlily
|
||||||
"flowers:dandelion_white", "flowers:dandelion_yellow", "flowers:geranium",
|
local flowers = {}
|
||||||
"flowers:rose", "flowers:tulip", "flowers:viola", ""
|
|
||||||
}
|
for node, def in pairs(minetest.registered_nodes) do
|
||||||
|
|
||||||
|
if def.groups.flower and not node:find("waterlily") then
|
||||||
|
flowers[#flowers + 1] = node
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- add additional bakedclay flowers if enabled
|
-- add additional bakedclay flowers if enabled
|
||||||
if minetest.get_modpath("bakedclay") then
|
if minetest.get_modpath("bakedclay") then
|
||||||
flowers[7] = "bakedclay:delphinium"
|
flowers[#flowers + 1] = "bakedclay:delphinium"
|
||||||
flowers[8] = "bakedclay:thistle"
|
flowers[#flowers + 1] = "bakedclay:thistle"
|
||||||
flowers[9] = "bakedclay:lazarus"
|
flowers[#flowers + 1] = "bakedclay:lazarus"
|
||||||
flowers[10] = "bakedclay:mannagrass"
|
flowers[#flowers + 1] = "bakedclay:mannagrass"
|
||||||
flowers[11] = ""
|
flowers[#flowers + 1] = ""
|
||||||
end
|
end
|
||||||
|
|
||||||
-- default biomes deco
|
-- default biomes deco
|
||||||
@ -78,7 +91,9 @@ local deco = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
----- local functions
|
--
|
||||||
|
-- local functions
|
||||||
|
--
|
||||||
|
|
||||||
|
|
||||||
-- particles
|
-- particles
|
||||||
@ -97,7 +112,7 @@ local function particle_effect(pos)
|
|||||||
maxexptime = 1,
|
maxexptime = 1,
|
||||||
minsize = 1,
|
minsize = 1,
|
||||||
maxsize = 3,
|
maxsize = 3,
|
||||||
texture = "bonemeal_particle.png",
|
texture = "bonemeal_particle.png"
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -181,7 +196,7 @@ local function check_crops(pos, nodename, strength)
|
|||||||
-- grow registered crops
|
-- grow registered crops
|
||||||
for n = 1, #crops do
|
for n = 1, #crops do
|
||||||
|
|
||||||
if string.find(nodename, crops[n][1])
|
if nodename:find(crops[n][1])
|
||||||
or nodename == crops[n][3] then
|
or nodename == crops[n][3] then
|
||||||
|
|
||||||
-- separate mod and node name
|
-- separate mod and node name
|
||||||
@ -190,7 +205,7 @@ local function check_crops(pos, nodename, strength)
|
|||||||
|
|
||||||
-- get stage number or set to 0 for seed
|
-- get stage number or set to 0 for seed
|
||||||
stage = tonumber( crop:split("_")[2] ) or 0
|
stage = tonumber( crop:split("_")[2] ) or 0
|
||||||
stage = math.min(stage + strength, crops[n][2])
|
stage = min(stage + strength, crops[n][2])
|
||||||
|
|
||||||
-- check for place_param setting
|
-- check for place_param setting
|
||||||
nod = crops[n][1] .. stage
|
nod = crops[n][1] .. stage
|
||||||
@ -202,11 +217,8 @@ local function check_crops(pos, nodename, strength)
|
|||||||
particle_effect(pos)
|
particle_effect(pos)
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@ -215,13 +227,24 @@ local function check_soil(pos, nodename, strength)
|
|||||||
|
|
||||||
-- set radius according to strength
|
-- set radius according to strength
|
||||||
local side = strength - 1
|
local side = strength - 1
|
||||||
local tall = math.max(strength - 2, 0)
|
local tall = max(strength - 2, 0)
|
||||||
|
local floor
|
||||||
|
local groups = minetest.registered_items[nodename]
|
||||||
|
and minetest.registered_items[nodename].groups or {}
|
||||||
|
|
||||||
|
-- only place decoration on one type of surface
|
||||||
|
if groups.soil then
|
||||||
|
floor = {"group:soil"}
|
||||||
|
elseif groups.sand then
|
||||||
|
floor = {"group:sand"}
|
||||||
|
else
|
||||||
|
floor = {nodename}
|
||||||
|
end
|
||||||
|
|
||||||
-- get area of land with free space above
|
-- get area of land with free space above
|
||||||
local dirt = minetest.find_nodes_in_area_under_air(
|
local dirt = minetest.find_nodes_in_area_under_air(
|
||||||
{x = pos.x - side, y = pos.y - tall, z = pos.z - side},
|
{x = pos.x - side, y = pos.y - tall, z = pos.z - side},
|
||||||
{x = pos.x + side, y = pos.y + tall, z = pos.z + side},
|
{x = pos.x + side, y = pos.y + tall, z = pos.z + side}, floor)
|
||||||
{"group:soil", "group:sand"})
|
|
||||||
|
|
||||||
-- set default grass and decoration
|
-- set default grass and decoration
|
||||||
local grass = green_grass
|
local grass = green_grass
|
||||||
@ -242,21 +265,36 @@ local function check_soil(pos, nodename, strength)
|
|||||||
-- loop through soil
|
-- loop through soil
|
||||||
for _, n in pairs(dirt) do
|
for _, n in pairs(dirt) do
|
||||||
|
|
||||||
|
if random(5) == 5 then
|
||||||
|
if decor and #decor > 0 then
|
||||||
|
-- place random decoration (rare)
|
||||||
|
local dnum = #decor or 1
|
||||||
|
nod = decor[random(dnum)] or ""
|
||||||
|
end
|
||||||
|
else
|
||||||
|
if grass and #grass > 0 then
|
||||||
|
-- place random grass (common)
|
||||||
|
local dgra = #grass or 1
|
||||||
|
nod = #grass > 0 and grass[random(dgra)] or ""
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
pos2 = n
|
pos2 = n
|
||||||
|
|
||||||
pos2.y = pos2.y + 1
|
pos2.y = pos2.y + 1
|
||||||
|
|
||||||
if math.random(1, 5) == 5 then
|
if nod and nod ~= "" then
|
||||||
-- place random decoration (rare)
|
|
||||||
nod = decor[math.random(1, #decor)] or ""
|
-- get crop param2 value
|
||||||
else
|
def = minetest.registered_nodes[nod]
|
||||||
-- place random grass (common)
|
def = def and def.place_param2
|
||||||
nod = #grass > 0 and grass[math.random(1, #grass)] or ""
|
|
||||||
|
-- if param2 not preset then get from existing node
|
||||||
|
if not def then
|
||||||
|
local node = minetest.get_node_or_nil(pos2)
|
||||||
|
def = node and node.param2 or 0
|
||||||
end
|
end
|
||||||
|
|
||||||
if nod and nod ~= "" then
|
|
||||||
def = minetest.registered_nodes[nod]
|
|
||||||
def = def and def.place_param2 or 0
|
|
||||||
minetest.set_node(pos2, {name = nod, param2 = def})
|
minetest.set_node(pos2, {name = nod, param2 = def})
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -275,7 +313,7 @@ end
|
|||||||
function bonemeal:add_sapling(list)
|
function bonemeal:add_sapling(list)
|
||||||
|
|
||||||
for n = 1, #list do
|
for n = 1, #list do
|
||||||
table.insert(saplings, list[n])
|
saplings[#saplings + 1] = list[n]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -286,7 +324,7 @@ end
|
|||||||
function bonemeal:add_crop(list)
|
function bonemeal:add_crop(list)
|
||||||
|
|
||||||
for n = 1, #list do
|
for n = 1, #list do
|
||||||
table.insert(crops, list[n])
|
crops[#crops + 1] = list[n]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -306,11 +344,11 @@ function bonemeal:add_deco(list)
|
|||||||
if list[l][1] == deco[n][1] then
|
if list[l][1] == deco[n][1] then
|
||||||
|
|
||||||
-- adding grass types
|
-- adding grass types
|
||||||
for _,extra in ipairs(list[l][2]) do
|
for _, extra in pairs(list[l][2]) do
|
||||||
|
|
||||||
if extra ~= "" then
|
if extra ~= "" then
|
||||||
|
|
||||||
for __,entry in ipairs(deco[n][2]) do
|
for _, entry in pairs(deco[n][2]) do
|
||||||
|
|
||||||
if extra == entry then
|
if extra == entry then
|
||||||
extra = false
|
extra = false
|
||||||
@ -320,7 +358,7 @@ function bonemeal:add_deco(list)
|
|||||||
end
|
end
|
||||||
|
|
||||||
if extra then
|
if extra then
|
||||||
table.insert(deco[n][2], extra)
|
deco[n][2][#deco[n][2] + 1] = extra
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -329,7 +367,7 @@ function bonemeal:add_deco(list)
|
|||||||
|
|
||||||
if extra ~= "" then
|
if extra ~= "" then
|
||||||
|
|
||||||
for __,entry in ipairs(deco[n][3]) do
|
for __, entry in pairs(deco[n][3]) do
|
||||||
|
|
||||||
if extra == entry then
|
if extra == entry then
|
||||||
extra = false
|
extra = false
|
||||||
@ -339,7 +377,7 @@ function bonemeal:add_deco(list)
|
|||||||
end
|
end
|
||||||
|
|
||||||
if extra then
|
if extra then
|
||||||
table.insert(deco[n][3], extra)
|
deco[n][3][#deco[n][3] + 1] = extra
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -349,7 +387,7 @@ function bonemeal:add_deco(list)
|
|||||||
end
|
end
|
||||||
|
|
||||||
if list[l] then
|
if list[l] then
|
||||||
table.insert(deco, list[l])
|
deco[#deco + 1] = list[l]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -373,7 +411,7 @@ function bonemeal:set_deco(list)
|
|||||||
end
|
end
|
||||||
|
|
||||||
if list[l] then
|
if list[l] then
|
||||||
table.insert(deco, list[l])
|
deco[#deco + 1] = list[l]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -392,27 +430,27 @@ function bonemeal:on_use(pos, strength, node)
|
|||||||
|
|
||||||
-- make sure strength is between 1 and 4
|
-- make sure strength is between 1 and 4
|
||||||
strength = strength or 1
|
strength = strength or 1
|
||||||
strength = math.max(strength, 1)
|
strength = max(strength, 1)
|
||||||
strength = math.min(strength, 4)
|
strength = min(strength, 4)
|
||||||
|
|
||||||
-- papyrus and cactus
|
-- papyrus and cactus
|
||||||
if node.name == "default:papyrus" then
|
if node.name == "default:papyrus" then
|
||||||
|
|
||||||
default.grow_papyrus(pos, node)
|
default.grow_papyrus(pos, node)
|
||||||
particle_effect(pos)
|
particle_effect(pos)
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
elseif node.name == "default:cactus" then
|
elseif node.name == "default:cactus" then
|
||||||
|
|
||||||
default.grow_cactus(pos, node)
|
default.grow_cactus(pos, node)
|
||||||
particle_effect(pos)
|
particle_effect(pos)
|
||||||
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
-- grow grass and flowers
|
-- grow grass and flowers
|
||||||
if minetest.get_item_group(node.name, "soil") > 0
|
if minetest.get_item_group(node.name, "soil") > 0
|
||||||
or minetest.get_item_group(node.name, "sand") > 0 then
|
or minetest.get_item_group(node.name, "sand") > 0
|
||||||
|
or minetest.get_item_group(node.name, "can_bonemeal") > 0 then
|
||||||
check_soil(pos, node.name, strength)
|
check_soil(pos, node.name, strength)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
@ -424,7 +462,7 @@ function bonemeal:on_use(pos, strength, node)
|
|||||||
|
|
||||||
-- check for tree growth if pointing at sapling
|
-- check for tree growth if pointing at sapling
|
||||||
if minetest.get_item_group(node.name, "sapling") > 0
|
if minetest.get_item_group(node.name, "sapling") > 0
|
||||||
and math.random(1, (5 - strength)) == 1 then
|
and random(5 - strength) == 1 then
|
||||||
check_sapling(pos, node.name)
|
check_sapling(pos, node.name)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
@ -434,7 +472,9 @@ function bonemeal:on_use(pos, strength, node)
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
----- items
|
--
|
||||||
|
-- items
|
||||||
|
--
|
||||||
|
|
||||||
|
|
||||||
-- mulch (strength 1)
|
-- mulch (strength 1)
|
||||||
@ -455,7 +495,7 @@ minetest.register_craftitem("bonemeal:mulch", {
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- take item if not in creative
|
-- take item if not in creative
|
||||||
if not is_creative(user:get_player_name()) then
|
if not bonemeal.is_creative(user:get_player_name()) then
|
||||||
itemstack:take_item()
|
itemstack:take_item()
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -463,7 +503,7 @@ minetest.register_craftitem("bonemeal:mulch", {
|
|||||||
bonemeal:on_use(pointed_thing.under, 1)
|
bonemeal:on_use(pointed_thing.under, 1)
|
||||||
|
|
||||||
return itemstack
|
return itemstack
|
||||||
end,
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -485,7 +525,7 @@ minetest.register_craftitem("bonemeal:bonemeal", {
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- take item if not in creative
|
-- take item if not in creative
|
||||||
if not is_creative(user:get_player_name()) then
|
if not bonemeal.is_creative(user:get_player_name()) then
|
||||||
itemstack:take_item()
|
itemstack:take_item()
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -493,7 +533,7 @@ minetest.register_craftitem("bonemeal:bonemeal", {
|
|||||||
bonemeal:on_use(pointed_thing.under, 2)
|
bonemeal:on_use(pointed_thing.under, 2)
|
||||||
|
|
||||||
return itemstack
|
return itemstack
|
||||||
end,
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -515,7 +555,7 @@ minetest.register_craftitem("bonemeal:fertiliser", {
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- take item if not in creative
|
-- take item if not in creative
|
||||||
if not is_creative(user:get_player_name()) then
|
if not bonemeal.is_creative(user:get_player_name()) then
|
||||||
itemstack:take_item()
|
itemstack:take_item()
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -523,7 +563,7 @@ minetest.register_craftitem("bonemeal:fertiliser", {
|
|||||||
bonemeal:on_use(pointed_thing.under, 3)
|
bonemeal:on_use(pointed_thing.under, 3)
|
||||||
|
|
||||||
return itemstack
|
return itemstack
|
||||||
end,
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -531,50 +571,54 @@ minetest.register_craftitem("bonemeal:fertiliser", {
|
|||||||
minetest.register_craftitem("bonemeal:bone", {
|
minetest.register_craftitem("bonemeal:bone", {
|
||||||
description = S("Bone"),
|
description = S("Bone"),
|
||||||
inventory_image = "bonemeal_bone.png",
|
inventory_image = "bonemeal_bone.png",
|
||||||
|
groups = {bone = 1}
|
||||||
})
|
})
|
||||||
|
|
||||||
-- gelatin powder
|
-- gelatin powder
|
||||||
minetest.register_craftitem("bonemeal:gelatin_powder", {
|
minetest.register_craftitem("bonemeal:gelatin_powder", {
|
||||||
description = S("Gelatin Powder"),
|
description = S("Gelatin Powder"),
|
||||||
inventory_image = "bonemeal_gelatin_powder.png",
|
inventory_image = "bonemeal_gelatin_powder.png",
|
||||||
groups = {food_gelatin = 1, flammable = 2},
|
groups = {food_gelatin = 1, flammable = 2}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
--- crafting recipes
|
--
|
||||||
|
-- crafting recipes
|
||||||
|
--
|
||||||
|
|
||||||
|
|
||||||
-- gelatin powder
|
-- gelatin powder
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "bonemeal:gelatin_powder 4",
|
output = "bonemeal:gelatin_powder 4",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"bonemeal:bone", "bonemeal:bone", "bonemeal:bone"},
|
{"group:bone", "group:bone", "group:bone"},
|
||||||
{"bucket:bucket_water", "bucket:bucket_water", "bucket:bucket_water"},
|
{"bucket:bucket_water", "bucket:bucket_water", "bucket:bucket_water"},
|
||||||
{"bucket:bucket_water", "default:torch", "bucket:bucket_water"},
|
{"bucket:bucket_water", "default:torch", "bucket:bucket_water"},
|
||||||
},
|
},
|
||||||
replacements = {
|
replacements = {
|
||||||
{"bucket:bucket_water", "bucket:bucket_empty 5"},
|
{"bucket:bucket_water", "bucket:bucket_empty 5"},
|
||||||
},
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
-- bonemeal (from bone)
|
-- bonemeal (from bone)
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "shapeless",
|
type = "shapeless",
|
||||||
output = "bonemeal:bonemeal 2",
|
output = "bonemeal:bonemeal 2",
|
||||||
recipe = {"bonemeal:bone"},
|
recipe = {"group:bone"}
|
||||||
})
|
})
|
||||||
|
|
||||||
-- bonemeal (from player bones)
|
-- bonemeal (from player bones)
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "shapeless",
|
type = "shapeless",
|
||||||
output = "bonemeal:bonemeal 4",
|
output = "bonemeal:bonemeal 4",
|
||||||
recipe = {"bones:bones"},
|
recipe = {"bones:bones"}
|
||||||
})
|
})
|
||||||
|
|
||||||
-- bonemeal (from coral skeleton)
|
-- bonemeal (from coral skeleton)
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "shapeless",
|
type = "shapeless",
|
||||||
output = "bonemeal:bonemeal 2",
|
output = "bonemeal:bonemeal 2",
|
||||||
recipe = {"default:coral_skeleton"},
|
recipe = {"default:coral_skeleton"}
|
||||||
})
|
})
|
||||||
|
|
||||||
-- mulch
|
-- mulch
|
||||||
@ -585,37 +629,47 @@ minetest.register_craft({
|
|||||||
"group:tree", "group:leaves", "group:leaves",
|
"group:tree", "group:leaves", "group:leaves",
|
||||||
"group:leaves", "group:leaves", "group:leaves",
|
"group:leaves", "group:leaves", "group:leaves",
|
||||||
"group:leaves", "group:leaves", "group:leaves"
|
"group:leaves", "group:leaves", "group:leaves"
|
||||||
},
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "shapeless",
|
||||||
|
output = "bonemeal:mulch",
|
||||||
|
recipe = {
|
||||||
|
"group:seed", "group:seed", "group:seed",
|
||||||
|
"group:seed", "group:seed", "group:seed",
|
||||||
|
"group:seed", "group:seed", "group:seed"
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
-- fertiliser
|
-- fertiliser
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "shapeless",
|
type = "shapeless",
|
||||||
output = "bonemeal:fertiliser 2",
|
output = "bonemeal:fertiliser 2",
|
||||||
recipe = {"bonemeal:bonemeal", "bonemeal:mulch"},
|
recipe = {"bonemeal:bonemeal", "bonemeal:mulch"}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
-- add bones to dirt
|
-- add bones to dirt
|
||||||
minetest.override_item("default:dirt", {
|
local drop = minetest.registered_items["default:dirt"].drop
|
||||||
|
if drop then
|
||||||
|
table.insert(drop.items, 1, {items = {"bonemeal:bone"}, rarity = 30})
|
||||||
|
else
|
||||||
drop = {
|
drop = {
|
||||||
max_items = 1,
|
max_items = 1,
|
||||||
items = {
|
items = {
|
||||||
{
|
{
|
||||||
items = {"bonemeal:bone"},
|
items = {"bonemeal:bone"},
|
||||||
rarity = 30,
|
rarity = 40
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
items = {"default:dirt"},
|
items = {"default:dirt"}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
})
|
end
|
||||||
|
|
||||||
|
|
||||||
-- add support for other mods
|
-- add support for other mods
|
||||||
local path = minetest.get_modpath("bonemeal")
|
|
||||||
|
|
||||||
dofile(path .. "/mods.lua")
|
dofile(path .. "/mods.lua")
|
||||||
dofile(path .. "/lucky_block.lua")
|
dofile(path .. "/lucky_block.lua")
|
||||||
|
|
||||||
|
7
locale/bonemeal.en.tr
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# textdomain:bonemeal
|
||||||
|
#[MOD] bonemeal loaded=
|
||||||
|
#Bone=
|
||||||
|
#Bone Meal=
|
||||||
|
#Fertiliser=
|
||||||
|
#Gelatin Powder=
|
||||||
|
#Mulch=
|
7
locale/bonemeal.es.tr
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# textdomain:bonemeal
|
||||||
|
[MOD] bonemeal loaded=[MOD] bonemeal cargado
|
||||||
|
Bone=Hueso
|
||||||
|
Bone Meal=Comida de hueso
|
||||||
|
Fertiliser=Fertilizante
|
||||||
|
#Gelatin Powder=
|
||||||
|
Mulch=Mantillo
|
7
locale/bonemeal.fr.tr
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# textdomain:bonemeal
|
||||||
|
[MOD] bonemeal loaded=[MOD] bonemeal chargé
|
||||||
|
Bone=Os
|
||||||
|
Bone Meal=Poudre d'os
|
||||||
|
Fertiliser=Engrais
|
||||||
|
Gelatin Powder=Poudre de gélatine
|
||||||
|
Mulch=Paillis
|
7
locale/bonemeal.it.tr
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# textdomain:bonemeal
|
||||||
|
[MOD] bonemeal loaded=[MOD] bonemeal caricata
|
||||||
|
Bone=Ossa
|
||||||
|
Bone Meal=Pasto osseo
|
||||||
|
Fertiliser=Fertilizzante
|
||||||
|
#Gelatin Powder=
|
||||||
|
Mulch=Pacciame
|
7
locale/bonemeal.ru.tr
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# textdomain:bonemeal
|
||||||
|
[MOD] bonemeal loaded=[MOD] костная мука загружена
|
||||||
|
Bone=Кость
|
||||||
|
Bone Meal=Костная Мука
|
||||||
|
Fertiliser=Удобрение
|
||||||
|
#Gelatin Powder=
|
||||||
|
Mulch=Мульча
|
7
locale/es.txt
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# init.lua
|
||||||
|
|
||||||
|
Mulch = Mantillo
|
||||||
|
Bone Meal = Comida de hueso
|
||||||
|
Fertiliser = Fertilizante
|
||||||
|
Bone = Hueso
|
||||||
|
[MOD] bonemeal loaded = [MOD] bonemeal cargado
|
7
locale/it.txt
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# init.lua
|
||||||
|
|
||||||
|
Mulch = Pacciame
|
||||||
|
Bone Meal = Pasto osseo
|
||||||
|
Fertiliser = Fertilizzante
|
||||||
|
Bone = Ossa
|
||||||
|
[MOD] bonemeal loaded = [MOD] bonemeal caricata
|
7
locale/ru.txt
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# init.lua
|
||||||
|
|
||||||
|
Mulch = Мульча
|
||||||
|
Bone Meal = Костная Мука
|
||||||
|
Fertiliser = Удобрение
|
||||||
|
Bone = Кость
|
||||||
|
[MOD] bonemeal loaded = [MOD] костная мука загружена
|
@ -4,4 +4,4 @@ Mulch =
|
|||||||
Bone Meal =
|
Bone Meal =
|
||||||
Fertiliser =
|
Fertiliser =
|
||||||
Bone =
|
Bone =
|
||||||
[bonemeal] loaded =
|
[MOD] bonemeal loaded =
|
||||||
|
50
mods.lua
@ -5,7 +5,7 @@ if minetest.get_modpath("animalmaterials") then
|
|||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "shapeless",
|
type = "shapeless",
|
||||||
output = "bonemeal:bonemeal 2",
|
output = "bonemeal:bonemeal 2",
|
||||||
recipe = {"animalmaterials:bone"},
|
recipe = {"animalmaterials:bone"}
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -36,6 +36,11 @@ if farming and farming.mod and farming.mod == "redo" then
|
|||||||
{"farming:pineapple_", 8},
|
{"farming:pineapple_", 8},
|
||||||
{"farming:pea_", 5},
|
{"farming:pea_", 5},
|
||||||
{"farming:beetroot_", 5},
|
{"farming:beetroot_", 5},
|
||||||
|
{"farming:rye_", 8},
|
||||||
|
{"farming:oat_", 8},
|
||||||
|
{"farming:rice_", 8},
|
||||||
|
{"farming:mint_", 4},
|
||||||
|
{"farming:cabbage_", 6}
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -44,7 +49,7 @@ if minetest.get_modpath("ethereal") then
|
|||||||
|
|
||||||
bonemeal:add_crop({
|
bonemeal:add_crop({
|
||||||
{"ethereal:strawberry_", 8},
|
{"ethereal:strawberry_", 8},
|
||||||
{"ethereal:onion_", 5},
|
{"ethereal:onion_", 5}
|
||||||
})
|
})
|
||||||
|
|
||||||
bonemeal:add_sapling({
|
bonemeal:add_sapling({
|
||||||
@ -60,6 +65,7 @@ if minetest.get_modpath("ethereal") then
|
|||||||
{"ethereal:orange_tree_sapling", ethereal.grow_orange_tree, "soil"},
|
{"ethereal:orange_tree_sapling", ethereal.grow_orange_tree, "soil"},
|
||||||
{"ethereal:bamboo_sprout", ethereal.grow_bamboo_tree, "soil"},
|
{"ethereal:bamboo_sprout", ethereal.grow_bamboo_tree, "soil"},
|
||||||
{"ethereal:birch_sapling", ethereal.grow_birch_tree, "soil"},
|
{"ethereal:birch_sapling", ethereal.grow_birch_tree, "soil"},
|
||||||
|
{"ethereal:sakura_sapling", ethereal.grow_sakura_tree, "soil"}
|
||||||
})
|
})
|
||||||
|
|
||||||
local grass = {"default:grass_3", "default:grass_4", "default:grass_5", ""}
|
local grass = {"default:grass_3", "default:grass_4", "default:grass_5", ""}
|
||||||
@ -75,7 +81,7 @@ if minetest.get_modpath("ethereal") then
|
|||||||
{"ethereal:mushroom_dirt", {}, {"flowers:mushroom_red", "flowers:mushroom_brown", "", "", ""}},
|
{"ethereal:mushroom_dirt", {}, {"flowers:mushroom_red", "flowers:mushroom_brown", "", "", ""}},
|
||||||
{"ethereal:jungle_dirt", grass, {"default:junglegrass", "", "", ""}},
|
{"ethereal:jungle_dirt", grass, {"default:junglegrass", "", "", ""}},
|
||||||
{"ethereal:grove_dirt", grass, {"ethereal:fern", "", "", ""}},
|
{"ethereal:grove_dirt", grass, {"ethereal:fern", "", "", ""}},
|
||||||
{"ethereal:bamboo_dirt", grass, {}},
|
{"ethereal:bamboo_dirt", grass, {}}
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -111,12 +117,46 @@ if minetest.get_modpath("moretrees") then
|
|||||||
{"moretrees:poplar_sapling", moretrees.spawn_poplar_object, "soil"},
|
{"moretrees:poplar_sapling", moretrees.spawn_poplar_object, "soil"},
|
||||||
{"moretrees:willow_sapling", moretrees.spawn_willow_object, "soil"},
|
{"moretrees:willow_sapling", moretrees.spawn_willow_object, "soil"},
|
||||||
{"moretrees:rubber_tree_sapling", moretrees.spawn_rubber_tree_object, "soil"},
|
{"moretrees:rubber_tree_sapling", moretrees.spawn_rubber_tree_object, "soil"},
|
||||||
{"moretrees:fir_sapling", fir_grow, "soil"},
|
{"moretrees:fir_sapling", fir_grow, "soil"}
|
||||||
})
|
})
|
||||||
|
|
||||||
elseif minetest.get_modpath("technic_worldgen") then
|
elseif minetest.get_modpath("technic_worldgen") then
|
||||||
|
|
||||||
bonemeal:add_sapling({
|
bonemeal:add_sapling({
|
||||||
{"moretrees:rubber_tree_sapling", technic.rubber_tree_model, "soil"},
|
{"moretrees:rubber_tree_sapling", technic.rubber_tree_model, "soil"}
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
if minetest.get_modpath("caverealms") then
|
||||||
|
|
||||||
|
local fil = minetest.get_modpath("caverealms") .. "/schematics/shroom.mts"
|
||||||
|
local add_shroom = function(pos)
|
||||||
|
|
||||||
|
minetest.swap_node(pos, {name = "air"})
|
||||||
|
|
||||||
|
minetest.place_schematic(
|
||||||
|
{x = pos.x - 5, y = pos.y, z = pos.z - 5}, fil, 0, nil, false)
|
||||||
|
end
|
||||||
|
|
||||||
|
bonemeal:add_sapling({
|
||||||
|
{"caverealms:mushroom_sapling", add_shroom, "soil"}
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
if minetest.get_modpath("dye") then
|
||||||
|
|
||||||
|
local bonemeal_dyes = {
|
||||||
|
bonemeal = "white", fertiliser = "green", mulch = "brown"}
|
||||||
|
|
||||||
|
for mat, dye in pairs(bonemeal_dyes) do
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "dye:" .. dye .. " 4",
|
||||||
|
recipe = {
|
||||||
|
{"bonemeal:" .. mat}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
BIN
screenshot.png
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 186 B After Width: | Height: | Size: 182 B |
Before Width: | Height: | Size: 186 B After Width: | Height: | Size: 182 B |
Before Width: | Height: | Size: 186 B After Width: | Height: | Size: 182 B |