Compare commits
41 Commits
Author | SHA1 | Date |
---|---|---|
kabou | 4b44b85424 | |
kabou | 53c6b9be1c | |
kabou | 951df68d57 | |
kabou | fd3df57e5f | |
kabou | 48825117bd | |
kabou | d2257f3303 | |
kabou | 9ad70d82c8 | |
kabou | 98fff2c608 | |
kabou | 2a154838f9 | |
kabou | b20d06706c | |
kabou | 521fc1972a | |
kabou | c83076b756 | |
kabou | bcc3a22333 | |
kabou | af1b007b77 | |
kabou | 35049c765e | |
kabou | 7e54c3d5bf | |
kabou | b5a0a792a9 | |
kabou | f6fd0b4c37 | |
kabou | 70a1fdad5a | |
kabou | cb6a9e7e35 | |
kabou | 81ea298011 | |
kabou | df08a113b7 | |
kabou | 8072f2089d | |
kabou | 8131950287 | |
kabou | 195f0dfbaa | |
kabou | 82112e42fe | |
kabou | 8f05b612c9 | |
kabou | c9afccd0c3 | |
kabou | c5dd0b7016 | |
kabou | 7b2c1be538 | |
kabou | 15c4f5bf2a | |
kabou | b0111847b7 | |
kabou | dcbf5cffdd | |
kabou | d90387edc9 | |
kabou | a108d5c11f | |
kabou | 0b792a31b8 | |
kabou | b4ff81f311 | |
kabou | 1fccf729ad | |
kabou | 2cec651783 | |
kabou | 5217c88daa | |
kabou | 5c7350b78f |
|
@ -82,7 +82,7 @@ mobs_mc.items = {
|
||||||
flint_and_steel = "fire:flint_and_steel",
|
flint_and_steel = "fire:flint_and_steel",
|
||||||
water_source = "default:water_source",
|
water_source = "default:water_source",
|
||||||
river_water_source = "default:river_water_source",
|
river_water_source = "default:river_water_source",
|
||||||
black_dye = "dye:black",
|
ink_sac = "mcl_mobitems:ink_sac",
|
||||||
poppy = "flowers:rose",
|
poppy = "flowers:rose",
|
||||||
dandelion = "flowers:dandelion_yellow",
|
dandelion = "flowers:dandelion_yellow",
|
||||||
coal = "default:coal_lump",
|
coal = "default:coal_lump",
|
||||||
|
|
|
@ -40,7 +40,7 @@ mobs:register_mob("mobs_mc:squid", {
|
||||||
run_end = 60,
|
run_end = 60,
|
||||||
},
|
},
|
||||||
drops = {
|
drops = {
|
||||||
{name = mobs_mc.items.black_dye,
|
{name = mobs_mc.items.ink_sac,
|
||||||
chance = 1,
|
chance = 1,
|
||||||
min = 1,
|
min = 1,
|
||||||
max = 3,
|
max = 3,
|
||||||
|
|
|
@ -314,7 +314,7 @@ local professions = {
|
||||||
|
|
||||||
{
|
{
|
||||||
{ E1, { "mesecons:redstone", 1, 4 } },
|
{ E1, { "mesecons:redstone", 1, 4 } },
|
||||||
{ E1, { "mcl_dye:blue", 1, 2 } },
|
{ E1, { "mcl_core:lapis", 1, 2 } },
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
|
@ -57,7 +57,7 @@ mobs_mc.override.items = {
|
||||||
flint_and_steel = "mcl_fire:flint_and_steel",
|
flint_and_steel = "mcl_fire:flint_and_steel",
|
||||||
water_source = "mcl_core:water_source",
|
water_source = "mcl_core:water_source",
|
||||||
river_water_source = "mclx_core:river_water_source",
|
river_water_source = "mclx_core:river_water_source",
|
||||||
black_dye = "mcl_dye:black",
|
ink_sac = "mcl_mobitems:ink_sac",
|
||||||
poppy = "mcl_flowers:poppy",
|
poppy = "mcl_flowers:poppy",
|
||||||
dandelion = "mcl_flowers:dandelion",
|
dandelion = "mcl_flowers:dandelion",
|
||||||
coal = "mcl_core:coal_lump",
|
coal = "mcl_core:coal_lump",
|
||||||
|
|
|
@ -0,0 +1,63 @@
|
||||||
|
|
||||||
|
# Bone meal API
|
||||||
|
Bonemealing callbacks and particle functions.
|
||||||
|
|
||||||
|
|
||||||
|
## _mcl_on_bonemealing(pointed_thing, placer)
|
||||||
|
The bone meal API provides a callback definition that nodes can use to
|
||||||
|
register a handler that is executed when a bone meal item is used on it.
|
||||||
|
|
||||||
|
Nodes that wish to use the bone meal API should in their node registration
|
||||||
|
define a callback handler named `_mcl_on_bonemealing`.
|
||||||
|
|
||||||
|
Note that by registering the callback handler, the node declares that bone
|
||||||
|
meal can be used on it and as a result, when the user is not in creative
|
||||||
|
mode, the used bone meal is spent and taken from the itemstack passed to
|
||||||
|
the `on_place()` handler of the bone meal item used.
|
||||||
|
|
||||||
|
It is for all intents and purposes up to the callback defined in the node to
|
||||||
|
decide how to handle the specific effect that bone meal has on that node.
|
||||||
|
|
||||||
|
The `_mcl_on_bonemealing` callback handler is a
|
||||||
|
|
||||||
|
`function(pointed_thing, placer)`
|
||||||
|
|
||||||
|
Its arguments are:
|
||||||
|
* `pointed_thing`: exact pointing location (see Minetest API), where the
|
||||||
|
bone meal is applied
|
||||||
|
* `placer`: ObjectRef of the player who aplied the bone meal, can be nil!
|
||||||
|
|
||||||
|
The return value of the handler function indicates if the bonemealing had
|
||||||
|
its intended effect. If `true`, 'bone meal particles' are spawned at the
|
||||||
|
position of the bonemealed node.
|
||||||
|
|
||||||
|
The `on_place` code in the bone meal item will spawn bone meal particles and
|
||||||
|
decrease the bone meal itemstack if the handler returned `true` and the
|
||||||
|
`placer` is not in creative mode.
|
||||||
|
|
||||||
|
|
||||||
|
## mcl_bone_meal.add_bone_meal_particle(pos, def)
|
||||||
|
Spawns standard or custom bone meal particles.
|
||||||
|
* `pos`: position, is ignored if you define def.minpos and def.maxpos
|
||||||
|
* `def`: (optional) particle definition; see minetest.add_particlespawner()
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
|
||||||
|
# Legacy API
|
||||||
|
The bone meal API also provides a legacy compatibility function. This
|
||||||
|
function is not meant to be continued and callers should migrate to the
|
||||||
|
newer bonemealing API.
|
||||||
|
|
||||||
|
## mcl_bone_meal.register_on_bone_meal_apply(function(pointed_thing, placer))
|
||||||
|
Called when the bone meal is applied anywhere.
|
||||||
|
* `pointed_thing`: exact pointing location (see Minetest API), where the
|
||||||
|
bone meal is applied
|
||||||
|
* `placer`: ObjectRef of the player who aplied the bone meal, can be nil!
|
||||||
|
This function is deprecated and will be removed at some time in the future.
|
||||||
|
|
||||||
|
## mcl_dye.add_bone_meal_particle(pos, def)
|
||||||
|
## mcl_dye.register_on_bone_meal_apply(function(pointed_thing, user))
|
||||||
|
These shims in mcl_dye that point to corresponding legacy compatibility
|
||||||
|
functions in mcl_bone_meal remain for legacy callers that have not yet been
|
||||||
|
updated to the new API. These shims will be removed at some time in the
|
||||||
|
future.
|
|
@ -0,0 +1,133 @@
|
||||||
|
local S = minetest.get_translator(minetest.get_current_modname())
|
||||||
|
|
||||||
|
local longdesc = S(
|
||||||
|
"Bone meal is a white dye and also useful as a fertilizer to " ..
|
||||||
|
"speed up the growth of many plants."
|
||||||
|
)
|
||||||
|
local usagehelp = S(
|
||||||
|
"Rightclick a sheep to turn its wool white. Rightclick a plant " ..
|
||||||
|
"to speed up its growth. Note that not all plants can be " ..
|
||||||
|
"fertilized like this. When you rightclick a grass block, tall " ..
|
||||||
|
"grass and flowers will grow all over the place."
|
||||||
|
)
|
||||||
|
|
||||||
|
mcl_bone_meal = {}
|
||||||
|
|
||||||
|
-- Bone meal particle api:
|
||||||
|
|
||||||
|
--- Spawns bone meal particles.
|
||||||
|
-- pos: where the particles spawn
|
||||||
|
-- def: particle spawner parameters, see minetest.add_particlespawner() for
|
||||||
|
-- details on these parameters.
|
||||||
|
--
|
||||||
|
function mcl_bone_meal.add_bone_meal_particle(pos, def)
|
||||||
|
if not def then
|
||||||
|
def = {}
|
||||||
|
end
|
||||||
|
minetest.add_particlespawner({
|
||||||
|
amount = def.amount or 10,
|
||||||
|
time = def.time or 0.1,
|
||||||
|
minpos = def.minpos or vector.subtract(pos, 0.5),
|
||||||
|
maxpos = def.maxpos or vector.add(pos, 0.5),
|
||||||
|
minvel = def.minvel or vector.new(-0.01, 0.01, -0.01),
|
||||||
|
maxvel = def.maxvel or vector.new(0.01, 0.01, 0.01),
|
||||||
|
minacc = def.minacc or vector.new(0, 0, 0),
|
||||||
|
maxacc = def.maxacc or vector.new(0, 0, 0),
|
||||||
|
minexptime = def.minexptime or 1,
|
||||||
|
maxexptime = def.maxexptime or 4,
|
||||||
|
minsize = def.minsize or 0.7,
|
||||||
|
maxsize = def.maxsize or 2.4,
|
||||||
|
texture = "mcl_particles_bonemeal.png^[colorize:#00EE00:125", -- TODO: real MC color
|
||||||
|
glow = def.glow or 1,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Begin legacy bone meal API.
|
||||||
|
--
|
||||||
|
-- Compatibility code for legacy users of the old bone meal API.
|
||||||
|
-- This code will be removed at some time in the future.
|
||||||
|
--
|
||||||
|
mcl_bone_meal.bone_meal_callbacks = {}
|
||||||
|
|
||||||
|
-- Shims for the old API are still available in mcl_dye and defer to
|
||||||
|
-- the real functions in mcl_bone_meal.
|
||||||
|
--
|
||||||
|
function mcl_bone_meal.register_on_bone_meal_apply(func)
|
||||||
|
minetest.log("warning", "register_on_bone_meal_apply(func) is deprecated. Read mcl_bone_meal/API.md!")
|
||||||
|
table.insert(mcl_bone_meal.bone_meal_callbacks, func)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Legacy registered users of the old API are handled through this function.
|
||||||
|
--
|
||||||
|
local function apply_bone_meal(pointed_thing, placer)
|
||||||
|
for _, func in pairs(mcl_bone_meal.bone_meal_callbacks) do
|
||||||
|
if func(pointed_thing, placer) then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
-- End legacy bone meal API
|
||||||
|
|
||||||
|
minetest.register_craftitem("mcl_bone_meal:bone_meal", {
|
||||||
|
description = S("Bone Meal"),
|
||||||
|
_tt_help = S("Speeds up plant growth"),
|
||||||
|
_doc_items_longdesc = longdesc,
|
||||||
|
_doc_items_usagehelp = usagehelp,
|
||||||
|
inventory_image = "mcl_bone_meal.png",
|
||||||
|
groups = {craftitem=1},
|
||||||
|
on_place = function(itemstack, placer, pointed_thing)
|
||||||
|
local pos = pointed_thing.under
|
||||||
|
local node = minetest.get_node(pos)
|
||||||
|
local ndef = minetest.registered_nodes[node.name]
|
||||||
|
-- Use pointed node's on_rightclick function first, if present.
|
||||||
|
if placer and not placer:get_player_control().sneak then
|
||||||
|
if ndef and ndef.on_rightclick then
|
||||||
|
return ndef.on_rightclick(pos, node, placer, itemstack, pointed_thing) or itemstack
|
||||||
|
end
|
||||||
|
end
|
||||||
|
-- If the pointed node can be bonemealed, let it handle the processing.
|
||||||
|
if ndef and ndef._mcl_on_bonemealing then
|
||||||
|
if ndef._mcl_on_bonemealing(pointed_thing, placer) then
|
||||||
|
mcl_bone_meal.add_bone_meal_particle(pos)
|
||||||
|
end
|
||||||
|
if not minetest.is_creative_enabled(placer:get_player_name()) then
|
||||||
|
itemstack:take_item()
|
||||||
|
end
|
||||||
|
-- Otherwise try the legacy API.
|
||||||
|
elseif apply_bone_meal(pointed_thing, placer) and
|
||||||
|
not minetest.is_creative_enabled(placer:get_player_name()) then
|
||||||
|
itemstack:take_item()
|
||||||
|
end
|
||||||
|
return itemstack
|
||||||
|
end,
|
||||||
|
_on_dispense = function(itemstack, pos, droppos, dropnode, dropdir)
|
||||||
|
local pointed_thing
|
||||||
|
if dropnode.name == "air" then
|
||||||
|
pointed_thing = {above = droppos, under = vector.offset(droppos, 0, -1 ,0)}
|
||||||
|
else
|
||||||
|
pointed_thing = {above = pos, under = droppos}
|
||||||
|
end
|
||||||
|
local node = minetest.get_node(pointed_thing.under)
|
||||||
|
local ndef = minetest.registered_nodes[node.name]
|
||||||
|
-- If the pointed node can be bonemealed, let it handle the processing.
|
||||||
|
if ndef and ndef._mcl_on_bonemealing then
|
||||||
|
if ndef._mcl_on_bonemealing(pointed_thing, nil) then
|
||||||
|
mcl_bone_meal.add_bone_meal_particle(pos)
|
||||||
|
end
|
||||||
|
itemstack:take_item()
|
||||||
|
else
|
||||||
|
-- Otherwise try the legacy API.
|
||||||
|
if apply_bone_meal(pointed_thing, nil) then
|
||||||
|
itemstack:take_item()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return itemstack
|
||||||
|
end,
|
||||||
|
_dispense_into_walkable = true
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "mcl_bone_meal:bone_meal 3",
|
||||||
|
recipe = {{"mcl_mobitems:bone"}},
|
||||||
|
})
|
|
@ -0,0 +1,5 @@
|
||||||
|
# textdomain: mcl_bone_meal
|
||||||
|
Bone Meal=Knochenmehl
|
||||||
|
Bone meal is a white dye and also useful as a fertilizer to speed up the growth of many plants.=Knochenmehl ist ein weißer Farbstoff und auch nützlich als Dünger, um das Wachstum vieler Pflanzen zu beschleunigen.
|
||||||
|
Rightclick a sheep to turn its wool white. Rightclick a plant to speed up its growth. Note that not all plants can be fertilized like this. When you rightclick a grass block, tall grass and flowers will grow all over the place.=Rechtsklicken Sie auf ein Schaf, um die Wolle weiß einzufärben. Rechtsklicken Sie auf eine Pflanze, um ihr Wachstum zu beschleunigen. Beachten Sie, dass nicht alle Pflanzen darauf ansprechen. Benutzen Sie es auf einem Grasblock, wächst viel hohes Gras und vielleicht auch ein paar Blumen.
|
||||||
|
Speeds up plant growth=Beschleunigt Pflanzenwachstum
|
|
@ -0,0 +1,5 @@
|
||||||
|
# textdomain: mcl_bone_meal
|
||||||
|
Bone Meal=Harina de hueso
|
||||||
|
Bone meal is a white dye and also useful as a fertilizer to speed up the growth of many plants.=La harina de hueso es un tinte blanco y también es útil como fertilizante para acelerar el crecimiento de muchas plantas.
|
||||||
|
Rightclick a sheep to turn its wool white. Rightclick a plant to speed up its growth. Note that not all plants can be fertilized like this. When you rightclick a grass block, tall grass and flowers will grow all over the place.=RHaga clic derecho en una oveja para volver su lana blanca. Haga clic derecho en una planta para acelerar su crecimiento. Tenga en cuenta que no todas las plantas pueden ser fertilizadas de esta manera. Cuando haces clic derecho en un bloque de hierba, crecerán hierba alta y flores por todo el lugar.
|
||||||
|
Speeds up plant growth=Acelera el crecimiento de las plantas
|
|
@ -0,0 +1,6 @@
|
||||||
|
# textdomain: mcl_bone_meal
|
||||||
|
Bone Meal=Farine d'Os
|
||||||
|
Bone meal is a white dye and also useful as a fertilizer to speed up the growth of many plants.=La farine d'os est une teinture blanche et est également utile comme engrais pour accélérer la croissance de nombreuses plantes.
|
||||||
|
Rightclick a sheep to turn its wool white. Rightclick a plant to speed up its growth. Note that not all plants can be fertilized like this. When you rightclick a grass block, tall grass and flowers will grow all over the place.=
|
||||||
|
Cliquez avec le bouton droit sur un mouton pour blanchir sa laine. Cliquez avec le bouton droit sur une plante pour accélérer sa croissance. Cependant, toutes les plantes ne peuvent pas être fertilisées de cette manière. Lorsque vous cliquez avec le bouton droit sur un bloc d'herbe, les hautes herbes et les fleurs poussent autour.
|
||||||
|
Speeds up plant growth=Accélère la croissance des plantes
|
|
@ -0,0 +1,5 @@
|
||||||
|
# textdomain: mcl_bone_meal
|
||||||
|
Bone Meal=Mączka kostna
|
||||||
|
Bone meal is a white dye and also useful as a fertilizer to speed up the growth of many plants.=Mączka kostna to biała farba i przydatny nawóz, który przyspiesza rośnięcie wielu roślin.
|
||||||
|
Rightclick a sheep to turn its wool white. Rightclick a plant to speed up its growth. Note that not all plants can be fertilized like this. When you rightclick a grass block, tall grass and flowers will grow all over the place.=Kliknij prawym na owcę, aby wybielić jej wełnę. Kliknij prawym na roślinę aby przyspieszyć jej wzrost. Zważ, że nie na wszystkie rośliny to tak działa. Gdy klikniesz prawym na blok trawy, wysoka trawa wyrośnie wokół.
|
||||||
|
Speeds up plant growth=Przyspiesza wzrost roślin
|
|
@ -0,0 +1,5 @@
|
||||||
|
# textdomain: mcl_bone_meal
|
||||||
|
Bone Meal=Костная мука
|
||||||
|
Bone meal is a white dye and also useful as a fertilizer to speed up the growth of many plants.=Костная мука является белым красителем. Она также полезна в качестве удобрения, чтобы увеличить скорость роста многих растений.
|
||||||
|
Rightclick a sheep to turn its wool white. Rightclick a plant to speed up its growth. Note that not all plants can be fertilized like this. When you rightclick a grass block, tall grass and flowers will grow all over the place.=Кликните правой по овце, чтобы сделать её шерсть белой. Кликните правой по растению, чтобы ускорить его рост. Имейте в виду, что не все растения можно удобрять таким способом. Если вы кликнете по травяному блоку, то на этом месте вырастет высокая трава и цветы.
|
||||||
|
Speeds up plant growth=Ускоряет рост растений
|
|
@ -0,0 +1,5 @@
|
||||||
|
# textdomain: mcl_bone_meal
|
||||||
|
Bone Meal=骨粉
|
||||||
|
Bone meal is a white dye and also useful as a fertilizer to speed up the growth of many plants.=骨粉是一種白色染料,也可作為肥料,加速許多植物的生長。
|
||||||
|
Rightclick a sheep to turn its wool white. Rightclick a plant to speed up its growth. Note that not all plants can be fertilized like this. When you rightclick a grass block, tall grass and flowers will grow all over the place.=右鍵點擊一隻羊,使其羊毛變白。右鍵點擊一株植物以加快其生長速度。注意,不是所有的植物都能像這樣施肥。當你右鍵點擊一個草方時,高高的草和花會到處生長。
|
||||||
|
Speeds up plant growth=加速植物生長
|
|
@ -0,0 +1,5 @@
|
||||||
|
# textdomain: mcl_bone_meal
|
||||||
|
Bone Meal=
|
||||||
|
Bone meal is a white dye and also useful as a fertilizer to speed up the growth of many plants.=
|
||||||
|
Rightclick a sheep to turn its wool white. Rightclick a plant to speed up its growth. Note that not all plants can be fertilized like this. When you rightclick a grass block, tall grass and flowers will grow all over the place.=
|
||||||
|
Speeds up plant growth=
|
|
@ -0,0 +1,3 @@
|
||||||
|
name = mcl_bone_meal
|
||||||
|
description = Bone meal can be used as a fertilizer and as a dye.
|
||||||
|
author = kabou
|
After Width: | Height: | Size: 165 B |
|
@ -187,11 +187,11 @@ minetest.register_on_player_receive_fields(function ( player, formname, fields )
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
if minetest.get_modpath("mcl_dye") and minetest.get_modpath("mcl_mobitems") then
|
if minetest.get_modpath("mcl_mobitems") then
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "shapeless",
|
type = "shapeless",
|
||||||
output = "mcl_books:writable_book",
|
output = "mcl_books:writable_book",
|
||||||
recipe = { "mcl_books:book", "mcl_dye:black", "mcl_mobitems:feather" },
|
recipe = { "mcl_books:book", "mcl_mobitems:ink_sac", "mcl_mobitems:feather" },
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -2,29 +2,33 @@ local S = minetest.get_translator(minetest.get_current_modname())
|
||||||
|
|
||||||
mcl_cocoas = {}
|
mcl_cocoas = {}
|
||||||
|
|
||||||
-- Place cocoa
|
--- Place a cocoa pod.
|
||||||
|
-- Attempt to place a cocoa pod on a jungle tree. Checks if attachment
|
||||||
|
-- point is a jungle tree and sets the correct orientation of the stem.
|
||||||
|
--
|
||||||
function mcl_cocoas.place(itemstack, placer, pt, plantname)
|
function mcl_cocoas.place(itemstack, placer, pt, plantname)
|
||||||
-- check if pointing at a node
|
-- check if pointing at a node
|
||||||
if not pt or pt.type ~= "node" then
|
if not pt or pt.type ~= "node" then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local under = minetest.get_node(pt.under)
|
local node = minetest.get_node(pt.under)
|
||||||
|
|
||||||
-- return if any of the nodes are not registered
|
-- return if any of the nodes are not registered
|
||||||
if not minetest.registered_nodes[under.name] then
|
local def = minetest.registered_nodes[node.name]
|
||||||
|
if not def then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Am I right-clicking on something that has a custom on_rightclick set?
|
-- Am I right-clicking on something that has a custom on_rightclick set?
|
||||||
if placer and not placer:get_player_control().sneak then
|
if placer and not placer:get_player_control().sneak then
|
||||||
if minetest.registered_nodes[under.name] and minetest.registered_nodes[under.name].on_rightclick then
|
if def and def.on_rightclick then
|
||||||
return minetest.registered_nodes[under.name].on_rightclick(pt.under, under, placer, itemstack) or itemstack
|
return def.on_rightclick(pt.under, node, placer, itemstack) or itemstack
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Check if pointing at jungle tree
|
-- Check if pointing at jungle tree
|
||||||
if under.name ~= "mcl_core:jungletree"
|
if node.name ~= "mcl_core:jungletree"
|
||||||
or minetest.get_node(pt.above).name ~= "air" then
|
or minetest.get_node(pt.above).name ~= "air" then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
@ -39,9 +43,7 @@ function mcl_cocoas.place(itemstack, placer, pt, plantname)
|
||||||
|
|
||||||
-- Add the node, set facedir and remove 1 item from the itemstack
|
-- Add the node, set facedir and remove 1 item from the itemstack
|
||||||
minetest.set_node(pt.above, {name = plantname, param2 = minetest.dir_to_facedir(clickdir)})
|
minetest.set_node(pt.above, {name = plantname, param2 = minetest.dir_to_facedir(clickdir)})
|
||||||
|
|
||||||
minetest.sound_play("default_place_node", {pos = pt.above, gain = 1.0}, true)
|
minetest.sound_play("default_place_node", {pos = pt.above, gain = 1.0}, true)
|
||||||
|
|
||||||
if not minetest.is_creative_enabled(placer:get_player_name()) then
|
if not minetest.is_creative_enabled(placer:get_player_name()) then
|
||||||
itemstack:take_item()
|
itemstack:take_item()
|
||||||
end
|
end
|
||||||
|
@ -49,137 +51,139 @@ function mcl_cocoas.place(itemstack, placer, pt, plantname)
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Attempts to grow a cocoa at pos, returns true when grown, returns false if there's no cocoa
|
--- Grows cocoa pod one size larger.
|
||||||
-- or it is already at full size
|
-- Attempts to grow a cocoa at pos, returns true when grown, returns false
|
||||||
|
-- if there's no cocoa or it is already at full size.
|
||||||
|
--
|
||||||
function mcl_cocoas.grow(pos)
|
function mcl_cocoas.grow(pos)
|
||||||
local node = minetest.get_node(pos)
|
local node = minetest.get_node(pos)
|
||||||
if node.name == "mcl_cocoas:cocoa_1" then
|
if node.name == "mcl_cocoas:cocoa_1" then
|
||||||
minetest.set_node(pos, {name = "mcl_cocoas:cocoa_2", param2 = node.param2})
|
minetest.set_node(pos, {name = "mcl_cocoas:cocoa_2", param2 = node.param2})
|
||||||
elseif node.name == "mcl_cocoas:cocoa_2" then
|
elseif node.name == "mcl_cocoas:cocoa_2" then
|
||||||
minetest.set_node(pos, {name = "mcl_cocoas:cocoa_3", param2 = node.param2})
|
minetest.set_node(pos, {name = "mcl_cocoas:cocoa_3", param2 = node.param2})
|
||||||
return true
|
else
|
||||||
end
|
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
-- Note: cocoa beans are implemented as mcl_dye:brown
|
-- only caller was mcl_dye, now these can be local functions.
|
||||||
|
-- TODO: remove aliases, replace global functions with local functions.
|
||||||
-- Cocoa definition
|
local cocoa_place = mcl_cocoas.place
|
||||||
-- 1st stage
|
local cocoa_grow = mcl_cocoas.grow
|
||||||
|
|
||||||
|
-- Cocoa pod variant definitions.
|
||||||
--[[ TODO: Use a mesh for cocoas for perfect texture compability. ]]
|
--[[ TODO: Use a mesh for cocoas for perfect texture compability. ]]
|
||||||
local crop_def = {
|
local podinfo = {
|
||||||
description = S("Premature Cocoa Pod"),
|
{ desc = S("Premature Cocoa Pod"),
|
||||||
_doc_items_create_entry = true,
|
longdesc = S("Cocoa pods grow on the side of jungle trees in 3 stages."),
|
||||||
_doc_items_longdesc = S("Cocoa pods grow on the side of jungle trees in 3 stages."),
|
|
||||||
drawtype = "nodebox",
|
|
||||||
tiles = {
|
tiles = {
|
||||||
"[combine:16x16:6,1=mcl_cocoas_cocoa_stage_0.png", "[combine:16x16:6,11=mcl_cocoas_cocoa_stage_0.png",
|
"[combine:16x16:6,1=mcl_cocoas_cocoa_stage_0.png",
|
||||||
"mcl_cocoas_cocoa_stage_0.png", "mcl_cocoas_cocoa_stage_0.png^[transformFX",
|
"[combine:16x16:6,11=mcl_cocoas_cocoa_stage_0.png",
|
||||||
"[combine:16x16:-5,0=mcl_cocoas_cocoa_stage_0.png", "[combine:16x16:-5,0=mcl_cocoas_cocoa_stage_0.png",
|
"mcl_cocoas_cocoa_stage_0.png",
|
||||||
|
"mcl_cocoas_cocoa_stage_0.png^[transformFX",
|
||||||
|
"[combine:16x16:-5,0=mcl_cocoas_cocoa_stage_0.png",
|
||||||
|
"[combine:16x16:-5,0=mcl_cocoas_cocoa_stage_0.png",
|
||||||
},
|
},
|
||||||
use_texture_alpha = minetest.features.use_texture_alpha_string_modes and "clip" or true,
|
n_box = {-0.125, -0.0625, 0.1875, 0.125, 0.25, 0.4375},
|
||||||
|
s_box = {-0.125, -0.0625, 0.1875, 0.125, 0.5, 0.5 },
|
||||||
|
},
|
||||||
|
{ desc = S("Medium Cocoa Pod"),
|
||||||
|
tiles = {
|
||||||
|
"[combine:16x16:5,1=mcl_cocoas_cocoa_stage_1.png",
|
||||||
|
"[combine:16x16:5,9=mcl_cocoas_cocoa_stage_1.png",
|
||||||
|
"mcl_cocoas_cocoa_stage_1.png",
|
||||||
|
"mcl_cocoas_cocoa_stage_1.png^[transformFX",
|
||||||
|
"[combine:16x16:-4,0=mcl_cocoas_cocoa_stage_1.png",
|
||||||
|
"[combine:16x16:-4,0=mcl_cocoas_cocoa_stage_1.png",
|
||||||
|
},
|
||||||
|
n_box = {-0.1875, -0.1875, 0.0625, 0.1875, 0.25, 0.4375},
|
||||||
|
s_box = {-0.1875, -0.1875, 0.0625, 0.1875, 0.5, 0.5 },
|
||||||
|
},
|
||||||
|
{ desc = S("Mature Cocoa Pod"),
|
||||||
|
longdesc = S("A mature cocoa pod grew on a jungle tree to its full size and it is ready to be harvested for cocoa beans. It won't grow any further."),
|
||||||
|
tiles = {
|
||||||
|
-- The following 2 textures were derived from the original
|
||||||
|
-- because the size of the top/bottom is slightly different :-(
|
||||||
|
-- TODO: Find a way to *only* use the base texture
|
||||||
|
"mcl_cocoas_cocoa_top_stage_2.png",
|
||||||
|
"mcl_cocoas_cocoa_top_stage_2.png^[transformFY",
|
||||||
|
"mcl_cocoas_cocoa_stage_2.png",
|
||||||
|
"mcl_cocoas_cocoa_stage_2.png^[transformFX",
|
||||||
|
"[combine:16x16:-3,0=mcl_cocoas_cocoa_stage_2.png",
|
||||||
|
"[combine:16x16:-3,0=mcl_cocoas_cocoa_stage_2.png",
|
||||||
|
},
|
||||||
|
n_box = {-0.25, -0.3125, -0.0625, 0.25, 0.25, 0.4375},
|
||||||
|
s_box = {-0.25, -0.3125, -0.0625, 0.25, 0.5, 0.5 },
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for i = 1, 3 do
|
||||||
|
local def = {
|
||||||
|
description = podinfo[i].desc,
|
||||||
|
_doc_items_create_entry = true,
|
||||||
|
_doc_items_longdesc = podinfo[i].longdesc,
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
sunlight_propagates = true,
|
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
walkable = true,
|
drawtype = "nodebox",
|
||||||
drop = "mcl_dye:brown",
|
tiles = podinfo[i].tiles,
|
||||||
|
use_texture_alpha = "clip",
|
||||||
node_box = {
|
node_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {
|
fixed = {
|
||||||
{-0.125, -0.0625, 0.1875, 0.125, 0.25, 0.4375}, -- Pod
|
podinfo[i].n_box, -- Pod
|
||||||
-- FIXME: This has a thickness of 0. Is this OK in Minetest?
|
-- FIXME: This has a thickness of 0. Is this OK in Minetest?
|
||||||
{0, 0.25, 0.25, 0, 0.5, 0.5}, -- Stem
|
{ 0, 0.25, 0.25, 0, 0.5, 0.5 }, }, -- Stem
|
||||||
},
|
|
||||||
},
|
},
|
||||||
collision_box = {
|
collision_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {
|
fixed = podinfo[i].n_box
|
||||||
{-0.125, -0.0625, 0.1875, 0.125, 0.25, 0.4375}, -- Pod
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
selection_box = {
|
selection_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {
|
fixed = podinfo[i].s_box
|
||||||
{-0.125, -0.0625, 0.1875, 0.125, 0.5, 0.5}, -- Pod
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
groups = {
|
groups = {
|
||||||
handy=1,axey=1, cocoa=1, not_in_creative_inventory=1, dig_by_water=1, destroy_by_lava_flow=1, dig_by_piston=1, attached_node_facedir=1,
|
handy = 1, axey = 1, attached_node_facedir = 1,
|
||||||
|
dig_by_water = 1, destroy_by_lava_flow = 1, dig_by_piston = 1,
|
||||||
|
cocoa = i, not_in_creative_inventory = 1,
|
||||||
},
|
},
|
||||||
|
sunlight_propagates = true,
|
||||||
|
walkable = true,
|
||||||
|
drop = "mcl_cocoas:cocoa_beans",
|
||||||
sounds = mcl_sounds.node_sound_wood_defaults(),
|
sounds = mcl_sounds.node_sound_wood_defaults(),
|
||||||
on_rotate = false,
|
on_rotate = false,
|
||||||
_mcl_blast_resistance = 3,
|
_mcl_blast_resistance = 3,
|
||||||
_mcl_hardness = 0.2,
|
_mcl_hardness = 0.2,
|
||||||
|
_mcl_on_bonemealing = function(pointed_thing, placer)
|
||||||
|
local pos = pointed_thing.under
|
||||||
|
return cocoa_grow(pos)
|
||||||
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
-- 2nd stage
|
if i == 2 then
|
||||||
minetest.register_node("mcl_cocoas:cocoa_1", table.copy(crop_def))
|
def._doc_items_longdesc = nil
|
||||||
|
def._doc_items_create_entry = false
|
||||||
|
end
|
||||||
|
if i == 3 then
|
||||||
|
def.drop = "mcl_cocoas:cocoa_beans 3"
|
||||||
|
def._mcl_on_bonemealing = nil
|
||||||
|
end
|
||||||
|
|
||||||
crop_def.description = S("Medium Cocoa Pod")
|
minetest.register_node("mcl_cocoas:cocoa_" .. i, table.copy(def))
|
||||||
crop_def._doc_items_create_entry = false
|
end
|
||||||
crop_def.groups.cocoa = 2
|
|
||||||
crop_def.tiles = {
|
|
||||||
"[combine:16x16:5,1=mcl_cocoas_cocoa_stage_1.png", "[combine:16x16:5,9=mcl_cocoas_cocoa_stage_1.png",
|
|
||||||
"mcl_cocoas_cocoa_stage_1.png", "mcl_cocoas_cocoa_stage_1.png^[transformFX",
|
|
||||||
"[combine:16x16:-4,0=mcl_cocoas_cocoa_stage_1.png", "[combine:16x16:-4,0=mcl_cocoas_cocoa_stage_1.png",
|
|
||||||
}
|
|
||||||
crop_def.node_box = {
|
|
||||||
type = "fixed",
|
|
||||||
fixed = {
|
|
||||||
{-0.1875, -0.1875, 0.0625, 0.1875, 0.25, 0.4375}, -- Pod
|
|
||||||
{0, 0.25, 0.25, 0, 0.5, 0.5}, -- Stem
|
|
||||||
},
|
|
||||||
}
|
|
||||||
crop_def.collision_box = {
|
|
||||||
type = "fixed",
|
|
||||||
fixed = {
|
|
||||||
{-0.1875, -0.1875, 0.0625, 0.1875, 0.25, 0.4375}, -- Pod
|
|
||||||
},
|
|
||||||
}
|
|
||||||
crop_def.selection_box = {
|
|
||||||
type = "fixed",
|
|
||||||
fixed = {
|
|
||||||
{-0.1875, -0.1875, 0.0625, 0.1875, 0.5, 0.5},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
minetest.register_node("mcl_cocoas:cocoa_2", table.copy(crop_def))
|
|
||||||
|
|
||||||
-- Final stage
|
|
||||||
crop_def.description = S("Mature Cocoa Pod")
|
|
||||||
crop_def._doc_items_longdesc = S("A mature cocoa pod grew on a jungle tree to its full size and it is ready to be harvested for cocoa beans. It won't grow any further.")
|
|
||||||
crop_def._doc_items_create_entry = true
|
|
||||||
crop_def.groups.cocoa = 3
|
|
||||||
crop_def.tiles = {
|
|
||||||
-- The following 2 textures were derived from the original because the size of the top/bottom is slightly different :-(
|
|
||||||
-- TODO: Find a way to *only* use the base texture
|
|
||||||
"mcl_cocoas_cocoa_top_stage_2.png", "mcl_cocoas_cocoa_top_stage_2.png^[transformFY",
|
|
||||||
"mcl_cocoas_cocoa_stage_2.png", "mcl_cocoas_cocoa_stage_2.png^[transformFX",
|
|
||||||
"[combine:16x16:-3,0=mcl_cocoas_cocoa_stage_2.png", "[combine:16x16:-3,0=mcl_cocoas_cocoa_stage_2.png",
|
|
||||||
}
|
|
||||||
crop_def.node_box = {
|
|
||||||
type = "fixed",
|
|
||||||
fixed = {
|
|
||||||
{-0.25, -0.3125, -0.0625, 0.25, 0.25, 0.4375}, -- Pod
|
|
||||||
{0, 0.25, 0.25, 0, 0.5, 0.5}, -- Stem
|
|
||||||
},
|
|
||||||
}
|
|
||||||
crop_def.collision_box = {
|
|
||||||
type = "fixed",
|
|
||||||
fixed = {
|
|
||||||
{-0.25, -0.3125, -0.0625, 0.25, 0.25, 0.4375}, -- Pod
|
|
||||||
},
|
|
||||||
}
|
|
||||||
crop_def.selection_box = {
|
|
||||||
type = "fixed",
|
|
||||||
fixed = {
|
|
||||||
{-0.25, -0.3125, -0.0625, 0.25, 0.5, 0.5},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
crop_def.drop = "mcl_dye:brown 3"
|
|
||||||
minetest.register_node("mcl_cocoas:cocoa_3", table.copy(crop_def))
|
|
||||||
|
|
||||||
|
minetest.register_craftitem("mcl_cocoas:cocoa_beans", {
|
||||||
|
description = S("Cocoa Beans"),
|
||||||
|
_tt_help = S("Grows at the side of jungle trees"),
|
||||||
|
_doc_items_longdesc = S("Cocoa beans can be used to plant cocoa, bake cookies or craft brown dye."),
|
||||||
|
_doc_items_usagehelp = S("Right click on the side of a jungle tree trunk (Jungle Wood) to plant a young cocoa."),
|
||||||
|
inventory_image = "mcl_cocoa_beans.png",
|
||||||
|
groups = {craftitem = 1, compostability = 65},
|
||||||
|
on_place = function(itemstack, placer, pointed_thing)
|
||||||
|
return cocoa_place(itemstack, placer, pointed_thing, "mcl_cocoas:cocoa_1")
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
label = "Cocoa pod growth",
|
label = "Cocoa pod growth",
|
||||||
|
@ -197,4 +201,3 @@ minetest.register_abm({
|
||||||
if minetest.get_modpath("doc") then
|
if minetest.get_modpath("doc") then
|
||||||
doc.add_entry_alias("nodes", "mcl_cocoas:cocoa_1", "nodes", "mcl_cocoas:cocoa_2")
|
doc.add_entry_alias("nodes", "mcl_cocoas:cocoa_1", "nodes", "mcl_cocoas:cocoa_2")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
# textdomain: mcl_cocoas
|
# textdomain: mcl_cocoas
|
||||||
|
Cocoa Beans=Kakaobohnen
|
||||||
|
Grows at the side of jungle trees=Wächst an der Seite von Dschungelbäumen
|
||||||
|
Cocoa beans can be used to plant cocoa pods, bake chocolate cookies or craft brown dye.=Kakaobohnen können benutzt werden, um Kakao anzupflanzen, Kekse zu backen oder braune Farbstoffe herzustellen.
|
||||||
|
Right click on the side of a jungle tree trunk (Jungle Wood) to plant a young cocoa.=Rechtsklicken Sie an die Seite eines Dschungelbaumstamms (Dschungelholz), um eine junge Kakaoschote zu pflanzen.
|
||||||
Premature Cocoa Pod=Junge Kakaoschote
|
Premature Cocoa Pod=Junge Kakaoschote
|
||||||
Cocoa pods grow on the side of jungle trees in 3 stages.=Kakaoschoten wachsen an der Seite von Dschungelbäumen in 3 Stufen.
|
Cocoa pods grow on the side of jungle trees in 3 stages.=Kakaoschoten wachsen an der Seite von Dschungelbäumen in 3 Stufen.
|
||||||
Medium Cocoa Pod=Mittelgroße Kakaoschote
|
Medium Cocoa Pod=Mittelgroße Kakaoschote
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
# textdomain: mcl_cocoas
|
# textdomain: mcl_cocoas
|
||||||
|
Cocoa Beans=Granos de cacao
|
||||||
|
Grows at the side of jungle trees=Crece al lado de los árboles de la jungla
|
||||||
|
Cocoa beans can be used to plant cocoa, bake cookies or craft brown dye.=Los granos de cacao se pueden usar para plantar cacao, hornear galletas o hacer tintes marrones.
|
||||||
|
Right click on the side of a jungle tree trunk (Jungle Wood) to plant a young cocoa.=Haga clic derecho en el costado del tronco de un árbol de la jungla para plantar un cacao joven.
|
||||||
Premature Cocoa Pod=Vaina de cacao prematura
|
Premature Cocoa Pod=Vaina de cacao prematura
|
||||||
Cocoa pods grow on the side of jungle trees in 3 stages.=Las vainas de cacao crecen al lado de los árboles de jungla en 3 etapas.
|
Cocoa pods grow on the side of jungle trees in 3 stages.=Las vainas de cacao crecen al lado de los árboles de jungla en 3 etapas.
|
||||||
Medium Cocoa Pod=Vaina de cacao mediana
|
Medium Cocoa Pod=Vaina de cacao mediana
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
# textdomain: mcl_cocoas
|
# textdomain: mcl_cocoas
|
||||||
|
Cocoa Beans=Fèves de Cacao
|
||||||
|
Grows at the side of jungle trees=Pousse à côté des arbres de la jungle
|
||||||
|
Cocoa beans can be used to plant cocoa, bake cookies or craft brown dye.=Les fèves de cacao peuvent être utilisées pour planter du cacao, faire des biscuits ou fabriquer de la teinture brune.
|
||||||
|
Right click on the side of a jungle tree trunk (Jungle Wood) to plant a young cocoa.=Clic droit sur le côté d'un tronc d'arbre de la jungle (Bois Acajou) pour planter un jeune cacaoyer.
|
||||||
Premature Cocoa Pod=Gousse de cacao prématurée
|
Premature Cocoa Pod=Gousse de cacao prématurée
|
||||||
Cocoa pods grow on the side of jungle trees in 3 stages.=Les cabosses de cacao poussent sur le côté des arbres d'Acajou en 3 étapes.
|
Cocoa pods grow on the side of jungle trees in 3 stages.=Les cabosses de cacao poussent sur le côté des arbres d'Acajou en 3 étapes.
|
||||||
Medium Cocoa Pod=Gousse de cacao moyenne
|
Medium Cocoa Pod=Gousse de cacao moyenne
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
# textdomain: mcl_cocoas
|
# textdomain: mcl_cocoas
|
||||||
|
Cocoa Beans=Ziarna kakaowe
|
||||||
|
Grows at the side of jungle trees=Rośnie na boku tropikalnych drzew
|
||||||
|
Cocoa beans can be used to plant cocoa, bake cookies or craft brown dye.=Ziarna kakaowe mogą być używane do sadzenia kakao, pieczenia ciasteczek lub robienia brązowego barwnika.
|
||||||
|
Right click on the side of a jungle tree trunk (Jungle Wood) to plant a young cocoa.=Naciśnij prawym na boku tropikalnego pnia (Tropikalne drewno) aby zasadzić młode kakao.
|
||||||
Premature Cocoa Pod=Niedojrzała roślina kakao
|
Premature Cocoa Pod=Niedojrzała roślina kakao
|
||||||
Cocoa pods grow on the side of jungle trees in 3 stages.=Roślina kakao rośnie na bokach tropikalnych drzew w 3 etapach
|
Cocoa pods grow on the side of jungle trees in 3 stages.=Roślina kakao rośnie na bokach tropikalnych drzew w 3 etapach
|
||||||
Medium Cocoa Pod=Średnio-dojrzała roślina kakao
|
Medium Cocoa Pod=Średnio-dojrzała roślina kakao
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
# textdomain: mcl_cocoas
|
# textdomain: mcl_cocoas
|
||||||
|
Cocoa Beans=Какао-бобы
|
||||||
|
Grows at the side of jungle trees=Растут на стволах деревьев джунглей
|
||||||
|
Cocoa beans can be used to plant cocoa, bake cookies or craft brown dye.=Какао-бобы можно использовать для посадки какао, выпечки печенья или изготовления коричневого красителя.
|
||||||
|
Right click on the side of a jungle tree trunk (Jungle Wood) to plant a young cocoa.=Кликните правой по боковой части ствола дерева джунглей, чтобы посадить молодое какао.
|
||||||
Premature Cocoa Pod=Молодой стручок какао
|
Premature Cocoa Pod=Молодой стручок какао
|
||||||
Cocoa pods grow on the side of jungle trees in 3 stages.=Стручки какао растут на деревьях джунглей в 3 этапа.
|
Cocoa pods grow on the side of jungle trees in 3 stages.=Стручки какао растут на деревьях джунглей в 3 этапа.
|
||||||
Medium Cocoa Pod=Средний стручок какао
|
Medium Cocoa Pod=Средний стручок какао
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
# textdomain: mcl_cocoas
|
# textdomain: mcl_cocoas
|
||||||
|
Cocoa Beans=可可豆
|
||||||
|
Grows at the side of jungle trees=在叢林木側生長
|
||||||
|
Cocoa beans can be used to plant cocoa, bake cookies or craft brown dye.=可可豆可用於種植可可、烘烤餅乾或製作棕色染料。
|
||||||
|
Right click on the side of a jungle tree trunk (Jungle Wood) to plant a young cocoa.=右鍵點擊叢林木的一側,可以種植一個可可。
|
||||||
Premature Cocoa Pod=成長中的可可豆莢(第1階段)
|
Premature Cocoa Pod=成長中的可可豆莢(第1階段)
|
||||||
Cocoa pods grow on the side of jungle trees in 3 stages.=可可莢果分3個階段生長在叢林樹的側面。
|
Cocoa pods grow on the side of jungle trees in 3 stages.=可可莢果分3個階段生長在叢林樹的側面。
|
||||||
Medium Cocoa Pod=成長中的可可豆莢(第2階段)
|
Medium Cocoa Pod=成長中的可可豆莢(第2階段)
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
# textdomain: mcl_cocoas
|
# textdomain: mcl_cocoas
|
||||||
|
Cocoa Beans=
|
||||||
|
Grows at the side of jungle trees=
|
||||||
|
Cocoa beans can be used to plant cocoa, bake cookies or craft brown dye.=
|
||||||
|
Right click on the side of a jungle tree trunk (Jungle Wood) to plant a young cocoa.=
|
||||||
Premature Cocoa Pod=
|
Premature Cocoa Pod=
|
||||||
Cocoa pods grow on the side of jungle trees in 3 stages.=
|
Cocoa pods grow on the side of jungle trees in 3 stages.=
|
||||||
Medium Cocoa Pod=
|
Medium Cocoa Pod=
|
||||||
|
|
After Width: | Height: | Size: 244 B |
|
@ -83,7 +83,7 @@ local function composter_add_item(pos, node, player, itemstack, pointed_thing)
|
||||||
-- get current compost level
|
-- get current compost level
|
||||||
local level = registered_nodes[node.name]["_mcl_compost_level"]
|
local level = registered_nodes[node.name]["_mcl_compost_level"]
|
||||||
-- spawn green particles above new layer
|
-- spawn green particles above new layer
|
||||||
mcl_dye.add_bone_meal_particle(vector_offset(pos, 0, level/8, 0))
|
mcl_bone_meal.add_bone_meal_particle(vector_offset(pos, 0, level/8, 0))
|
||||||
-- TODO: play some sounds
|
-- TODO: play some sounds
|
||||||
-- update composter block
|
-- update composter block
|
||||||
if level < 7 then
|
if level < 7 then
|
||||||
|
@ -138,8 +138,8 @@ local function composter_harvest(pos, node, player, itemstack, pointed_thing)
|
||||||
end
|
end
|
||||||
-- reset ready type composter to empty type
|
-- reset ready type composter to empty type
|
||||||
swap_node(pos, {name="mcl_composters:composter"})
|
swap_node(pos, {name="mcl_composters:composter"})
|
||||||
-- spawn bone meal item (wtf dye?! is this how they make white cocoa)
|
-- spawn bone meal item
|
||||||
add_item(pos, "mcl_dye:white")
|
add_item(pos, "mcl_bone_meal:bone_meal")
|
||||||
-- TODO play some sounds
|
-- TODO play some sounds
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
name = mcl_composters
|
name = mcl_composters
|
||||||
author = kabou
|
author = kabou
|
||||||
description = Composters can convert various organic items into bonemeal.
|
description = Composters can convert various organic items into bonemeal.
|
||||||
depends = mcl_core, mcl_sounds, mcl_dye
|
depends = mcl_core, mcl_sounds, mcl_bone_meal
|
||||||
optional_depends = doc
|
optional_depends = doc
|
||||||
|
|
|
@ -126,14 +126,14 @@ minetest.register_craft({
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "mcl_core:bone_block",
|
output = "mcl_core:bone_block",
|
||||||
recipe = {
|
recipe = {
|
||||||
{ "mcl_dye:white", "mcl_dye:white", "mcl_dye:white" },
|
{ "mcl_bone_meal:bone_meal", "mcl_bone_meal:bone_meal", "mcl_bone_meal:bone_meal" },
|
||||||
{ "mcl_dye:white", "mcl_dye:white", "mcl_dye:white" },
|
{ "mcl_bone_meal:bone_meal", "mcl_bone_meal:bone_meal", "mcl_bone_meal:bone_meal" },
|
||||||
{ "mcl_dye:white", "mcl_dye:white", "mcl_dye:white" },
|
{ "mcl_bone_meal:bone_meal", "mcl_bone_meal:bone_meal", "mcl_bone_meal:bone_meal" },
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "mcl_dye:white 9",
|
output = "mcl_bone_meal:bone_meal 9",
|
||||||
recipe = {
|
recipe = {
|
||||||
{ "mcl_core:bone_block" },
|
{ "mcl_core:bone_block" },
|
||||||
},
|
},
|
||||||
|
@ -298,14 +298,14 @@ minetest.register_craft({
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "mcl_core:lapisblock",
|
output = "mcl_core:lapisblock",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"mcl_dye:blue", "mcl_dye:blue", "mcl_dye:blue"},
|
{"mcl_core:lapis", "mcl_core:lapis", "mcl_core:lapis"},
|
||||||
{"mcl_dye:blue", "mcl_dye:blue", "mcl_dye:blue"},
|
{"mcl_core:lapis", "mcl_core:lapis", "mcl_core:lapis"},
|
||||||
{"mcl_dye:blue", "mcl_dye:blue", "mcl_dye:blue"},
|
{"mcl_core:lapis", "mcl_core:lapis", "mcl_core:lapis"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "mcl_dye:blue 9",
|
output = "mcl_core:lapis 9",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"mcl_core:lapisblock"},
|
{"mcl_core:lapisblock"},
|
||||||
}
|
}
|
||||||
|
|
|
@ -99,6 +99,14 @@ minetest.register_craftitem("mcl_core:emerald", {
|
||||||
groups = { craftitem=1 },
|
groups = { craftitem=1 },
|
||||||
})
|
})
|
||||||
|
|
||||||
|
minetest.register_craftitem("mcl_core:lapis", {
|
||||||
|
description = S("Lapis Lazuli"),
|
||||||
|
_doc_items_longdesc = S("Lapis Lazuli are required for enchanting items on an enchanting table."),
|
||||||
|
inventory_image = "mcl_core_lapis.png",
|
||||||
|
stack_max = 64,
|
||||||
|
groups = { craftitem=1 },
|
||||||
|
})
|
||||||
|
|
||||||
minetest.register_craftitem("mcl_core:brick", {
|
minetest.register_craftitem("mcl_core:brick", {
|
||||||
description = S("Brick"),
|
description = S("Brick"),
|
||||||
_doc_items_longdesc = S("Bricks are used to craft brick blocks."),
|
_doc_items_longdesc = S("Bricks are used to craft brick blocks."),
|
||||||
|
|
|
@ -130,6 +130,8 @@ Jungle Wood=Dschungelholz
|
||||||
Jungle Wood Planks=Dschungelholzplanken
|
Jungle Wood Planks=Dschungelholzplanken
|
||||||
Jungle leaves are grown from jungle trees.=Dschungelblätter wachsen an Dschungelbäumen.
|
Jungle leaves are grown from jungle trees.=Dschungelblätter wachsen an Dschungelbäumen.
|
||||||
Ladder=Leiter
|
Ladder=Leiter
|
||||||
|
Lapis Lazuli=Lapislazuli
|
||||||
|
Lapis Lazuli are required for enchanting items on an enchanting table.=Lapislazuli werden zum Verzaubern von Gegenständen auf einem Zaubertisch benötigt.
|
||||||
Lapis Lazuli Block=Lapislazuliblock
|
Lapis Lazuli Block=Lapislazuliblock
|
||||||
Lapis Lazuli Ore=Lapislazulierz
|
Lapis Lazuli Ore=Lapislazulierz
|
||||||
Lapis lazuli ore is the ore of lapis lazuli. It can be rarely found in clusters near the bottom of the world.=Lapislazulierz ist das Erz von Lapislazuli. Es kann relativ selten in Ansammlungen in der Nähe des Weltbodens gefunden werden.
|
Lapis lazuli ore is the ore of lapis lazuli. It can be rarely found in clusters near the bottom of the world.=Lapislazulierz ist das Erz von Lapislazuli. Es kann relativ selten in Ansammlungen in der Nähe des Weltbodens gefunden werden.
|
||||||
|
|
|
@ -130,6 +130,8 @@ Jungle Wood=Tronco de jungla
|
||||||
Jungle Wood Planks=Madera de jungla
|
Jungle Wood Planks=Madera de jungla
|
||||||
Jungle leaves are grown from jungle trees.=Las hojas de jungla se cultivan de los árboles de jungla.
|
Jungle leaves are grown from jungle trees.=Las hojas de jungla se cultivan de los árboles de jungla.
|
||||||
Ladder=Escalera
|
Ladder=Escalera
|
||||||
|
Lapis Lazuli=Lapislázuli
|
||||||
|
Lapis Lazuli are required for enchanting items on an enchanting table.=Los lapislázuli son necesarios para encantar objetos en una mesa de encantamiento.
|
||||||
Lapis Lazuli Block=Bloque de lapislázuli
|
Lapis Lazuli Block=Bloque de lapislázuli
|
||||||
Lapis Lazuli Ore=Mena de lapislázuli
|
Lapis Lazuli Ore=Mena de lapislázuli
|
||||||
Lapis lazuli ore is the ore of lapis lazuli. It can be rarely found in clusters near the bottom of the world.=El mineral de lapislázuli es el mineral de lapislázuli. Rara vez se puede encontrar en grupos, se encuentra cerca del fondo del mundo.
|
Lapis lazuli ore is the ore of lapis lazuli. It can be rarely found in clusters near the bottom of the world.=El mineral de lapislázuli es el mineral de lapislázuli. Rara vez se puede encontrar en grupos, se encuentra cerca del fondo del mundo.
|
||||||
|
|
|
@ -130,6 +130,8 @@ Jungle Wood=Bois d'Acajou
|
||||||
Jungle Wood Planks=Planches d'Acajou
|
Jungle Wood Planks=Planches d'Acajou
|
||||||
Jungle leaves are grown from jungle trees.=Les feuilles d'Acajou sont cultivées à partir d'arbres d'Acajou.
|
Jungle leaves are grown from jungle trees.=Les feuilles d'Acajou sont cultivées à partir d'arbres d'Acajou.
|
||||||
Ladder=Échelle
|
Ladder=Échelle
|
||||||
|
Lapis Lazuli=Lapis Lazuli
|
||||||
|
Lapis Lazuli are required for enchanting items on an enchanting table.=Les lapis-lazuli sont nécessaires pour enchanter des objets sur une table d'enchantement.
|
||||||
Lapis Lazuli Block=Bloc de Lapis-Lazuli
|
Lapis Lazuli Block=Bloc de Lapis-Lazuli
|
||||||
Lapis Lazuli Ore=Minerai de Lapis-Lazuli
|
Lapis Lazuli Ore=Minerai de Lapis-Lazuli
|
||||||
Lapis lazuli ore is the ore of lapis lazuli. It can be rarely found in clusters near the bottom of the world.=Le minerai de lapis-lazuli produit du lapis-lazuli. Il peut être rarement trouvé dans des filons près du fond du monde.
|
Lapis lazuli ore is the ore of lapis lazuli. It can be rarely found in clusters near the bottom of the world.=Le minerai de lapis-lazuli produit du lapis-lazuli. Il peut être rarement trouvé dans des filons près du fond du monde.
|
||||||
|
|
|
@ -130,6 +130,8 @@ Jungle Wood=Tropikalne drewno
|
||||||
Jungle Wood Planks=Tropikalne deski
|
Jungle Wood Planks=Tropikalne deski
|
||||||
Jungle leaves are grown from jungle trees.=Tropikalne liście rosną na tropikalnych drzewach.
|
Jungle leaves are grown from jungle trees.=Tropikalne liście rosną na tropikalnych drzewach.
|
||||||
Ladder=Drabina
|
Ladder=Drabina
|
||||||
|
Lapis Lazuli=Lazuryt
|
||||||
|
Lapis Lazuli are required for enchanting items on an enchanting table.=Lapis Lazuli są wymagane do zaklinania przedmiotów na zaklinającym stole.
|
||||||
Lapis Lazuli Block=Blok lazurytu
|
Lapis Lazuli Block=Blok lazurytu
|
||||||
Lapis Lazuli Ore=Ruda lazurytu
|
Lapis Lazuli Ore=Ruda lazurytu
|
||||||
Lapis lazuli ore is the ore of lapis lazuli. It can be rarely found in clusters near the bottom of the world.=Ruda lazurytu jest rzadko występującym blokiem, który można znaleźć w grupach przy dnie świata.
|
Lapis lazuli ore is the ore of lapis lazuli. It can be rarely found in clusters near the bottom of the world.=Ruda lazurytu jest rzadko występującym blokiem, który można znaleźć w grupach przy dnie świata.
|
||||||
|
|
|
@ -130,6 +130,8 @@ Jungle Wood=Дерево джунглей
|
||||||
Jungle Wood Planks=Доски из дерева джунглей
|
Jungle Wood Planks=Доски из дерева джунглей
|
||||||
Jungle leaves are grown from jungle trees.=Листва дерева джунглей произрастает на деревьях джунглей.
|
Jungle leaves are grown from jungle trees.=Листва дерева джунглей произрастает на деревьях джунглей.
|
||||||
Ladder=Лестница
|
Ladder=Лестница
|
||||||
|
Lapis Lazuli=Ляпис-лазурь
|
||||||
|
Lapis Lazuli are required for enchanting items on an enchanting table.=Лазурит требуется для зачарования предметов на столе зачаровывания.
|
||||||
Lapis Lazuli Block=Ляпис-лазурный блок
|
Lapis Lazuli Block=Ляпис-лазурный блок
|
||||||
Lapis Lazuli Ore=Ляпис-лазурная руда
|
Lapis Lazuli Ore=Ляпис-лазурная руда
|
||||||
Lapis lazuli ore is the ore of lapis lazuli. It can be rarely found in clusters near the bottom of the world.=Ляпис-лазурная руда это руда ляпис-лазури. Она изредка встречается в виде скоплений вблизи дна мира.
|
Lapis lazuli ore is the ore of lapis lazuli. It can be rarely found in clusters near the bottom of the world.=Ляпис-лазурная руда это руда ляпис-лазури. Она изредка встречается в виде скоплений вблизи дна мира.
|
||||||
|
|
|
@ -129,6 +129,8 @@ Jungle Wood=叢林原木
|
||||||
Jungle Wood Planks=叢林木材
|
Jungle Wood Planks=叢林木材
|
||||||
Jungle leaves are grown from jungle trees.=叢林樹葉是由叢林樹生長出來的。
|
Jungle leaves are grown from jungle trees.=叢林樹葉是由叢林樹生長出來的。
|
||||||
Ladder=梯子
|
Ladder=梯子
|
||||||
|
Lapis Lazuli=青金石
|
||||||
|
Lapis Lazuli are required for enchanting items on an enchanting table.=为附魔台上的物品附魔需要青金石。
|
||||||
Lapis Lazuli Block=青金石磚
|
Lapis Lazuli Block=青金石磚
|
||||||
Lapis Lazuli Ore=青金石礦
|
Lapis Lazuli Ore=青金石礦
|
||||||
Lapis lazuli ore is the ore of lapis lazuli. It can be rarely found in clusters near the bottom of the world.=青金石礦是青金石的礦石。在世界底部附近能發現成群的和稀有的青金石礦。
|
Lapis lazuli ore is the ore of lapis lazuli. It can be rarely found in clusters near the bottom of the world.=青金石礦是青金石的礦石。在世界底部附近能發現成群的和稀有的青金石礦。
|
||||||
|
|
|
@ -130,6 +130,8 @@ Jungle Wood=
|
||||||
Jungle Wood Planks=
|
Jungle Wood Planks=
|
||||||
Jungle leaves are grown from jungle trees.=
|
Jungle leaves are grown from jungle trees.=
|
||||||
Ladder=
|
Ladder=
|
||||||
|
Lapis Lazuli=
|
||||||
|
Lapis Lazuli are required for enchanting items on an enchanting table.=
|
||||||
Lapis Lazuli Block=
|
Lapis Lazuli Block=
|
||||||
Lapis Lazuli Ore=
|
Lapis Lazuli Ore=
|
||||||
Lapis lazuli ore is the ore of lapis lazuli. It can be rarely found in clusters near the bottom of the world.=
|
Lapis lazuli ore is the ore of lapis lazuli. It can be rarely found in clusters near the bottom of the world.=
|
||||||
|
|
|
@ -179,11 +179,11 @@ minetest.register_node("mcl_core:stone_with_lapis", {
|
||||||
drop = {
|
drop = {
|
||||||
max_items = 1,
|
max_items = 1,
|
||||||
items = {
|
items = {
|
||||||
{items = {"mcl_dye:blue 8"},rarity = 5},
|
{items = {"mcl_core:lapis 8"},rarity = 5},
|
||||||
{items = {"mcl_dye:blue 7"},rarity = 5},
|
{items = {"mcl_core:lapis 7"},rarity = 5},
|
||||||
{items = {"mcl_dye:blue 6"},rarity = 5},
|
{items = {"mcl_core:lapis 6"},rarity = 5},
|
||||||
{items = {"mcl_dye:blue 5"},rarity = 5},
|
{items = {"mcl_core:lapis 5"},rarity = 5},
|
||||||
{items = {"mcl_dye:blue 4"}},
|
{items = {"mcl_core:lapis 4"}},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
sounds = mcl_sounds.node_sound_stone_defaults(),
|
sounds = mcl_sounds.node_sound_stone_defaults(),
|
||||||
|
|
|
@ -205,6 +205,14 @@ local function register_sapling(subname, description, longdesc, tt_help, texture
|
||||||
nn == "mcl_core:podzol" or nn == "mcl_core:podzol_snow" or
|
nn == "mcl_core:podzol" or nn == "mcl_core:podzol_snow" or
|
||||||
nn == "mcl_core:dirt" or nn == "mcl_core:mycelium" or nn == "mcl_core:coarse_dirt"
|
nn == "mcl_core:dirt" or nn == "mcl_core:mycelium" or nn == "mcl_core:coarse_dirt"
|
||||||
end),
|
end),
|
||||||
|
_mcl_on_bonemealing = function(pointed_thing, placer)
|
||||||
|
local pos = pointed_thing.under
|
||||||
|
local n = minetest.get_node(pos)
|
||||||
|
-- Saplings: 45% chance to advance growth stage
|
||||||
|
if math.random(1,100) <= 45 then
|
||||||
|
return mcl_core.grow_sapling(pos, n)
|
||||||
|
end
|
||||||
|
end,
|
||||||
node_placement_prediction = "",
|
node_placement_prediction = "",
|
||||||
_mcl_blast_resistance = 0,
|
_mcl_blast_resistance = 0,
|
||||||
_mcl_hardness = 0,
|
_mcl_hardness = 0,
|
||||||
|
|
After Width: | Height: | Size: 169 B |
|
@ -7,7 +7,6 @@ local S = minetest.get_translator(modname)
|
||||||
local copper_mod = minetest.get_modpath("mcl_copper")
|
local copper_mod = minetest.get_modpath("mcl_copper")
|
||||||
|
|
||||||
local cobble = "mcl_deepslate:deepslate_cobbled"
|
local cobble = "mcl_deepslate:deepslate_cobbled"
|
||||||
local stick = "mcl_core:stick"
|
|
||||||
|
|
||||||
--[[
|
--[[
|
||||||
local mountains = {
|
local mountains = {
|
||||||
|
@ -101,11 +100,11 @@ end
|
||||||
|
|
||||||
local lapis_drops = {
|
local lapis_drops = {
|
||||||
max_items = 1, items = {
|
max_items = 1, items = {
|
||||||
{ items = { "mcl_dye:blue 8" }, rarity = 5 },
|
{ items = { "mcl_core:lapis 8" }, rarity = 5 },
|
||||||
{ items = { "mcl_dye:blue 7" }, rarity = 5 },
|
{ items = { "mcl_core:lapis 7" }, rarity = 5 },
|
||||||
{ items = { "mcl_dye:blue 6" }, rarity = 5 },
|
{ items = { "mcl_core:lapis 6" }, rarity = 5 },
|
||||||
{ items = { "mcl_dye:blue 5" }, rarity = 5 },
|
{ items = { "mcl_core:lapis 5" }, rarity = 5 },
|
||||||
{ items = { "mcl_dye:blue 4" } }
|
{ items = { "mcl_core:lapis 4" } }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -115,7 +114,7 @@ local deepslate_ores = {
|
||||||
{ "Gold", "mcl_raw_ores:raw_gold", "mcl_core:gold_ingot", 4, 0 },
|
{ "Gold", "mcl_raw_ores:raw_gold", "mcl_core:gold_ingot", 4, 0 },
|
||||||
{ "Emerald", "mcl_core:emerald", "mcl_core:emerald", 4, 6 },
|
{ "Emerald", "mcl_core:emerald", "mcl_core:emerald", 4, 6 },
|
||||||
{ "Diamond", "mcl_core:diamond", "mcl_core:diamond", 4, 4 },
|
{ "Diamond", "mcl_core:diamond", "mcl_core:diamond", 4, 4 },
|
||||||
{ "Lapis Lazuli", lapis_drops, "mcl_dye:blue", 3, 6 },
|
{ "Lapis Lazuli", lapis_drops, "mcl_core:lapis", 3, 6 },
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, p in pairs(deepslate_ores) do
|
for _, p in pairs(deepslate_ores) do
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
# mcl_dye
|
|
||||||
|
|
||||||
# Bone meal API
|
|
||||||
Callback and particle functions.
|
|
||||||
|
|
||||||
## mcl_dye.add_bone_meal_particle(pos, def)
|
|
||||||
Spawns standard or custom bone meal particles.
|
|
||||||
* `pos`: position, is ignored if you define def.minpos and def.maxpos
|
|
||||||
* `def`: (optional) particle definition
|
|
||||||
|
|
||||||
## mcl_dye.register_on_bone_meal_apply(function(pointed_thing, user))
|
|
||||||
Called when the bone meal is applied anywhere.
|
|
||||||
* `pointed_thing`: exact pointing location (see Minetest API), where the bone meal is applied
|
|
||||||
* `user`: ObjectRef of the player who aplied the bone meal, can be nil!
|
|
|
@ -15,7 +15,6 @@ mcl_dye = {}
|
||||||
|
|
||||||
local S = minetest.get_translator(minetest.get_current_modname())
|
local S = minetest.get_translator(minetest.get_current_modname())
|
||||||
|
|
||||||
local math = math
|
|
||||||
local string = string
|
local string = string
|
||||||
|
|
||||||
-- Other mods can use these for looping through available colors
|
-- Other mods can use these for looping through available colors
|
||||||
|
@ -62,43 +61,39 @@ mcl_dye.excolors = {"white", "lightgrey", "grey", "darkgrey", "black", "red", "o
|
||||||
-- - unicolor_medium_<excolor>_s50
|
-- - unicolor_medium_<excolor>_s50
|
||||||
-- - unicolor_dark_<excolor>_s50
|
-- - unicolor_dark_<excolor>_s50
|
||||||
|
|
||||||
-- Local stuff
|
|
||||||
local dyelocal = {}
|
|
||||||
|
|
||||||
-- This collection of colors is partly a historic thing, partly something else.
|
-- This collection of colors is partly a historic thing, partly something else.
|
||||||
dyelocal.dyes = {
|
local dyes = {
|
||||||
{"white", "mcl_dye_white", S("Bone Meal"), {dye=1, craftitem=1, basecolor_white=1, excolor_white=1, unicolor_white=1}},
|
{"white", S("White Dye"), {basecolor_white=1, excolor_white=1, unicolor_white=1}},
|
||||||
{"grey", "dye_grey", S("Light Grey Dye"), {dye=1, craftitem=1, basecolor_grey=1, excolor_grey=1, unicolor_grey=1}},
|
{"grey", S("Light Grey Dye"), {basecolor_grey=1, excolor_grey=1, unicolor_grey=1}},
|
||||||
{"dark_grey", "dye_dark_grey", S("Grey Dye"), {dye=1, craftitem=1, basecolor_grey=1, excolor_darkgrey=1, unicolor_darkgrey=1}},
|
{"dark_grey", S("Grey Dye"), {basecolor_grey=1, excolor_darkgrey=1, unicolor_darkgrey=1}},
|
||||||
{"black", "mcl_dye_black", S("Ink Sac"), {dye=1, craftitem=1, basecolor_black=1, excolor_black=1, unicolor_black=1}},
|
{"black", S("Black Dye"), {basecolor_black=1, excolor_black=1, unicolor_black=1}},
|
||||||
{"violet", "dye_violet", S("Purple Dye"), {dye=1, craftitem=1, basecolor_magenta=1, excolor_violet=1, unicolor_violet=1}},
|
{"violet", S("Purple Dye"), {basecolor_magenta=1, excolor_violet=1, unicolor_violet=1}},
|
||||||
{"blue", "mcl_dye_blue", S("Lapis Lazuli"), {dye=1, craftitem=1, basecolor_blue=1, excolor_blue=1, unicolor_blue=1}},
|
{"blue", S("Blue Dye"), {basecolor_blue=1, excolor_blue=1, unicolor_blue=1}},
|
||||||
{"lightblue", "mcl_dye_light_blue", S("Light Blue Dye"), {dye=1, craftitem=1, basecolor_blue=1, excolor_blue=1, unicolor_light_blue=1}},
|
{"lightblue", S("Light Blue Dye"), {basecolor_blue=1, excolor_blue=1, unicolor_light_blue=1}},
|
||||||
{"cyan", "dye_cyan", S("Cyan Dye"), {dye=1, craftitem=1, basecolor_cyan=1, excolor_cyan=1, unicolor_cyan=1}},
|
{"cyan", S("Cyan Dye"), {basecolor_cyan=1, excolor_cyan=1, unicolor_cyan=1}},
|
||||||
{"dark_green", "dye_dark_green", S("Cactus Green"),{dye=1, craftitem=1, basecolor_green=1, excolor_green=1, unicolor_dark_green=1}},
|
{"dark_green", S("Cactus Green"), {basecolor_green=1, excolor_green=1, unicolor_dark_green=1}},
|
||||||
{"green", "mcl_dye_lime", S("Lime Dye"), {dye=1, craftitem=1, basecolor_green=1, excolor_green=1, unicolor_green=1}},
|
{"green", S("Lime Dye"), {basecolor_green=1, excolor_green=1, unicolor_green=1}},
|
||||||
{"yellow", "dye_yellow", S("Dandelion Yellow"), {dye=1, craftitem=1, basecolor_yellow=1, excolor_yellow=1, unicolor_yellow=1}},
|
{"yellow", S("Dandelion Yellow"), {basecolor_yellow=1, excolor_yellow=1, unicolor_yellow=1}},
|
||||||
{"brown", "mcl_dye_brown", S("Cocoa Beans"), {dye=1, craftitem=1, basecolor_brown=1, excolor_orange=1, unicolor_dark_orange=1, compostability = 65}},
|
{"brown", S("Brown Dye"), {basecolor_brown=1, excolor_orange=1, unicolor_dark_orange=1}},
|
||||||
{"orange", "dye_orange", S("Orange Dye"), {dye=1, craftitem=1, basecolor_orange=1, excolor_orange=1, unicolor_orange=1}},
|
{"orange", S("Orange Dye"), {basecolor_orange=1, excolor_orange=1, unicolor_orange=1}},
|
||||||
{"red", "dye_red", S("Rose Red"), {dye=1, craftitem=1, basecolor_red=1, excolor_red=1, unicolor_red=1}},
|
{"red", S("Rose Red"), {basecolor_red=1, excolor_red=1, unicolor_red=1}},
|
||||||
{"magenta", "dye_magenta", S("Magenta Dye"), {dye=1, craftitem=1, basecolor_magenta=1, excolor_red_violet=1,unicolor_red_violet=1}},
|
{"magenta", S("Magenta Dye"), {basecolor_magenta=1, excolor_red_violet=1,unicolor_red_violet=1}},
|
||||||
{"pink", "dye_pink", S("Pink Dye"), {dye=1, craftitem=1, basecolor_red=1, excolor_red=1, unicolor_light_red=1}},
|
{"pink", S("Pink Dye"), {basecolor_red=1, excolor_red=1, unicolor_light_red=1}},
|
||||||
}
|
}
|
||||||
|
|
||||||
local mg_name = minetest.get_mapgen_setting("mg_name")
|
local unicolor_to_dye_id = {}
|
||||||
|
for d = 1, #dyes do
|
||||||
dyelocal.unicolor_to_dye_id = {}
|
for k, _ in pairs(dyes[d][3]) do
|
||||||
for d=1, #dyelocal.dyes do
|
|
||||||
for k, _ in pairs(dyelocal.dyes[d][4]) do
|
|
||||||
if string.sub(k, 1, 9) == "unicolor_" then
|
if string.sub(k, 1, 9) == "unicolor_" then
|
||||||
dyelocal.unicolor_to_dye_id[k] = dyelocal.dyes[d][1]
|
unicolor_to_dye_id[k] = dyes[d][1]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Takes an unicolor group name (e.g. “unicolor_white”) and returns a corresponding dye name (if it exists), nil otherwise.
|
-- Takes an unicolor group name (e.g. “unicolor_white”) and returns a
|
||||||
|
-- corresponding dye name (if it exists), nil otherwise.
|
||||||
function mcl_dye.unicolor_to_dye(unicolor_group)
|
function mcl_dye.unicolor_to_dye(unicolor_group)
|
||||||
local color = dyelocal.unicolor_to_dye_id[unicolor_group]
|
local color = unicolor_to_dye_id[unicolor_group]
|
||||||
if color then
|
if color then
|
||||||
return "mcl_dye:" .. color
|
return "mcl_dye:" .. color
|
||||||
else
|
else
|
||||||
|
@ -107,323 +102,32 @@ function mcl_dye.unicolor_to_dye(unicolor_group)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Define items
|
-- Define items
|
||||||
for _, row in ipairs(dyelocal.dyes) do
|
for _, row in ipairs(dyes) do
|
||||||
local name = row[1]
|
local groups = row[3]
|
||||||
-- White and brown dyes are defined explicitly below
|
groups.dye = 1
|
||||||
if name ~= "white" and name ~= "brown" then
|
groups.craftitem = 1
|
||||||
local img = row[2]
|
minetest.register_craftitem("mcl_dye:" .. row[1], {
|
||||||
local description = row[3]
|
inventory_image = "mcl_dye_" .. row[1] .. ".png",
|
||||||
local groups = row[4]
|
description = row[2],
|
||||||
local item_name = "mcl_dye:"..name
|
|
||||||
local item_image = img..".png"
|
|
||||||
minetest.register_craftitem(item_name, {
|
|
||||||
inventory_image = item_image,
|
|
||||||
description = description,
|
|
||||||
_doc_items_longdesc = S("This item is a dye which is used for dyeing and crafting."),
|
_doc_items_longdesc = S("This item is a dye which is used for dyeing and crafting."),
|
||||||
_doc_items_usagehelp = S("Rightclick on a sheep to dye its wool. Other things are dyed by crafting."),
|
_doc_items_usagehelp = S("Rightclick on a sheep to dye its wool. Other things are dyed by crafting."),
|
||||||
groups = groups,
|
groups = groups,
|
||||||
stack_max = 64,
|
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
-- Bone Meal
|
-- Legacy support for things now in mcl_bone_meal.
|
||||||
|
-- These shims will at some time in the future be removed.
|
||||||
|
--
|
||||||
function mcl_dye.add_bone_meal_particle(pos, def)
|
function mcl_dye.add_bone_meal_particle(pos, def)
|
||||||
if not def then
|
minetest.log("warning", "mcl_dye.add_bone_meal_particles() is deprecated. Read mcl_bone_meal/API.md!")
|
||||||
def = {}
|
mcl_bone_meal.add_bone_meal_particle(pos, def)
|
||||||
end
|
end
|
||||||
minetest.add_particlespawner({
|
|
||||||
amount = def.amount or 10,
|
|
||||||
time = def.time or 0.1,
|
|
||||||
minpos = def.minpos or vector.subtract(pos, 0.5),
|
|
||||||
maxpos = def.maxpos or vector.add(pos, 0.5),
|
|
||||||
minvel = def.minvel or vector.new(-0.01, 0.01, -0.01),
|
|
||||||
maxvel = def.maxvel or vector.new(0.01, 0.01, 0.01),
|
|
||||||
minacc = def.minacc or vector.new(0, 0, 0),
|
|
||||||
maxacc = def.maxacc or vector.new(0, 0, 0),
|
|
||||||
minexptime = def.minexptime or 1,
|
|
||||||
maxexptime = def.maxexptime or 4,
|
|
||||||
minsize = def.minsize or 0.7,
|
|
||||||
maxsize = def.maxsize or 2.4,
|
|
||||||
texture = "mcl_particles_bonemeal.png^[colorize:#00EE00:125", -- TODO: real MC color
|
|
||||||
glow = def.glow or 1,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|
||||||
mcl_dye.bone_meal_callbacks = {}
|
|
||||||
|
|
||||||
function mcl_dye.register_on_bone_meal_apply(func)
|
function mcl_dye.register_on_bone_meal_apply(func)
|
||||||
table.insert(mcl_dye.bone_meal_callbacks, func)
|
minetest.log("warning", "mcl_dye.register_on_bone_meal_apply() is deprecated. Read mcl_bone_meal/API.md!")
|
||||||
|
mcl_bone_meal.register_on_bone_meal_apply(func)
|
||||||
end
|
end
|
||||||
|
-- End of legacy support
|
||||||
local function apply_bone_meal(pointed_thing)
|
|
||||||
-- Bone meal currently spawns all flowers found in the plains.
|
|
||||||
local flowers_table_plains = {
|
|
||||||
"mcl_flowers:dandelion",
|
|
||||||
"mcl_flowers:dandelion",
|
|
||||||
"mcl_flowers:poppy",
|
|
||||||
|
|
||||||
"mcl_flowers:oxeye_daisy",
|
|
||||||
"mcl_flowers:tulip_orange",
|
|
||||||
"mcl_flowers:tulip_red",
|
|
||||||
"mcl_flowers:tulip_white",
|
|
||||||
"mcl_flowers:tulip_pink",
|
|
||||||
"mcl_flowers:azure_bluet",
|
|
||||||
}
|
|
||||||
local flowers_table_simple = {
|
|
||||||
"mcl_flowers:dandelion",
|
|
||||||
"mcl_flowers:poppy",
|
|
||||||
}
|
|
||||||
local flowers_table_swampland = {
|
|
||||||
"mcl_flowers:blue_orchid",
|
|
||||||
}
|
|
||||||
local flowers_table_flower_forest = {
|
|
||||||
"mcl_flowers:dandelion",
|
|
||||||
"mcl_flowers:poppy",
|
|
||||||
"mcl_flowers:oxeye_daisy",
|
|
||||||
"mcl_flowers:tulip_orange",
|
|
||||||
"mcl_flowers:tulip_red",
|
|
||||||
"mcl_flowers:tulip_white",
|
|
||||||
"mcl_flowers:tulip_pink",
|
|
||||||
"mcl_flowers:azure_bluet",
|
|
||||||
"mcl_flowers:allium",
|
|
||||||
}
|
|
||||||
|
|
||||||
local pos = pointed_thing.under
|
|
||||||
local n = minetest.get_node(pos)
|
|
||||||
if n.name == "" then return false end
|
|
||||||
|
|
||||||
for _, func in pairs(mcl_dye.bone_meal_callbacks) do
|
|
||||||
if func(pointed_thing, user) then
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if minetest.get_item_group(n.name, "sapling") >= 1 then
|
|
||||||
mcl_dye.add_bone_meal_particle(pos)
|
|
||||||
-- Saplings: 45% chance to advance growth stage
|
|
||||||
if math.random(1,100) <= 45 then
|
|
||||||
return mcl_core.grow_sapling(pos, n)
|
|
||||||
end
|
|
||||||
elseif minetest.get_item_group(n.name, "mushroom") == 1 then
|
|
||||||
mcl_dye.add_bone_meal_particle(pos)
|
|
||||||
-- Try to grow huge mushroom
|
|
||||||
|
|
||||||
-- Must be on a dirt-type block
|
|
||||||
local below = minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z})
|
|
||||||
if below.name ~= "mcl_core:mycelium" and below.name ~= "mcl_core:dirt" and minetest.get_item_group(below.name, "grass_block") ~= 1 and below.name ~= "mcl_core:coarse_dirt" and below.name ~= "mcl_core:podzol" then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Select schematic
|
|
||||||
local schematic, offset, height
|
|
||||||
if n.name == "mcl_mushrooms:mushroom_brown" then
|
|
||||||
schematic = minetest.get_modpath("mcl_mushrooms").."/schematics/mcl_mushrooms_huge_brown.mts"
|
|
||||||
offset = { x = -3, y = -1, z = -3 }
|
|
||||||
height = 8
|
|
||||||
elseif n.name == "mcl_mushrooms:mushroom_red" then
|
|
||||||
schematic = minetest.get_modpath("mcl_mushrooms").."/schematics/mcl_mushrooms_huge_red.mts"
|
|
||||||
offset = { x = -2, y = -1, z = -2 }
|
|
||||||
height = 8
|
|
||||||
else
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
-- 40% chance
|
|
||||||
if math.random(1, 100) <= 40 then
|
|
||||||
-- Check space requirements
|
|
||||||
for i=1,3 do
|
|
||||||
local cpos = vector.add(pos, {x=0, y=i, z=0})
|
|
||||||
if minetest.get_node(cpos).name ~= "air" then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
end
|
|
||||||
local yoff = 3
|
|
||||||
local minp, maxp = {x=pos.x-3, y=pos.y+yoff, z=pos.z-3}, {x=pos.x+3, y=pos.y+yoff+(height-3), z=pos.z+3}
|
|
||||||
local diff = vector.subtract(maxp, minp)
|
|
||||||
diff = vector.add(diff, {x=1,y=1,z=1})
|
|
||||||
local totalnodes = diff.x * diff.y * diff.z
|
|
||||||
local goodnodes = minetest.find_nodes_in_area(minp, maxp, {"air", "group:leaves"})
|
|
||||||
if #goodnodes < totalnodes then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Place the huge mushroom
|
|
||||||
minetest.remove_node(pos)
|
|
||||||
local place_pos = vector.add(pos, offset)
|
|
||||||
local ok = minetest.place_schematic(place_pos, schematic, 0, nil, false)
|
|
||||||
return ok ~= nil
|
|
||||||
end
|
|
||||||
return false
|
|
||||||
-- Wheat, Potato, Carrot, Pumpkin Stem, Melon Stem: Advance by 2-5 stages
|
|
||||||
elseif string.find(n.name, "mcl_farming:wheat_") then
|
|
||||||
mcl_dye.add_bone_meal_particle(pos)
|
|
||||||
local stages = math.random(2, 5)
|
|
||||||
return mcl_farming:grow_plant("plant_wheat", pos, n, stages, true)
|
|
||||||
elseif string.find(n.name, "mcl_farming:potato_") then
|
|
||||||
mcl_dye.add_bone_meal_particle(pos)
|
|
||||||
local stages = math.random(2, 5)
|
|
||||||
return mcl_farming:grow_plant("plant_potato", pos, n, stages, true)
|
|
||||||
elseif string.find(n.name, "mcl_farming:carrot_") then
|
|
||||||
mcl_dye.add_bone_meal_particle(pos)
|
|
||||||
local stages = math.random(2, 5)
|
|
||||||
return mcl_farming:grow_plant("plant_carrot", pos, n, stages, true)
|
|
||||||
elseif string.find(n.name, "mcl_farming:pumpkin_") then
|
|
||||||
mcl_dye.add_bone_meal_particle(pos)
|
|
||||||
local stages = math.random(2, 5)
|
|
||||||
return mcl_farming:grow_plant("plant_pumpkin_stem", pos, n, stages, true)
|
|
||||||
elseif string.find(n.name, "mcl_farming:melontige_") then
|
|
||||||
mcl_dye.add_bone_meal_particle(pos)
|
|
||||||
local stages = math.random(2, 5)
|
|
||||||
return mcl_farming:grow_plant("plant_melon_stem", pos, n, stages, true)
|
|
||||||
elseif string.find(n.name, "mcl_farming:beetroot_") then
|
|
||||||
mcl_dye.add_bone_meal_particle(pos)
|
|
||||||
-- Beetroot: 75% chance to advance to next stage
|
|
||||||
if math.random(1, 100) <= 75 then
|
|
||||||
return mcl_farming:grow_plant("plant_beetroot", pos, n, 1, true)
|
|
||||||
end
|
|
||||||
elseif n.name == "mcl_cocoas:cocoa_1" or n.name == "mcl_cocoas:cocoa_2" then
|
|
||||||
mcl_dye.add_bone_meal_particle(pos)
|
|
||||||
-- Cocoa: Advance by 1 stage
|
|
||||||
mcl_cocoas.grow(pos)
|
|
||||||
return true
|
|
||||||
elseif minetest.get_item_group(n.name, "grass_block") == 1 then
|
|
||||||
-- Grass Block: Generate tall grass and random flowers all over the place
|
|
||||||
for i = -7, 7 do
|
|
||||||
for j = -7, 7 do
|
|
||||||
for y = -1, 1 do
|
|
||||||
pos = vector.offset(pointed_thing.above, i, y, j)
|
|
||||||
n = minetest.get_node(pos)
|
|
||||||
local n2 = minetest.get_node(vector.offset(pos, 0, -1, 0))
|
|
||||||
|
|
||||||
if n.name ~= "" and n.name == "air" and (minetest.get_item_group(n2.name, "grass_block_no_snow") == 1) then
|
|
||||||
-- Randomly generate flowers, tall grass or nothing
|
|
||||||
if math.random(1, 100) <= 90 / ((math.abs(i) + math.abs(j)) / 2)then
|
|
||||||
-- 90% tall grass, 10% flower
|
|
||||||
mcl_dye.add_bone_meal_particle(pos, {amount = 4})
|
|
||||||
if math.random(1,100) <= 90 then
|
|
||||||
local col = n2.param2
|
|
||||||
minetest.add_node(pos, {name="mcl_flowers:tallgrass", param2=col})
|
|
||||||
else
|
|
||||||
local flowers_table
|
|
||||||
if mg_name == "v6" then
|
|
||||||
flowers_table = flowers_table_plains
|
|
||||||
else
|
|
||||||
local biome = minetest.get_biome_name(minetest.get_biome_data(pos).biome)
|
|
||||||
if biome == "Swampland" or biome == "Swampland_shore" or biome == "Swampland_ocean" or biome == "Swampland_deep_ocean" or biome == "Swampland_underground" then
|
|
||||||
flowers_table = flowers_table_swampland
|
|
||||||
elseif biome == "FlowerForest" or biome == "FlowerForest_beach" or biome == "FlowerForest_ocean" or biome == "FlowerForest_deep_ocean" or biome == "FlowerForest_underground" then
|
|
||||||
flowers_table = flowers_table_flower_forest
|
|
||||||
elseif biome == "Plains" or biome == "Plains_beach" or biome == "Plains_ocean" or biome == "Plains_deep_ocean" or biome == "Plains_underground" or biome == "SunflowerPlains" or biome == "SunflowerPlains_ocean" or biome == "SunflowerPlains_deep_ocean" or biome == "SunflowerPlains_underground" then
|
|
||||||
flowers_table = flowers_table_plains
|
|
||||||
else
|
|
||||||
flowers_table = flowers_table_simple
|
|
||||||
end
|
|
||||||
end
|
|
||||||
minetest.add_node(pos, {name=flowers_table[math.random(1, #flowers_table)]})
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return true
|
|
||||||
|
|
||||||
-- Double flowers: Drop corresponding item
|
|
||||||
elseif n.name == "mcl_flowers:rose_bush" or n.name == "mcl_flowers:rose_bush_top" then
|
|
||||||
mcl_dye.add_bone_meal_particle(pos)
|
|
||||||
minetest.add_item(pos, "mcl_flowers:rose_bush")
|
|
||||||
return true
|
|
||||||
elseif n.name == "mcl_flowers:peony" or n.name == "mcl_flowers:peony_top" then
|
|
||||||
mcl_dye.add_bone_meal_particle(pos)
|
|
||||||
minetest.add_item(pos, "mcl_flowers:peony")
|
|
||||||
return true
|
|
||||||
elseif n.name == "mcl_flowers:lilac" or n.name == "mcl_flowers:lilac_top" then
|
|
||||||
mcl_dye.add_bone_meal_particle(pos)
|
|
||||||
minetest.add_item(pos, "mcl_flowers:lilac")
|
|
||||||
return true
|
|
||||||
elseif n.name == "mcl_flowers:sunflower" or n.name == "mcl_flowers:sunflower_top" then
|
|
||||||
mcl_dye.add_bone_meal_particle(pos)
|
|
||||||
minetest.add_item(pos, "mcl_flowers:sunflower")
|
|
||||||
return true
|
|
||||||
|
|
||||||
elseif n.name == "mcl_flowers:tallgrass" then
|
|
||||||
mcl_dye.add_bone_meal_particle(pos)
|
|
||||||
-- Tall Grass: Grow into double tallgrass
|
|
||||||
local toppos = { x=pos.x, y=pos.y+1, z=pos.z }
|
|
||||||
local topnode = minetest.get_node(toppos)
|
|
||||||
if minetest.registered_nodes[topnode.name].buildable_to then
|
|
||||||
minetest.set_node(pos, { name = "mcl_flowers:double_grass", param2 = n.param2 })
|
|
||||||
minetest.set_node(toppos, { name = "mcl_flowers:double_grass_top", param2 = n.param2 })
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
|
|
||||||
elseif n.name == "mcl_flowers:fern" then
|
|
||||||
mcl_dye.add_bone_meal_particle(pos)
|
|
||||||
-- Fern: Grow into large fern
|
|
||||||
local toppos = { x=pos.x, y=pos.y+1, z=pos.z }
|
|
||||||
local topnode = minetest.get_node(toppos)
|
|
||||||
if minetest.registered_nodes[topnode.name].buildable_to then
|
|
||||||
minetest.set_node(pos, { name = "mcl_flowers:double_fern", param2 = n.param2 })
|
|
||||||
minetest.set_node(toppos, { name = "mcl_flowers:double_fern_top", param2 = n.param2 })
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
minetest.register_craftitem("mcl_dye:white", {
|
|
||||||
inventory_image = "mcl_dye_white.png",
|
|
||||||
description = S("Bone Meal"),
|
|
||||||
_tt_help = S("Speeds up plant growth"),
|
|
||||||
_doc_items_longdesc = S("Bone meal is a white dye and also useful as a fertilizer to speed up the growth of many plants."),
|
|
||||||
_doc_items_usagehelp = S("Rightclick a sheep to turn its wool white. Rightclick a plant to speed up its growth. Note that not all plants can be fertilized like this. When you rightclick a grass block, tall grass and flowers will grow all over the place."),
|
|
||||||
stack_max = 64,
|
|
||||||
groups = dyelocal.dyes[1][4],
|
|
||||||
on_place = function(itemstack, user, pointed_thing)
|
|
||||||
-- Use pointed node's on_rightclick function first, if present
|
|
||||||
local node = minetest.get_node(pointed_thing.under)
|
|
||||||
if user and not user:get_player_control().sneak then
|
|
||||||
if minetest.registered_nodes[node.name] and minetest.registered_nodes[node.name].on_rightclick then
|
|
||||||
return minetest.registered_nodes[node.name].on_rightclick(pointed_thing.under, node, user, itemstack) or itemstack
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Use the bone meal on the ground
|
|
||||||
if (apply_bone_meal(pointed_thing, user) and (not minetest.is_creative_enabled(user:get_player_name()))) then
|
|
||||||
itemstack:take_item()
|
|
||||||
end
|
|
||||||
return itemstack
|
|
||||||
end,
|
|
||||||
_on_dispense = function(stack, pos, droppos, dropnode, dropdir)
|
|
||||||
-- Apply bone meal, if possible
|
|
||||||
local pointed_thing
|
|
||||||
if dropnode.name == "air" then
|
|
||||||
pointed_thing = { above = droppos, under = { x=droppos.x, y=droppos.y-1, z=droppos.z } }
|
|
||||||
else
|
|
||||||
pointed_thing = { above = pos, under = droppos }
|
|
||||||
end
|
|
||||||
local success = apply_bone_meal(pointed_thing, nil)
|
|
||||||
if success then
|
|
||||||
stack:take_item()
|
|
||||||
end
|
|
||||||
return stack
|
|
||||||
end,
|
|
||||||
_dispense_into_walkable = true
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craftitem("mcl_dye:brown", {
|
|
||||||
inventory_image = "mcl_dye_brown.png",
|
|
||||||
_tt_help = S("Grows at the side of jungle trees"),
|
|
||||||
_doc_items_longdesc = S("Cocoa beans are a brown dye and can be used to plant cocoas."),
|
|
||||||
_doc_items_usagehelp = S("Rightclick a sheep to turn its wool brown. Rightclick on the side of a jungle tree trunk (Jungle Wood) to plant a young cocoa."),
|
|
||||||
description = S("Cocoa Beans"),
|
|
||||||
stack_max = 64,
|
|
||||||
groups = dyelocal.dyes[12][4],
|
|
||||||
on_place = function(itemstack, placer, pointed_thing)
|
|
||||||
return mcl_cocoas.place(itemstack, placer, pointed_thing, "mcl_cocoas:cocoa_1")
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Dye mixing
|
-- Dye mixing
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
|
@ -466,19 +170,16 @@ minetest.register_craft({
|
||||||
output = "mcl_dye:magenta 2",
|
output = "mcl_dye:magenta 2",
|
||||||
recipe = {"mcl_dye:violet", "mcl_dye:pink"},
|
recipe = {"mcl_dye:violet", "mcl_dye:pink"},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "shapeless",
|
type = "shapeless",
|
||||||
output = "mcl_dye:pink 2",
|
output = "mcl_dye:pink 2",
|
||||||
recipe = {"mcl_dye:red", "mcl_dye:white"},
|
recipe = {"mcl_dye:red", "mcl_dye:white"},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "shapeless",
|
type = "shapeless",
|
||||||
output = "mcl_dye:cyan 2",
|
output = "mcl_dye:cyan 2",
|
||||||
recipe = {"mcl_dye:blue", "mcl_dye:dark_green"},
|
recipe = {"mcl_dye:blue", "mcl_dye:dark_green"},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "shapeless",
|
type = "shapeless",
|
||||||
output = "mcl_dye:violet 2",
|
output = "mcl_dye:violet 2",
|
||||||
|
@ -491,6 +192,14 @@ minetest.register_craft({
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Dye creation
|
-- Dye creation
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "mcl_dye:black",
|
||||||
|
recipe = {{"mcl_mobitems:ink_sac"}},
|
||||||
|
})
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "mcl_dye:white",
|
||||||
|
recipe = {{"mcl_bone_meal:bone_meal"}},
|
||||||
|
})
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "mcl_dye:yellow",
|
output = "mcl_dye:yellow",
|
||||||
recipe = {{"mcl_flowers:dandelion"}},
|
recipe = {{"mcl_flowers:dandelion"}},
|
||||||
|
@ -499,6 +208,10 @@ minetest.register_craft({
|
||||||
output = "mcl_dye:yellow 2",
|
output = "mcl_dye:yellow 2",
|
||||||
recipe = {{"mcl_flowers:sunflower"}},
|
recipe = {{"mcl_flowers:sunflower"}},
|
||||||
})
|
})
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "mcl_dye:blue",
|
||||||
|
recipe = {{"mcl_core:lapis"}},
|
||||||
|
})
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "mcl_dye:lightblue",
|
output = "mcl_dye:lightblue",
|
||||||
recipe = {{"mcl_flowers:blue_orchid"}},
|
recipe = {{"mcl_flowers:blue_orchid"}},
|
||||||
|
@ -523,6 +236,10 @@ minetest.register_craft({
|
||||||
output = "mcl_dye:magenta 2",
|
output = "mcl_dye:magenta 2",
|
||||||
recipe = {{"mcl_flowers:lilac"}},
|
recipe = {{"mcl_flowers:lilac"}},
|
||||||
})
|
})
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "mcl_dye:brown",
|
||||||
|
recipe = {{"mcl_cocoas:cocoa_beans"}},
|
||||||
|
})
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "mcl_dye:orange",
|
output = "mcl_dye:orange",
|
||||||
recipe = {{"mcl_flowers:tulip_orange"}},
|
recipe = {{"mcl_flowers:tulip_orange"}},
|
||||||
|
@ -557,7 +274,3 @@ minetest.register_craft({
|
||||||
recipe = "mcl_core:cactus",
|
recipe = "mcl_core:cactus",
|
||||||
cooktime = 10,
|
cooktime = 10,
|
||||||
})
|
})
|
||||||
minetest.register_craft({
|
|
||||||
output = "mcl_dye:white 3",
|
|
||||||
recipe = {{"mcl_mobitems:bone"}},
|
|
||||||
})
|
|
||||||
|
|
|
@ -1,27 +1,19 @@
|
||||||
# textdomain: mcl_dye
|
# textdomain: mcl_dye
|
||||||
Bone Meal=Knochenmehl
|
White Dye=Weißer Farbstoff
|
||||||
Light Grey Dye=Hellgrauer Farbstoff
|
Light Grey Dye=Hellgrauer Farbstoff
|
||||||
Grey Dye=Grauer Farbstoff
|
Grey Dye=Grauer Farbstoff
|
||||||
Ink Sac=Tintenbeutel
|
Black Dye=Schwarzer Farbstoff
|
||||||
Purple Dye=Violetter Farbstoff
|
Purple Dye=Violetter Farbstoff
|
||||||
Lapis Lazuli=Lapislazuli
|
Blue Dye=Blaue Farbstoff
|
||||||
Light Blue Dye=Hellblauer Farbstoff
|
Light Blue Dye=Hellblauer Farbstoff
|
||||||
Cyan Dye=Türkiser Farbstoff
|
Cyan Dye=Türkiser Farbstoff
|
||||||
Cactus Green=Kaktusgrün
|
Cactus Green=Kaktusgrün
|
||||||
Lime Dye=Lindgrüner Farbstoff
|
Lime Dye=Lindgrüner Farbstoff
|
||||||
Dandelion Yellow=Löwenzahngelb
|
Dandelion Yellow=Löwenzahngelb
|
||||||
Cocoa Beans=Kakaobohnen
|
Brown Dye=Brauner Farbstoff
|
||||||
Orange Dye=Orange Farbstoff
|
Orange Dye=Orange Farbstoff
|
||||||
Rose Red=Rosenrot
|
Rose Red=Rosenrot
|
||||||
Magenta Dye=Magenta Farbstoff
|
Magenta Dye=Magenta Farbstoff
|
||||||
Pink Dye=Rosa Farbstoff
|
Pink Dye=Rosa Farbstoff
|
||||||
This item is a dye which is used for dyeing and crafting.=Dieser Gegenstand ist ein Farbstoff, der zum Einfärben und in der Herstellung benutzt werden kann.
|
This item is a dye which is used for dyeing and crafting.=Dieser Gegenstand ist ein Farbstoff, der zum Einfärben und in der Herstellung benutzt werden kann.
|
||||||
Rightclick on a sheep to dye its wool. Other things are dyed by crafting.=Rechtsklicken Sie auf ein Schaf, um seine Wolle zu färben. Andere Dinge werden mit der Fertigung eingefärbt.
|
Rightclick on a sheep to dye its wool. Other things are dyed by crafting.=Rechtsklicken Sie auf ein Schaf, um seine Wolle zu färben. Andere Dinge werden mit der Fertigung eingefärbt.
|
||||||
Bone Meal=Knochenmehl
|
|
||||||
Bone meal is a white dye and also useful as a fertilizer to speed up the growth of many plants.=Knochenmehl ist ein weißer Farbstoff und auch nützlich als Dünger, um das Wachstum vieler Pflanzen zu beschleunigen.
|
|
||||||
Rightclick a sheep to turn its wool white. Rightclick a plant to speed up its growth. Note that not all plants can be fertilized like this. When you rightclick a grass block, tall grass and flowers will grow all over the place.=Rechtsklicken Sie auf ein Schaf, um die Wolle weiß einzufärben. Rechtsklicken Sie auf eine Pflanze, um ihr Wachstum zu beschleunigen. Beachten Sie, dass nicht alle Pflanzen darauf ansprechen. Benutzen Sie es auf einem Grasblock, wächst viel hohes Gras und vielleicht auch ein paar Blumen.
|
|
||||||
Cocoa beans are a brown dye and can be used to plant cocoas.=Kakaobohnen sind ein brauner Farbstoff und werden benutzt, um Kakao anzupflanzen.
|
|
||||||
Rightclick a sheep to turn its wool brown. Rightclick on the side of a jungle tree trunk (Jungle Wood) to plant a young cocoa.=Rechtsklicken Sie auf ein Schaf, um die Wolle braun einzufärben. Rechtsklicken Sie an die Seite eines Dschungelbaumstamms (Dschungelholz), um eine junge Kakaoschote zu pflanzen.
|
|
||||||
Cocoa Beans=Kakaobohnen
|
|
||||||
Grows at the side of jungle trees=Wächst an der Seite von Dschungelbäumen
|
|
||||||
Speeds up plant growth=Beschleunigt Pflanzenwachstum
|
|
||||||
|
|
|
@ -1,25 +1,19 @@
|
||||||
# textdomain: mcl_dye
|
# textdomain: mcl_dye
|
||||||
Bone Meal=Harina de hueso
|
White Dye=Tinte blanca
|
||||||
Light Grey Dye=Tinte gris claro
|
Light Grey Dye=Tinte gris claro
|
||||||
Grey Dye=Tinte gris
|
Grey Dye=Tinte gris
|
||||||
Ink Sac=Saco de tinta
|
Black Dye=Tinte negro
|
||||||
Purple Dye=Tinte púrpura
|
Purple Dye=Tinte púrpura
|
||||||
Lapis Lazuli=Lapislázuli
|
Blue Dye=Tinte azul
|
||||||
Light Blue Dye=Tinte azul claro
|
Light Blue Dye=Tinte azul claro
|
||||||
Cyan Dye=Tinte cian
|
Cyan Dye=Tinte cian
|
||||||
Cactus Green=Tinte verde
|
Cactus Green=Tinte verde
|
||||||
Lime Dye=Tinte amarillo verdoso
|
Lime Dye=Tinte amarillo verdoso
|
||||||
Dandelion Yellow=Tinte amarillo
|
Dandelion Yellow=Tinte amarillo
|
||||||
Cocoa Beans=Granos de cacao
|
Brown Dye=Tinte marrón
|
||||||
Orange Dye=Tinte naranja
|
Orange Dye=Tinte naranja
|
||||||
Rose Red=Tinte rojo
|
Rose Red=Tinte rojo
|
||||||
Magenta Dye=Tinte magenta
|
Magenta Dye=Tinte magenta
|
||||||
Pink Dye=Tinte rosado
|
Pink Dye=Tinte rosado
|
||||||
This item is a dye which is used for dyeing and crafting.=Este artículo es un tinte que se utiliza para teñir y elaborar.
|
This item is a dye which is used for dyeing and crafting.=Este artículo es un tinte que se utiliza para teñir y elaborar.
|
||||||
Rightclick on a sheep to dye its wool. Other things are dyed by crafting.=Haga clic derecho sobre una oveja para teñir su lana. Otras cosas pueden ser teñidas mediante la elaboración.
|
Rightclick on a sheep to dye its wool. Other things are dyed by crafting.=Haga clic derecho sobre una oveja para teñir su lana. Otras cosas pueden ser teñidas mediante la elaboración.
|
||||||
Bone Meal=Harina de hueso
|
|
||||||
Bone meal is a white dye and also useful as a fertilizer to speed up the growth of many plants.=La harina de hueso es un tinte blanco y también es útil como fertilizante para acelerar el crecimiento de muchas plantas.
|
|
||||||
Rightclick a sheep to turn its wool white. Rightclick a plant to speed up its growth. Note that not all plants can be fertilized like this. When you rightclick a grass block, tall grass and flowers will grow all over the place.=RHaga clic derecho en una oveja para volver su lana blanca. Haga clic derecho en una planta para acelerar su crecimiento. Tenga en cuenta que no todas las plantas pueden ser fertilizadas de esta manera. Cuando haces clic derecho en un bloque de hierba, crecerán hierba alta y flores por todo el lugar.
|
|
||||||
Cocoa beans are a brown dye and can be used to plant cocoas.=Los granos de cacao son un tinte marrón y se pueden usar para plantar cacao.
|
|
||||||
Rightclick a sheep to turn its wool brown. Rightclick on the side of a jungle tree trunk (Jungle Wood) to plant a young cocoa.=Haga clic derecho en una oveja para convertir su lana en marrón. Haga clic derecho en el costado del tronco de un árbol de jungla para plantar un cacao joven.
|
|
||||||
Cocoa Beans=Granos de cacao
|
|
||||||
|
|
|
@ -1,27 +1,19 @@
|
||||||
# textdomain: mcl_dye
|
# textdomain: mcl_dye
|
||||||
Bone Meal=Poudre d'Os
|
White Dye=Teinture Blanche
|
||||||
Light Grey Dye=Teinture Gris Clair
|
Light Grey Dye=Teinture Gris Clair
|
||||||
Grey Dye=Teinture Gris
|
Grey Dye=Teinture Gris
|
||||||
Ink Sac=Poche d'Encre
|
Black Dye=Teinture Noire
|
||||||
Purple Dye=Teinture Violette
|
Purple Dye=Teinture Violette
|
||||||
Lapis Lazuli=Lapis Lazuli
|
Blue Dye=Teinture Bleu
|
||||||
Light Blue Dye=Teinture Bleu Clair
|
Light Blue Dye=Teinture Bleu Clair
|
||||||
Cyan Dye=Teinture Cyan
|
Cyan Dye=Teinture Cyan
|
||||||
Cactus Green=Cactus Vert
|
Cactus Green=Cactus Vert
|
||||||
Lime Dye=Teinture Vert Clair
|
Lime Dye=Teinture Vert Clair
|
||||||
Dandelion Yellow=Pissenlit Jaune
|
Dandelion Yellow=Pissenlit Jaune
|
||||||
Cocoa Beans=Fèves de Cacao
|
Brown Dye=Teinture Marron
|
||||||
Orange Dye=Teinture Orange
|
Orange Dye=Teinture Orange
|
||||||
Rose Red=Rose Rouge
|
Rose Red=Rose Rouge
|
||||||
Magenta Dye=Teinture Magenta
|
Magenta Dye=Teinture Magenta
|
||||||
Pink Dye=Teinture Rose
|
Pink Dye=Teinture Rose
|
||||||
This item is a dye which is used for dyeing and crafting.=Cet objet est un colorant utilisé pour la teinture et l'artisanat.
|
This item is a dye which is used for dyeing and crafting.=Cet objet est un colorant utilisé pour la teinture et l'artisanat.
|
||||||
Rightclick on a sheep to dye its wool. Other things are dyed by crafting.=Clic droit sur un mouton pour teindre sa laine. D'autres choses sont teintes par l'artisanat.
|
Rightclick on a sheep to dye its wool. Other things are dyed by crafting.=Clic droit sur un mouton pour teindre sa laine. D'autres choses sont teintes par l'artisanat.
|
||||||
Bone Meal=Farine d'Os
|
|
||||||
Bone meal is a white dye and also useful as a fertilizer to speed up the growth of many plants.=La farine d'os est une teinture blanche et également utile comme engrais pour accélérer la croissance de nombreuses plantes.
|
|
||||||
Rightclick a sheep to turn its wool white. Rightclick a plant to speed up its growth. Note that not all plants can be fertilized like this. When you rightclick a grass block, tall grass and flowers will grow all over the place.=Cliquez avec le bouton droit sur un mouton pour blanchir sa laine. Cliquez avec le bouton droit sur une plante pour accélérer sa croissance. Notez que toutes les plantes ne peuvent pas être fertilisées comme ça. Lorsque vous cliquez avec le bouton droit sur un bloc d'herbe, les hautes herbes et les fleurs poussent partout.
|
|
||||||
Cocoa beans are a brown dye and can be used to plant cocoas.=Les fèves de cacao ont une teinture brune et peuvent être utilisées pour planter du cacao.
|
|
||||||
Rightclick a sheep to turn its wool brown. Rightclick on the side of a jungle tree trunk (Jungle Wood) to plant a young cocoa.=Faites un clic droit sur un mouton pour brunir sa laine. Clic droit sur le côté d'un tronc d'arbre de la jungle (Bois Acajou) pour planter un jeune cacao.
|
|
||||||
Cocoa Beans=Fèves de Cacao
|
|
||||||
Grows at the side of jungle trees=Pousse à côté des arbres de la jungle
|
|
||||||
Speeds up plant growth=Accélère la croissance des plantes
|
|
||||||
|
|
|
@ -1,27 +1,19 @@
|
||||||
# textdomain: mcl_dye
|
# textdomain: mcl_dye
|
||||||
Bone Meal=Mączka kostna
|
White Dye=Biały farba
|
||||||
Light Grey Dye=Jasnoszara farba
|
Light Grey Dye=Jasnoszara farba
|
||||||
Grey Dye=Szara farba
|
Grey Dye=Szara farba
|
||||||
Ink Sac=Torbiel z atramentem
|
Black Dye=Czarny farba
|
||||||
Purple Dye=Fioletowa farba
|
Purple Dye=Fioletowa farba
|
||||||
Lapis Lazuli=Lazuryt
|
Blue Dye=Niebieska farba
|
||||||
Light Blue Dye=Jasnoniebieska farba
|
Light Blue Dye=Jasnoniebieska farba
|
||||||
Cyan Dye=Błękitna farba
|
Cyan Dye=Błękitna farba
|
||||||
Cactus Green=Kaktusowa zieleń
|
Cactus Green=Kaktusowa zieleń
|
||||||
Lime Dye=Jasnozielona farba
|
Lime Dye=Jasnozielona farba
|
||||||
Dandelion Yellow=Mleczowy żółty
|
Dandelion Yellow=Mleczowy żółty
|
||||||
Cocoa Beans=Ziarna kakaowe
|
Brown Dye=Brązowy farba
|
||||||
Orange Dye=Pomarańczowa farba
|
Orange Dye=Pomarańczowa farba
|
||||||
Rose Red=Różany czerwony
|
Rose Red=Różany czerwony
|
||||||
Magenta Dye=Karmazynowa farba
|
Magenta Dye=Karmazynowa farba
|
||||||
Pink Dye=Różowa farba
|
Pink Dye=Różowa farba
|
||||||
This item is a dye which is used for dyeing and crafting.=Ten przedmiot to farba wykorzystywana to farbowania i wytwarzania.
|
This item is a dye which is used for dyeing and crafting.=Ten przedmiot to farba wykorzystywana to farbowania i wytwarzania.
|
||||||
Rightclick on a sheep to dye its wool. Other things are dyed by crafting.=Kliknij prawym na owcę aby zafarbować jej wełnę. Inne rzeczy mogą być zafarbowane przy wytwarzaniu.
|
Rightclick on a sheep to dye its wool. Other things are dyed by crafting.=Kliknij prawym na owcę aby zafarbować jej wełnę. Inne rzeczy mogą być zafarbowane przy wytwarzaniu.
|
||||||
Bone Meal=Mączka kostna
|
|
||||||
Bone meal is a white dye and also useful as a fertilizer to speed up the growth of many plants.=Mączka kostna to biała farba i przydatny nawóz, który przyspiesza rośnięcie wielu roślin.
|
|
||||||
Rightclick a sheep to turn its wool white. Rightclick a plant to speed up its growth. Note that not all plants can be fertilized like this. When you rightclick a grass block, tall grass and flowers will grow all over the place.=Kliknij prawym na owcę, aby wybielić jej wełnę. Kliknij prawym na roślinę aby przyspieszyć jej wzrost. Zważ, że nie na wszystkie rośliny to tak działa. Gdy klikniesz prawym na blok trawy, wysoka trawa wyrośnie wokół.
|
|
||||||
Cocoa beans are a brown dye and can be used to plant cocoas.=Ziarna kakaowe mogą być wykorzystane do sadzenia kakao.
|
|
||||||
Rightclick a sheep to turn its wool brown. Rightclick on the side of a jungle tree trunk (Jungle Wood) to plant a young cocoa.=Naciśnij prawym aby zafarbować wełnę owcy na brązowo. Naciśnij prawym na boku tropikalnego pnia (Tropikalne drewno) aby zasadzić młode kakao.
|
|
||||||
Cocoa Beans=Ziarna kakaowe
|
|
||||||
Grows at the side of jungle trees=Rośnie na boku tropikalnych drzew
|
|
||||||
Speeds up plant growth=Przyspiesza wzrost roślin
|
|
||||||
|
|
|
@ -1,27 +1,19 @@
|
||||||
# textdomain: mcl_dye
|
# textdomain: mcl_dye
|
||||||
Bone Meal=Костная мука
|
White Dye=Белый краситель
|
||||||
Light Grey Dye=Светло-серый краситель
|
Light Grey Dye=Светло-серый краситель
|
||||||
Grey Dye=Серый краситель
|
Grey Dye=Серый краситель
|
||||||
Ink Sac=Чернильный мешок
|
Black Dye=Чёрный краситель
|
||||||
Purple Dye=Пурпурный краситель
|
Purple Dye=Пурпурный краситель
|
||||||
Lapis Lazuli=Ляпис-лазурь
|
Blue Dye=голубой краситель
|
||||||
Light Blue Dye=Светло-голубой краситель
|
Light Blue Dye=Светло-голубой краситель
|
||||||
Cyan Dye=Голубой краситель
|
Cyan Dye=Голубой краситель
|
||||||
Cactus Green=Зелень кактуса
|
Cactus Green=Зелень кактуса
|
||||||
Lime Dye=Зелёный лаймовый краситель
|
Lime Dye=Зелёный лаймовый краситель
|
||||||
Dandelion Yellow=Одуванчиковый жёлтый краситель
|
Dandelion Yellow=Одуванчиковый жёлтый краситель
|
||||||
Cocoa Beans=Какао-бобы
|
Brown Dye=Коричневый краситель
|
||||||
Orange Dye=Оранжевый краситель
|
Orange Dye=Оранжевый краситель
|
||||||
Rose Red=Экстракт красной розы
|
Rose Red=Экстракт красной розы
|
||||||
Magenta Dye=Фиолетовый краситель
|
Magenta Dye=Фиолетовый краситель
|
||||||
Pink Dye=Розовый краситель
|
Pink Dye=Розовый краситель
|
||||||
This item is a dye which is used for dyeing and crafting.=Это краситель, которые используется, чтобы окрашивать и крафтить.
|
This item is a dye which is used for dyeing and crafting.=Это краситель, которые используется, чтобы окрашивать и крафтить.
|
||||||
Rightclick on a sheep to dye its wool. Other things are dyed by crafting.=Кликните правой по овце, чтобы окрасить её шерсть. Остальные вещи окрашиваются путём крафтинга.
|
Rightclick on a sheep to dye its wool. Other things are dyed by crafting.=Кликните правой по овце, чтобы окрасить её шерсть. Остальные вещи окрашиваются путём крафтинга.
|
||||||
Bone Meal=Костная мука
|
|
||||||
Bone meal is a white dye and also useful as a fertilizer to speed up the growth of many plants.=Костная мука является белым красителем. Она также полезна в качестве удобрения, чтобы увеличить скорость роста многих растений.
|
|
||||||
Rightclick a sheep to turn its wool white. Rightclick a plant to speed up its growth. Note that not all plants can be fertilized like this. When you rightclick a grass block, tall grass and flowers will grow all over the place.=Кликните правой по овце, чтобы сделать её шерсть белой. Кликните правой по растению, чтобы ускорить его рост. Имейте в виду, что не все растения можно удобрять таким способом. Если вы кликнете по травяному блоку, то на этом месте вырастет высокая трава и цветы.
|
|
||||||
Cocoa beans are a brown dye and can be used to plant cocoas.=Какао-бобы являются коричневым красителем. Их также можно использовать, чтобы посадить какао.
|
|
||||||
Rightclick a sheep to turn its wool brown. Rightclick on the side of a jungle tree trunk (Jungle Wood) to plant a young cocoa.=Кликните правой по овце, чтобы сделать её шерсть коричневой. Кликните правой по боковой части ствола дерева джунглей, чтобы посадить молодое какао.
|
|
||||||
Cocoa Beans=Какао-бобы
|
|
||||||
Grows at the side of jungle trees=Растут на стволах деревьев джунглей
|
|
||||||
Speeds up plant growth=Ускоряет рост растений
|
|
||||||
|
|
|
@ -1,25 +1,19 @@
|
||||||
# textdomain: mcl_dye
|
# textdomain: mcl_dye
|
||||||
Bone Meal=骨粉
|
White Dye=白色染料
|
||||||
Light Grey Dye=淺灰色染料
|
Light Grey Dye=淺灰色染料
|
||||||
Grey Dye=灰色染料
|
Grey Dye=灰色染料
|
||||||
Ink Sac=墨囊
|
Black Dye=黑色染料
|
||||||
Purple Dye=紫色染料
|
Purple Dye=紫色染料
|
||||||
Lapis Lazuli=青金石
|
Blue Dye=藍色染料
|
||||||
Light Blue Dye=淺藍色染料
|
Light Blue Dye=淺藍色染料
|
||||||
Cyan Dye=青色染料
|
Cyan Dye=青色染料
|
||||||
Cactus Green=仙人掌綠
|
Cactus Green=仙人掌綠
|
||||||
Lime Dye=淺綠色染料
|
Lime Dye=淺綠色染料
|
||||||
Dandelion Yellow=蒲公英黃
|
Dandelion Yellow=蒲公英黃
|
||||||
Cocoa Beans=可可豆
|
Brown Dye=棕色染料
|
||||||
Orange Dye=橙色染料
|
Orange Dye=橙色染料
|
||||||
Rose Red=玫瑰紅
|
Rose Red=玫瑰紅
|
||||||
Magenta Dye=洋紅色染料
|
Magenta Dye=洋紅色染料
|
||||||
Pink Dye=粉紅色染料
|
Pink Dye=粉紅色染料
|
||||||
This item is a dye which is used for dyeing and crafting.=這個物品是一種用於染色和合成的染料。
|
This item is a dye which is used for dyeing and crafting.=這個物品是一種用於染色和合成的染料。
|
||||||
Rightclick on a sheep to dye its wool. Other things are dyed by crafting.=右鍵單擊綿羊以染它的毛。其他東西是通過合成染色的。
|
Rightclick on a sheep to dye its wool. Other things are dyed by crafting.=右鍵單擊綿羊以染它的毛。其他東西是通過合成染色的。
|
||||||
Bone meal is a white dye and also useful as a fertilizer to speed up the growth of many plants.=骨粉是一種白色染料,也可作為肥料,加速許多植物的生長。
|
|
||||||
Rightclick a sheep to turn its wool white. Rightclick a plant to speed up its growth. Note that not all plants can be fertilized like this. When you rightclick a grass block, tall grass and flowers will grow all over the place.=右鍵點擊一隻羊,使其羊毛變白。右鍵點擊一株植物以加快其生長速度。注意,不是所有的植物都能像這樣施肥。當你右鍵點擊一個草方時,高高的草和花會到處生長。
|
|
||||||
Cocoa beans are a brown dye and can be used to plant cocoas.=可可豆是一種棕色染料,也可用於種植可可。
|
|
||||||
Rightclick a sheep to turn its wool brown. Rightclick on the side of a jungle tree trunk (Jungle Wood) to plant a young cocoa.=右鍵點擊一隻羊,使其羊毛變成褐色。右鍵點擊叢林木的一側,可以種植一個可可。
|
|
||||||
Grows at the side of jungle trees=在叢林木側生長
|
|
||||||
Speeds up plant growth=加速植物生長
|
|
||||||
|
|
|
@ -1,27 +1,19 @@
|
||||||
# textdomain: mcl_dye
|
# textdomain: mcl_dye
|
||||||
Bone Meal=
|
White Dye=
|
||||||
Light Grey Dye=
|
Light Grey Dye=
|
||||||
Grey Dye=
|
Grey Dye=
|
||||||
Ink Sac=
|
Black Dye=
|
||||||
Purple Dye=
|
Purple Dye=
|
||||||
Lapis Lazuli=
|
Blue Dye=
|
||||||
Light Blue Dye=
|
Light Blue Dye=
|
||||||
Cyan Dye=
|
Cyan Dye=
|
||||||
Cactus Green=
|
Cactus Green=
|
||||||
Lime Dye=
|
Lime Dye=
|
||||||
Dandelion Yellow=
|
Dandelion Yellow=
|
||||||
Cocoa Beans=
|
Brown Dye=
|
||||||
Orange Dye=
|
Orange Dye=
|
||||||
Rose Red=
|
Rose Red=
|
||||||
Magenta Dye=
|
Magenta Dye=
|
||||||
Pink Dye=
|
Pink Dye=
|
||||||
This item is a dye which is used for dyeing and crafting.=
|
This item is a dye which is used for dyeing and crafting.=
|
||||||
Rightclick on a sheep to dye its wool. Other things are dyed by crafting.=
|
Rightclick on a sheep to dye its wool. Other things are dyed by crafting.=
|
||||||
Bone Meal=
|
|
||||||
Bone meal is a white dye and also useful as a fertilizer to speed up the growth of many plants.=
|
|
||||||
Rightclick a sheep to turn its wool white. Rightclick a plant to speed up its growth. Note that not all plants can be fertilized like this. When you rightclick a grass block, tall grass and flowers will grow all over the place.=
|
|
||||||
Cocoa beans are a brown dye and can be used to plant cocoas.=
|
|
||||||
Rightclick a sheep to turn its wool brown. Rightclick on the side of a jungle tree trunk (Jungle Wood) to plant a young cocoa.=
|
|
||||||
Cocoa Beans=
|
|
||||||
Grows at the side of jungle trees=
|
|
||||||
Speeds up plant growth=
|
|
||||||
|
|
|
@ -1,2 +1,3 @@
|
||||||
name = mcl_dye
|
name = mcl_dye
|
||||||
depends = mcl_core, mcl_flowers, mcl_mobitems, mcl_cocoas
|
description = Adds color to your world!
|
||||||
|
depends = mcl_bone_meal, mcl_cocoas
|
||||||
|
|
Before Width: | Height: | Size: 190 B After Width: | Height: | Size: 193 B |
Before Width: | Height: | Size: 169 B After Width: | Height: | Size: 193 B |
Before Width: | Height: | Size: 244 B After Width: | Height: | Size: 193 B |
Before Width: | Height: | Size: 205 B After Width: | Height: | Size: 205 B |
Before Width: | Height: | Size: 213 B After Width: | Height: | Size: 213 B |
Before Width: | Height: | Size: 213 B After Width: | Height: | Size: 213 B |
Before Width: | Height: | Size: 213 B After Width: | Height: | Size: 213 B |
Before Width: | Height: | Size: 213 B After Width: | Height: | Size: 213 B |
Before Width: | Height: | Size: 213 B After Width: | Height: | Size: 213 B |
Before Width: | Height: | Size: 213 B After Width: | Height: | Size: 213 B |
Before Width: | Height: | Size: 213 B After Width: | Height: | Size: 213 B |
Before Width: | Height: | Size: 213 B After Width: | Height: | Size: 213 B |
Before Width: | Height: | Size: 213 B After Width: | Height: | Size: 213 B |
Before Width: | Height: | Size: 213 B After Width: | Height: | Size: 213 B |
Before Width: | Height: | Size: 165 B After Width: | Height: | Size: 201 B |
Before Width: | Height: | Size: 213 B After Width: | Height: | Size: 213 B |
|
@ -520,7 +520,7 @@ function mcl_enchanting.show_enchanting_formspec(player)
|
||||||
local table_slots = mcl_enchanting.get_table_slots(player, itemstack, num_bookshelves)
|
local table_slots = mcl_enchanting.get_table_slots(player, itemstack, num_bookshelves)
|
||||||
for i, slot in ipairs(table_slots) do
|
for i, slot in ipairs(table_slots) do
|
||||||
any_enchantment = any_enchantment or slot
|
any_enchantment = any_enchantment or slot
|
||||||
local enough_lapis = inv:contains_item("enchanting_lapis", ItemStack({name = "mcl_dye:blue", count = i}))
|
local enough_lapis = inv:contains_item("enchanting_lapis", ItemStack({name = "mcl_core:lapis", count = i}))
|
||||||
local enough_levels = slot and slot.level_requirement <= player_levels
|
local enough_levels = slot and slot.level_requirement <= player_levels
|
||||||
local can_enchant = (slot and enough_lapis and enough_levels)
|
local can_enchant = (slot and enough_lapis and enough_levels)
|
||||||
local ending = (can_enchant and "" or "_off")
|
local ending = (can_enchant and "" or "_off")
|
||||||
|
@ -555,7 +555,7 @@ function mcl_enchanting.handle_formspec_fields(player, formname, fields)
|
||||||
local meta = player:get_meta()
|
local meta = player:get_meta()
|
||||||
local num_bookshelfes = meta:get_int("mcl_enchanting:num_bookshelves")
|
local num_bookshelfes = meta:get_int("mcl_enchanting:num_bookshelves")
|
||||||
local itemstack = inv:get_stack("enchanting_item", 1)
|
local itemstack = inv:get_stack("enchanting_item", 1)
|
||||||
local cost = ItemStack({name = "mcl_dye:blue", count = button_pressed})
|
local cost = ItemStack({name = "mcl_core:lapis", count = button_pressed})
|
||||||
if not inv:contains_item("enchanting_lapis", cost) then
|
if not inv:contains_item("enchanting_lapis", cost) then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
@ -607,7 +607,7 @@ function mcl_enchanting.allow_inventory_action(player, action, inventory, invent
|
||||||
if action == "move" then
|
if action == "move" then
|
||||||
local listname = inventory_info.to_list
|
local listname = inventory_info.to_list
|
||||||
local stack = inventory:get_stack(inventory_info.from_list, inventory_info.from_index)
|
local stack = inventory:get_stack(inventory_info.from_list, inventory_info.from_index)
|
||||||
if stack:get_name() == "mcl_dye:blue" and listname ~= "enchanting_item" then
|
if stack:get_name() == "mcl_core:lapis" and listname ~= "enchanting_item" then
|
||||||
local count = stack:get_count()
|
local count = stack:get_count()
|
||||||
local old_stack = inventory:get_stack("enchanting_lapis", 1)
|
local old_stack = inventory:get_stack("enchanting_lapis", 1)
|
||||||
if old_stack:get_name() ~= "" then
|
if old_stack:get_name() ~= "" then
|
||||||
|
@ -630,7 +630,7 @@ function mcl_enchanting.on_inventory_action(player, action, inventory, inventory
|
||||||
if action == "move" and inventory_info.to_list == "enchanting" then
|
if action == "move" and inventory_info.to_list == "enchanting" then
|
||||||
local stack = inventory:get_stack("enchanting", 1)
|
local stack = inventory:get_stack("enchanting", 1)
|
||||||
local result_list
|
local result_list
|
||||||
if stack:get_name() == "mcl_dye:blue" then
|
if stack:get_name() == "mcl_core:lapis" then
|
||||||
result_list = "enchanting_lapis"
|
result_list = "enchanting_lapis"
|
||||||
stack:add_item(inventory:get_stack("enchanting_lapis", 1))
|
stack:add_item(inventory:get_stack("enchanting_lapis", 1))
|
||||||
else
|
else
|
||||||
|
|
|
@ -13,8 +13,11 @@ minetest.register_craftitem("mcl_farming:beetroot_seeds", {
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("mcl_farming:beetroot_0", {
|
local size = {[0]=-5, -3, 2}
|
||||||
description = S("Premature Beetroot Plant (Stage 1)"),
|
|
||||||
|
for i = 0, 2 do
|
||||||
|
minetest.register_node("mcl_farming:beetroot_".. i, {
|
||||||
|
description = S("Premature Beetroot Plant (Stage ".. i + 1 ..")"),
|
||||||
_doc_items_longdesc = S("Beetroot plants are plants which grow on farmland under sunlight in 4 stages. On hydrated farmland, they grow a bit faster. They can be harvested at any time but will only yield a profit when mature."),
|
_doc_items_longdesc = S("Beetroot plants are plants which grow on farmland under sunlight in 4 stages. On hydrated farmland, they grow a bit faster. They can be harvested at any time but will only yield a profit when mature."),
|
||||||
_doc_items_entry_name = S("Premature Beetroot Plant"),
|
_doc_items_entry_name = S("Premature Beetroot Plant"),
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
|
@ -24,67 +27,30 @@ minetest.register_node("mcl_farming:beetroot_0", {
|
||||||
walkable = false,
|
walkable = false,
|
||||||
drawtype = "plantlike",
|
drawtype = "plantlike",
|
||||||
drop = "mcl_farming:beetroot_seeds",
|
drop = "mcl_farming:beetroot_seeds",
|
||||||
tiles = {"mcl_farming_beetroot_0.png"},
|
tiles = {"mcl_farming_beetroot_".. i ..".png"},
|
||||||
inventory_image = "mcl_farming_beetroot_0.png",
|
inventory_image = "mcl_farming_beetroot_".. i ..".png",
|
||||||
wield_image = "mcl_farming_beetroot_0.png",
|
wield_image = "mcl_farming_beetroot_".. i ..".png",
|
||||||
selection_box = {
|
selection_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {
|
fixed = { {-0.5, -0.5, -0.5, 0.5, size[i]/16, 0.5} },
|
||||||
{-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}
|
|
||||||
},
|
},
|
||||||
|
groups = {
|
||||||
|
dig_immediate=3, not_in_creative_inventory=1,
|
||||||
|
plant=1, attached_node=1, dig_by_water=1,
|
||||||
|
destroy_by_lava_flow=1,dig_by_piston=1
|
||||||
},
|
},
|
||||||
groups = {dig_immediate=3, not_in_creative_inventory=1,plant=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1},
|
|
||||||
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
|
||||||
_mcl_blast_resistance = 0,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_node("mcl_farming:beetroot_1", {
|
|
||||||
description = S("Premature Beetroot Plant (Stage 2)"),
|
|
||||||
_doc_items_create_entry = false,
|
|
||||||
paramtype = "light",
|
|
||||||
paramtype2 = "meshoptions",
|
|
||||||
sunlight_propagates = true,
|
|
||||||
place_param2 = 3,
|
|
||||||
walkable = false,
|
|
||||||
drawtype = "plantlike",
|
|
||||||
drop = "mcl_farming:beetroot_seeds",
|
|
||||||
tiles = {"mcl_farming_beetroot_1.png"},
|
|
||||||
inventory_image = "mcl_farming_beetroot_1.png",
|
|
||||||
wield_image = "mcl_farming_beetroot_1.png",
|
|
||||||
selection_box = {
|
|
||||||
type = "fixed",
|
|
||||||
fixed = {
|
|
||||||
{-0.5, -0.5, -0.5, 0.5, -3/16, 0.5}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
groups = {dig_immediate=3, not_in_creative_inventory=1,plant=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1},
|
|
||||||
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
|
||||||
_mcl_blast_resistance = 0,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_node("mcl_farming:beetroot_2", {
|
|
||||||
description = S("Premature Beetroot Plant (Stage 3)"),
|
|
||||||
_doc_items_create_entry = false,
|
|
||||||
paramtype = "light",
|
|
||||||
paramtype2 = "meshoptions",
|
|
||||||
sunlight_propagates = true,
|
|
||||||
place_param2 = 3,
|
|
||||||
walkable = false,
|
|
||||||
drawtype = "plantlike",
|
|
||||||
drop = "mcl_farming:beetroot_seeds",
|
|
||||||
tiles = {"mcl_farming_beetroot_2.png"},
|
|
||||||
inventory_image = "mcl_farming_beetroot_2.png",
|
|
||||||
wield_image = "mcl_farming_beetroot_2.png",
|
|
||||||
selection_box = {
|
|
||||||
type = "fixed",
|
|
||||||
fixed = {
|
|
||||||
{-0.5, -0.5, -0.5, 0.5, 2/16, 0.5}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
groups = {dig_immediate=3, not_in_creative_inventory=1,plant=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1},
|
|
||||||
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
||||||
_mcl_blast_resistance = 0,
|
_mcl_blast_resistance = 0,
|
||||||
|
_mcl_on_bonemealing = function(pointed_thing, placer)
|
||||||
|
local pos = pointed_thing.under
|
||||||
|
local n = minetest.get_node(pos)
|
||||||
|
-- 75% chance to advance to next stage
|
||||||
|
if math.random(1, 100) <= 75 then
|
||||||
|
return mcl_farming:grow_plant("plant_beetroot", pos, n, 1, true)
|
||||||
|
end
|
||||||
|
end
|
||||||
})
|
})
|
||||||
|
end
|
||||||
|
|
||||||
minetest.register_node("mcl_farming:beetroot", {
|
minetest.register_node("mcl_farming:beetroot", {
|
||||||
description = S("Mature Beetroot Plant"),
|
description = S("Mature Beetroot Plant"),
|
||||||
|
|
|
@ -45,6 +45,12 @@ for i=1, 7 do
|
||||||
groups = {dig_immediate=3, not_in_creative_inventory=1,plant=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1},
|
groups = {dig_immediate=3, not_in_creative_inventory=1,plant=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1},
|
||||||
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
||||||
_mcl_blast_resistance = 0,
|
_mcl_blast_resistance = 0,
|
||||||
|
_mcl_on_bonemealing = function(pointed_thing, placer)
|
||||||
|
local pos = pointed_thing.under
|
||||||
|
local n = minetest.get_node(pos)
|
||||||
|
local stages = math.random(2, 5)
|
||||||
|
return mcl_farming:grow_plant("plant_carrot", pos, n, stages, true)
|
||||||
|
end
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -109,6 +109,12 @@ for s=1,7 do
|
||||||
groups = {dig_immediate=3, not_in_creative_inventory=1, plant=1,attached_node=1, dig_by_water=1,destroy_by_lava_flow=1, plant_melon_stem=s},
|
groups = {dig_immediate=3, not_in_creative_inventory=1, plant=1,attached_node=1, dig_by_water=1,destroy_by_lava_flow=1, plant_melon_stem=s},
|
||||||
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
||||||
_mcl_blast_resistance = 0,
|
_mcl_blast_resistance = 0,
|
||||||
|
_mcl_on_bonemealing = function(pointed_thing, placer)
|
||||||
|
local pos = pointed_thing.under
|
||||||
|
local n = minetest.get_node(pos)
|
||||||
|
local stages = math.random(2, 5)
|
||||||
|
return mcl_farming:grow_plant("plant_melon_stem", pos, n, stages, true)
|
||||||
|
end
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -49,6 +49,12 @@ for i=1, 7 do
|
||||||
groups = {dig_immediate=3, not_in_creative_inventory=1,plant=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1},
|
groups = {dig_immediate=3, not_in_creative_inventory=1,plant=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1},
|
||||||
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
||||||
_mcl_blast_resistance = 0,
|
_mcl_blast_resistance = 0,
|
||||||
|
_mcl_on_bonemealing = function(pointed_thing, placer)
|
||||||
|
local pos = pointed_thing.under
|
||||||
|
local n = minetest.get_node(pos)
|
||||||
|
local stages = math.random(2, 5)
|
||||||
|
return mcl_farming:grow_plant("plant_potato", pos, n, stages, true)
|
||||||
|
end
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -79,6 +79,12 @@ for s=1,7 do
|
||||||
groups = {dig_immediate=3, not_in_creative_inventory=1, plant=1,attached_node=1, dig_by_water=1,destroy_by_lava_flow=1,},
|
groups = {dig_immediate=3, not_in_creative_inventory=1, plant=1,attached_node=1, dig_by_water=1,destroy_by_lava_flow=1,},
|
||||||
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
||||||
_mcl_blast_resistance = 0,
|
_mcl_blast_resistance = 0,
|
||||||
|
_mcl_on_bonemealing = function(pointed_thing, placer)
|
||||||
|
local pos = pointed_thing.under
|
||||||
|
local n = minetest.get_node(pos)
|
||||||
|
local stages = math.random(2, 5)
|
||||||
|
return mcl_farming:grow_plant("plant_pumpkin_stem", pos, n, stages, true)
|
||||||
|
end
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -64,6 +64,12 @@ for i=1,7 do
|
||||||
dig_by_water=1,destroy_by_lava_flow=1, dig_by_piston=1},
|
dig_by_water=1,destroy_by_lava_flow=1, dig_by_piston=1},
|
||||||
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
||||||
_mcl_blast_resistance = 0,
|
_mcl_blast_resistance = 0,
|
||||||
|
_mcl_on_bonemealing = function(pointed_thing, placer)
|
||||||
|
local pos = pointed_thing.under
|
||||||
|
local n = minetest.get_node(pos)
|
||||||
|
local stages = math.random(2, 5)
|
||||||
|
return mcl_farming:grow_plant("plant_wheat", pos, n, stages, true)
|
||||||
|
end
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -117,7 +123,7 @@ minetest.register_craft({
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "mcl_farming:cookie 8",
|
output = "mcl_farming:cookie 8",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"mcl_farming:wheat_item", "mcl_dye:brown", "mcl_farming:wheat_item"},
|
{"mcl_farming:wheat_item", "mcl_cocoas:cocoa_beans", "mcl_farming:wheat_item"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -88,7 +88,7 @@ local fish = function(itemstack, player, pointed_thing)
|
||||||
{ itemstring = "mcl_mobitems:string", weight = 5 },
|
{ itemstring = "mcl_mobitems:string", weight = 5 },
|
||||||
{ itemstring = "mcl_potions:water", weight = 10 },
|
{ itemstring = "mcl_potions:water", weight = 10 },
|
||||||
{ itemstring = "mcl_mobitems:bone", weight = 10 },
|
{ itemstring = "mcl_mobitems:bone", weight = 10 },
|
||||||
{ itemstring = "mcl_dye:black", weight = 1, amount_min = 10, amount_max = 10 },
|
{ itemstring = "mcl_mobitems:ink_sac", weight = 1, amount_min = 10, amount_max = 10 },
|
||||||
{ itemstring = "mcl_mobitems:string", weight = 10 }, -- TODO: Tripwire Hook
|
{ itemstring = "mcl_mobitems:string", weight = 10 }, -- TODO: Tripwire Hook
|
||||||
},
|
},
|
||||||
stacks_min = 1,
|
stacks_min = 1,
|
||||||
|
|
|
@ -0,0 +1,135 @@
|
||||||
|
-- bonemealing grass nodes
|
||||||
|
--
|
||||||
|
-- When bonemealing "mcl_core:dirt_with_grass", it spawns grass and flowers
|
||||||
|
-- over a 7x7 patch of adjacent grassy nodes.
|
||||||
|
--
|
||||||
|
-- Because of potential dependency complications it is not advisable to add
|
||||||
|
-- callbacks to mcl_core that create dependencies on mods that depend on
|
||||||
|
-- mcl_core, such as mcl_flowers.
|
||||||
|
--
|
||||||
|
-- To work around this restriction, the bonemealing callback is defined here
|
||||||
|
-- and the _mcl_on_bonemealing callback in "mcl_core:dirt_with_grass" node
|
||||||
|
-- definition is overwritten with it.
|
||||||
|
|
||||||
|
local mg_name = minetest.get_mapgen_setting("mg_name")
|
||||||
|
|
||||||
|
local flowers_table_simple = {
|
||||||
|
"mcl_flowers:dandelion",
|
||||||
|
"mcl_flowers:poppy",
|
||||||
|
}
|
||||||
|
local flowers_table_plains = {
|
||||||
|
"mcl_flowers:dandelion",
|
||||||
|
"mcl_flowers:dandelion",
|
||||||
|
"mcl_flowers:poppy",
|
||||||
|
"mcl_flowers:oxeye_daisy",
|
||||||
|
"mcl_flowers:tulip_orange",
|
||||||
|
"mcl_flowers:tulip_red",
|
||||||
|
"mcl_flowers:tulip_white",
|
||||||
|
"mcl_flowers:tulip_pink",
|
||||||
|
"mcl_flowers:azure_bluet",
|
||||||
|
}
|
||||||
|
local flowers_table_swampland = {
|
||||||
|
"mcl_flowers:blue_orchid",
|
||||||
|
}
|
||||||
|
local flowers_table_flower_forest = {
|
||||||
|
"mcl_flowers:dandelion",
|
||||||
|
"mcl_flowers:poppy",
|
||||||
|
"mcl_flowers:oxeye_daisy",
|
||||||
|
"mcl_flowers:tulip_orange",
|
||||||
|
"mcl_flowers:tulip_red",
|
||||||
|
"mcl_flowers:tulip_white",
|
||||||
|
"mcl_flowers:tulip_pink",
|
||||||
|
"mcl_flowers:azure_bluet",
|
||||||
|
"mcl_flowers:allium",
|
||||||
|
}
|
||||||
|
|
||||||
|
local biome_flowers_tables = {
|
||||||
|
["Plains"] = flowers_table_plains,
|
||||||
|
["Plains_beach"] = flowers_table_plains,
|
||||||
|
["Plains_ocean"] = flowers_table_plains,
|
||||||
|
["Plains_deep_ocean"] = flowers_table_plains,
|
||||||
|
["Plains_underground"] = flowers_table_plains,
|
||||||
|
["SunflowerPlains"] = flowers_table_plains,
|
||||||
|
["SunflowerPlains_ocean"] = flowers_table_plains,
|
||||||
|
["SunflowerPlains_deep_ocean"] = flowers_table_plains,
|
||||||
|
["SunflowerPlains_underground"] = flowers_table_plains,
|
||||||
|
["Swampland"] = flowers_table_swampland,
|
||||||
|
["Swampland_shore"] = flowers_table_swampland,
|
||||||
|
["Swampland_ocean"] = flowers_table_swampland,
|
||||||
|
["Swampland_deep_ocean"] = flowers_table_swampland,
|
||||||
|
["Swampland_underground"] = flowers_table_swampland,
|
||||||
|
["FlowerForest"] = flowers_table_flower_forest,
|
||||||
|
["FlowerForest_beach"] = flowers_table_flower_forest,
|
||||||
|
["FlowerForest_ocean"] = flowers_table_flower_forest,
|
||||||
|
["FlowerForest_deep_ocean"] = flowers_table_flower_forest,
|
||||||
|
["FlowerForest_underground"] = flowers_table_flower_forest,
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Randomly generate flowers, tall grass or nothing
|
||||||
|
-- pos: node to place into
|
||||||
|
-- color: param2 value for tall grass
|
||||||
|
--
|
||||||
|
local function add_random_flower(pos, color)
|
||||||
|
-- 90% tall grass, 10% flower
|
||||||
|
local rnd = math.random(1,100)
|
||||||
|
if rnd <= 60 then
|
||||||
|
minetest.add_node(pos, {name="mcl_flowers:tallgrass", param2=color})
|
||||||
|
elseif rnd <= 80 then
|
||||||
|
-- double tallgrass
|
||||||
|
local toppos = vector.offset(pos, 0, 1, 0)
|
||||||
|
local topnode = minetest.get_node(toppos)
|
||||||
|
if minetest.registered_nodes[topnode.name].buildable_to then
|
||||||
|
minetest.set_node(pos, { name = "mcl_flowers:double_grass", param2 = color })
|
||||||
|
minetest.set_node(toppos, { name = "mcl_flowers:double_grass_top", param2 = color })
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
else
|
||||||
|
local flowers_table
|
||||||
|
if mg_name == "v6" then
|
||||||
|
flowers_table = flowers_table_plains
|
||||||
|
else
|
||||||
|
local biome = minetest.get_biome_name(minetest.get_biome_data(pos).biome)
|
||||||
|
flowers_table = biome_flowers_tables[biome] or flowers_table_simple
|
||||||
|
end
|
||||||
|
minetest.add_node(pos, {name=flowers_table[math.random(1, #flowers_table)]})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Generate tall grass and random flowers in a 7x7 area
|
||||||
|
-- Bonemealing callback handler for "mcl_core:dirt_with_grass"
|
||||||
|
--
|
||||||
|
local function bonemeal_grass(pointed_thing, placer)
|
||||||
|
local pos, below, r, color
|
||||||
|
for i = -7, 7 do for j = -7, 7 do for y = -1, 1 do
|
||||||
|
pos = vector.offset(pointed_thing.above, i, y, j)
|
||||||
|
if minetest.get_node(pos).name == "air" then
|
||||||
|
below = minetest.get_node(vector.offset(pos, 0, -1, 0))
|
||||||
|
r = ((math.abs(i) + math.abs(j)) / 2)
|
||||||
|
if (minetest.get_item_group(below.name, "grass_block_no_snow") == 1) and
|
||||||
|
math.random(1, 100) <= 90 / r then
|
||||||
|
color = below.param2
|
||||||
|
add_random_flower(pos, color)
|
||||||
|
if math.random(1,5) == 1 then
|
||||||
|
mcl_bone_meal.add_bone_meal_particle(pos)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end end end
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Override "mcl_core:dirt_with_grass" bonemealing handler.
|
||||||
|
local nodename = "mcl_core:dirt_with_grass"
|
||||||
|
local olddef = minetest.registered_nodes[nodename]
|
||||||
|
if not olddef then
|
||||||
|
minetest.log("warning", "'mcl_core:dirt_with_grass' not registered, cannot add override!")
|
||||||
|
else
|
||||||
|
local oldhandler = olddef._mcl_on_bonemealing
|
||||||
|
local newhandler = function (pointed_thing, placer)
|
||||||
|
bonemeal_grass(pointed_thing, placer)
|
||||||
|
if oldhandler then
|
||||||
|
oldhandler(pointed_thing, placer)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
minetest.override_item(nodename, {_mcl_on_bonemealing = newhandler})
|
||||||
|
end
|
|
@ -161,6 +161,18 @@ local def_tallgrass = {
|
||||||
_mcl_fortune_drop = fortune_wheat_seed_drop,
|
_mcl_fortune_drop = fortune_wheat_seed_drop,
|
||||||
node_placement_prediction = "",
|
node_placement_prediction = "",
|
||||||
on_place = on_place_flower,
|
on_place = on_place_flower,
|
||||||
|
_mcl_on_bonemealing = function(pointed_thing, placer)
|
||||||
|
local pos = pointed_thing.under
|
||||||
|
local n = minetest.get_node(pos)
|
||||||
|
-- Grow into double tallgrass
|
||||||
|
local toppos = vector.offset(pos, 0, 1, 0)
|
||||||
|
local topnode = minetest.get_node(toppos)
|
||||||
|
if minetest.registered_nodes[topnode.name].buildable_to then
|
||||||
|
minetest.set_node(pos, { name = "mcl_flowers:double_grass", param2 = n.param2 })
|
||||||
|
minetest.set_node(toppos, { name = "mcl_flowers:double_grass_top", param2 = n.param2 })
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end,
|
||||||
_mcl_blast_resistance = 0,
|
_mcl_blast_resistance = 0,
|
||||||
_mcl_hardness = 0,
|
_mcl_hardness = 0,
|
||||||
}
|
}
|
||||||
|
@ -179,6 +191,18 @@ def_fern.selection_box = {
|
||||||
fixed = { -6/16, -0.5, -6/16, 6/16, 5/16, 6/16 },
|
fixed = { -6/16, -0.5, -6/16, 6/16, 5/16, 6/16 },
|
||||||
}
|
}
|
||||||
def_fern.groups.compostability = 65
|
def_fern.groups.compostability = 65
|
||||||
|
def_fern._mcl_on_bonemealing = function(pointed_thing, placer)
|
||||||
|
local pos = pointed_thing.under
|
||||||
|
local n = minetest.get_node(pos)
|
||||||
|
-- Grow into double fern.
|
||||||
|
local toppos = vector.offset(pos, 0, 1, 0)
|
||||||
|
local topnode = minetest.get_node(toppos)
|
||||||
|
if minetest.registered_nodes[topnode.name].buildable_to then
|
||||||
|
minetest.set_node(pos, { name = "mcl_flowers:double_fern", param2 = n.param2 })
|
||||||
|
minetest.set_node(toppos, { name = "mcl_flowers:double_fern_top", param2 = n.param2 })
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
minetest.register_node("mcl_flowers:fern", def_fern)
|
minetest.register_node("mcl_flowers:fern", def_fern)
|
||||||
|
|
||||||
|
@ -208,10 +232,16 @@ local function add_large_plant(name, desc, longdesc, bottom_img, top_img, inv_im
|
||||||
if name == "double_grass" then
|
if name == "double_grass" then
|
||||||
bottom_groups.compostability = 50
|
bottom_groups.compostability = 50
|
||||||
end
|
end
|
||||||
|
local on_bonemealing
|
||||||
if is_flower then
|
if is_flower then
|
||||||
bottom_groups.flower = 1
|
bottom_groups.flower = 1
|
||||||
bottom_groups.place_flowerlike = 1
|
bottom_groups.place_flowerlike = 1
|
||||||
bottom_groups.dig_immediate = 3
|
bottom_groups.dig_immediate = 3
|
||||||
|
on_bonemealing = function(pointed_thing, placer)
|
||||||
|
local pos = pointed_thing.under
|
||||||
|
minetest.add_item(pos, "mcl_flowers:"..name)
|
||||||
|
return true
|
||||||
|
end
|
||||||
else
|
else
|
||||||
bottom_groups.place_flowerlike = 2
|
bottom_groups.place_flowerlike = 2
|
||||||
bottom_groups.handy = 1
|
bottom_groups.handy = 1
|
||||||
|
@ -329,6 +359,7 @@ local function add_large_plant(name, desc, longdesc, bottom_img, top_img, inv_im
|
||||||
minetest.remove_node(top)
|
minetest.remove_node(top)
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
|
_mcl_on_bonemealing = on_bonemealing,
|
||||||
groups = bottom_groups,
|
groups = bottom_groups,
|
||||||
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
||||||
})
|
})
|
||||||
|
@ -365,6 +396,7 @@ local function add_large_plant(name, desc, longdesc, bottom_img, top_img, inv_im
|
||||||
minetest.remove_node(bottom)
|
minetest.remove_node(bottom)
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
|
_mcl_on_bonemealing = on_bonemealing,
|
||||||
groups = top_groups,
|
groups = top_groups,
|
||||||
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
||||||
})
|
})
|
||||||
|
@ -519,3 +551,6 @@ if mod_mcimport and mg_name == "singlenode" and fix_doubleplants == true then
|
||||||
end
|
end
|
||||||
|
|
||||||
dofile(modpath.."/register.lua")
|
dofile(modpath.."/register.lua")
|
||||||
|
|
||||||
|
-- Bonemealing handler and override for "mcl_core:dirt_with_grass":
|
||||||
|
dofile(modpath.."/bonemealing.lua")
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
name=mcl_flowers
|
name=mcl_flowers
|
||||||
depends=mcl_core, mcl_util, mcl_sounds
|
depends=mcl_core, mcl_util, mcl_sounds, mcl_bone_meal
|
||||||
optional_depends=screwdriver, doc, mcl_flowerpots
|
optional_depends=screwdriver, doc, mcl_flowerpots
|
|
@ -181,6 +181,14 @@ minetest.register_craftitem("mcl_mobitems:bone", {
|
||||||
_mcl_toollike_wield = true,
|
_mcl_toollike_wield = true,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
minetest.register_craftitem("mcl_mobitems:ink_sac", {
|
||||||
|
description = S("Squid Ink Sac"),
|
||||||
|
_doc_items_longdesc = S("This item is dropped by dead squids. Ink sacs can be used as an ingredient to craft book and quill or black dye."),
|
||||||
|
inventory_image = "mcl_mobitems_ink_sac.png",
|
||||||
|
stack_max = 64,
|
||||||
|
groups = { craftitem = 1 },
|
||||||
|
})
|
||||||
|
|
||||||
minetest.register_craftitem("mcl_mobitems:string",{
|
minetest.register_craftitem("mcl_mobitems:string",{
|
||||||
description = S("String"),
|
description = S("String"),
|
||||||
_doc_items_longdesc = S("Strings are used in crafting."),
|
_doc_items_longdesc = S("Strings are used in crafting."),
|
||||||
|
|
|
@ -52,6 +52,9 @@ Bones can be used to tame wolves so they will protect you. They are also useful
|
||||||
|
|
||||||
Wield the bone near wolves to attract them. Use the “Place” key on the wolf to give it a bone and tame it. You can then give commands to the tamed wolf by using the “Place” key on it.=Halten Sie den Knochen in der Nähe von Wölfen, um sie anzulocken. Benutzen Sie die „Platzieren“-Taste auf dem Wolf, um ihm den Knochen zu geben und ihn zu zähmen. Sie können dem gezähmten Wolf Befehle erteilen, indem Sie die „Platzieren“-Taste auf ihm benutzen.
|
Wield the bone near wolves to attract them. Use the “Place” key on the wolf to give it a bone and tame it. You can then give commands to the tamed wolf by using the “Place” key on it.=Halten Sie den Knochen in der Nähe von Wölfen, um sie anzulocken. Benutzen Sie die „Platzieren“-Taste auf dem Wolf, um ihm den Knochen zu geben und ihn zu zähmen. Sie können dem gezähmten Wolf Befehle erteilen, indem Sie die „Platzieren“-Taste auf ihm benutzen.
|
||||||
|
|
||||||
|
Squid Ink Sac=Tintenbeutel
|
||||||
|
This item is dropped by dead squids. Ink sacs can be used to as an ingredient to craft book and quill or black dye.=Dieser Gegenstand wird von toten Tintenfischen abgeworfen. Tintenbeutel können als Zutat zum Herstellen von Büchern und Federn oder schwarzen Farbstoff verwendet werden.
|
||||||
|
|
||||||
String=Faden
|
String=Faden
|
||||||
Strings are used in crafting.=Fäden sind nützlich in der Fertigung.
|
Strings are used in crafting.=Fäden sind nützlich in der Fertigung.
|
||||||
Blaze Rod=Lohenrute
|
Blaze Rod=Lohenrute
|
||||||
|
|
|
@ -52,6 +52,9 @@ Bones can be used to tame wolves so they will protect you. They are also useful
|
||||||
|
|
||||||
Wield the bone near wolves to attract them. Use the “Place” key on the wolf to give it a bone and tame it. You can then give commands to the tamed wolf by using the “Place” key on it.=Empuña el hueso cerca de los lobos para atraerlos. Usa la tecla "Colocar" en el lobo para darle un hueso y domesticarlo. Luego puede dar órdenes al lobo domesticado utilizando la tecla "Colocar".
|
Wield the bone near wolves to attract them. Use the “Place” key on the wolf to give it a bone and tame it. You can then give commands to the tamed wolf by using the “Place” key on it.=Empuña el hueso cerca de los lobos para atraerlos. Usa la tecla "Colocar" en el lobo para darle un hueso y domesticarlo. Luego puede dar órdenes al lobo domesticado utilizando la tecla "Colocar".
|
||||||
|
|
||||||
|
Squid Ink Sac=Saco de tinta
|
||||||
|
This item is dropped by dead squids. Ink sacs can be used to as an ingredient to craft book and quill or black dye.=Este objeto lo sueltan los calamares muertos. Los sacos de tinta se pueden usar como ingrediente para crear libros y plumas o tinte negro.
|
||||||
|
|
||||||
String=Cuerda
|
String=Cuerda
|
||||||
Strings are used in crafting.=Las cuerdas se usan en la elaboración.
|
Strings are used in crafting.=Las cuerdas se usan en la elaboración.
|
||||||
Blaze Rod=Vara de blaze
|
Blaze Rod=Vara de blaze
|
||||||
|
|
|
@ -52,6 +52,9 @@ Bones can be used to tame wolves so they will protect you. They are also useful
|
||||||
|
|
||||||
Wield the bone near wolves to attract them. Use the “Place” key on the wolf to give it a bone and tame it. You can then give commands to the tamed wolf by using the “Place” key on it.=Maniez l'os près des loups pour les attirer. Utilisez la touche «Placer» sur le loup pour lui donner un os et l'apprivoiser. Vous pouvez ensuite donner des commandes au loup apprivoisé en utilisant la touche "Placer" sur celui-ci.
|
Wield the bone near wolves to attract them. Use the “Place” key on the wolf to give it a bone and tame it. You can then give commands to the tamed wolf by using the “Place” key on it.=Maniez l'os près des loups pour les attirer. Utilisez la touche «Placer» sur le loup pour lui donner un os et l'apprivoiser. Vous pouvez ensuite donner des commandes au loup apprivoisé en utilisant la touche "Placer" sur celui-ci.
|
||||||
|
|
||||||
|
Squid Ink Sac=Poche d'encre
|
||||||
|
This item is dropped by dead squids. Ink sacs can be used to as an ingredient to craft book and quill or black dye.=Cet objet est lâché par les calmars morts. Les poches d'encre peuvent être utilisés comme ingrédient pour fabriquer des livres vierges ou de la teinture noire.
|
||||||
|
|
||||||
String=Ficelle
|
String=Ficelle
|
||||||
Strings are used in crafting.=Les ficelles sont utilisées dans l'artisanat.
|
Strings are used in crafting.=Les ficelles sont utilisées dans l'artisanat.
|
||||||
Blaze Rod=Bâton de Blaze
|
Blaze Rod=Bâton de Blaze
|
||||||
|
|
|
@ -53,6 +53,9 @@ Bones can be used to tame wolves so they will protect you. They are also useful
|
||||||
|
|
||||||
Wield the bone near wolves to attract them. Use the “Place” key on the wolf to give it a bone and tame it. You can then give commands to the tamed wolf by using the “Place” key on it.=Trzymaj kość w pobliżu wilków aby je zwabić. Użyj przycisku "Umieść" na wilku aby dać mu kość i go oswoić. Możesz wtedy wydawać polecenia oswojonemu wilkowi klikając przycisk "Umieść" na nim.
|
Wield the bone near wolves to attract them. Use the “Place” key on the wolf to give it a bone and tame it. You can then give commands to the tamed wolf by using the “Place” key on it.=Trzymaj kość w pobliżu wilków aby je zwabić. Użyj przycisku "Umieść" na wilku aby dać mu kość i go oswoić. Możesz wtedy wydawać polecenia oswojonemu wilkowi klikając przycisk "Umieść" na nim.
|
||||||
|
|
||||||
|
Squid Ink Sac=Torbiel z atramentem
|
||||||
|
This item is dropped by dead squids. Ink sacs can be used to as an ingredient to craft book and quill or black dye.=Ten przedmiot wypada z martwych kałamarnic. Torbiel z atramentem może być używany jako składnik do tworzenia książek i piór lub czarnego barwnika.
|
||||||
|
|
||||||
String=Nić
|
String=Nić
|
||||||
Strings are used in crafting.=Nić jest użyteczna w wytwarzaniu.
|
Strings are used in crafting.=Nić jest użyteczna w wytwarzaniu.
|
||||||
Blaze Rod=Płomienna różdżka
|
Blaze Rod=Płomienna różdżka
|
||||||
|
|
|
@ -52,6 +52,9 @@ Bones can be used to tame wolves so they will protect you. They are also useful
|
||||||
|
|
||||||
Wield the bone near wolves to attract them. Use the “Place” key on the wolf to give it a bone and tame it. You can then give commands to the tamed wolf by using the “Place” key on it.=Положите кость рядом с волками, чтобы привлечь их. Используйте клавишу “Разместить” на волке, чтобы дать ему кость и приручить его. Вы можете командовать приручёнными волками с помощью клавиши “Разместить”.
|
Wield the bone near wolves to attract them. Use the “Place” key on the wolf to give it a bone and tame it. You can then give commands to the tamed wolf by using the “Place” key on it.=Положите кость рядом с волками, чтобы привлечь их. Используйте клавишу “Разместить” на волке, чтобы дать ему кость и приручить его. Вы можете командовать приручёнными волками с помощью клавиши “Разместить”.
|
||||||
|
|
||||||
|
Squid Ink Sac=Чернильный мешок
|
||||||
|
This item is dropped by dead squids. Ink sacs can be used to as an ingredient to craft book and quill or black dye.=Этот предмет выпадает из мертвых кальмаров. Чернильные мешочки можно использовать в качестве ингредиента для изготовления книги и пера или черной краски.
|
||||||
|
|
||||||
String=Нити
|
String=Нити
|
||||||
Strings are used in crafting.=Нити используются для крафтинга
|
Strings are used in crafting.=Нити используются для крафтинга
|
||||||
Blaze Rod=Огненный стержень
|
Blaze Rod=Огненный стержень
|
||||||
|
|
|
@ -52,6 +52,9 @@ Bones can be used to tame wolves so they will protect you. They are also useful
|
||||||
|
|
||||||
Wield the bone near wolves to attract them. Use the “Place” key on the wolf to give it a bone and tame it. You can then give commands to the tamed wolf by using the “Place” key on it.=
|
Wield the bone near wolves to attract them. Use the “Place” key on the wolf to give it a bone and tame it. You can then give commands to the tamed wolf by using the “Place” key on it.=
|
||||||
|
|
||||||
|
Squid Ink Sac=
|
||||||
|
This item is dropped by dead squids. Ink sacs can be used as an ingredient to craft book and quill or black dye.=
|
||||||
|
|
||||||
String=
|
String=
|
||||||
Strings are used in crafting.=
|
Strings are used in crafting.=
|
||||||
Blaze Rod=
|
Blaze Rod=
|
||||||
|
|
After Width: | Height: | Size: 190 B |
|
@ -1,5 +1,8 @@
|
||||||
local S = minetest.get_translator(minetest.get_current_modname())
|
local S = minetest.get_translator(minetest.get_current_modname())
|
||||||
|
|
||||||
|
local modpath = minetest.get_modpath(minetest.get_current_modname())
|
||||||
|
local schempath = modpath .. "/schematics/"
|
||||||
|
|
||||||
local on_place = mcl_util.generate_on_place_plant_function(function(place_pos, place_node)
|
local on_place = mcl_util.generate_on_place_plant_function(function(place_pos, place_node)
|
||||||
local soil_node = minetest.get_node_or_nil({x=place_pos.x, y=place_pos.y-1, z=place_pos.z})
|
local soil_node = minetest.get_node_or_nil({x=place_pos.x, y=place_pos.y-1, z=place_pos.z})
|
||||||
if not soil_node then return false end
|
if not soil_node then return false end
|
||||||
|
@ -16,6 +19,40 @@ local on_place = mcl_util.generate_on_place_plant_function(function(place_pos, p
|
||||||
return ((snn == "mcl_core:podzol" or snn == "mcl_core:podzol_snow" or snn == "mcl_core:mycelium" or snn == "mcl_core:mycelium_snow") or (light_ok and minetest.get_item_group(snn, "solid") == 1 and minetest.get_item_group(snn, "opaque") == 1))
|
return ((snn == "mcl_core:podzol" or snn == "mcl_core:podzol_snow" or snn == "mcl_core:mycelium" or snn == "mcl_core:mycelium_snow") or (light_ok and minetest.get_item_group(snn, "solid") == 1 and minetest.get_item_group(snn, "opaque") == 1))
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
-- Try to grow huge mushroom
|
||||||
|
local function apply_bonemeal(pos, schematic, offset)
|
||||||
|
-- Must be on a dirt-type block
|
||||||
|
local below = minetest.get_node(vector.offset(pos, 0, -1, 0))
|
||||||
|
if minetest.get_item_group(below.name, "grass_block") ~= 1
|
||||||
|
and below.name ~= "mcl_core:mycelium"
|
||||||
|
and below.name ~= "mcl_core:dirt"
|
||||||
|
and below.name ~= "mcl_core:coarse_dirt"
|
||||||
|
and below.name ~= "mcl_core:podzol" then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
-- 40% chance
|
||||||
|
if math.random(1, 100) <= 40 then
|
||||||
|
-- Check space requirements
|
||||||
|
for i= 1, 3 do
|
||||||
|
local cpos = vector.offset(pos, 0, i, 0)
|
||||||
|
if minetest.get_node(cpos).name ~= "air" then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
local minp = vector.offset(pos, -3, 3, -3)
|
||||||
|
local maxp = vector.offset(pos, 3, 8, 3)
|
||||||
|
local diff = vector.subtract(maxp, minp)
|
||||||
|
local goodnodes = minetest.find_nodes_in_area(minp, maxp, {"air", "group:leaves"})
|
||||||
|
if #goodnodes < (diff.x + 1) * (diff.y + 1) * (diff.z + 1) then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
-- Place the huge mushroom
|
||||||
|
minetest.remove_node(pos)
|
||||||
|
return minetest.place_schematic(pos + offset, schematic, 0, nil, false)
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
local longdesc_intro_brown = S("Brown mushrooms are fungi which grow and spread in darkness, but are sensitive to light. They are inedible as such, but they can be used to craft food items.")
|
local longdesc_intro_brown = S("Brown mushrooms are fungi which grow and spread in darkness, but are sensitive to light. They are inedible as such, but they can be used to craft food items.")
|
||||||
local longdesc_intro_red = S("Red mushrooms are fungi which grow and spread in darkness, but are sensitive to light. They are inedible as such, but they can be used to craft food items.")
|
local longdesc_intro_red = S("Red mushrooms are fungi which grow and spread in darkness, but are sensitive to light. They are inedible as such, but they can be used to craft food items.")
|
||||||
|
|
||||||
|
@ -51,6 +88,11 @@ minetest.register_node("mcl_mushrooms:mushroom_brown", {
|
||||||
},
|
},
|
||||||
node_placement_prediction = "",
|
node_placement_prediction = "",
|
||||||
on_place = on_place,
|
on_place = on_place,
|
||||||
|
_mcl_on_bonemealing = function(pointed_thing, placer)
|
||||||
|
local schematic = schempath .. "mcl_mushrooms_huge_brown.mts"
|
||||||
|
local offset = vector.new(-3, -1, -3)
|
||||||
|
return apply_bonemeal(pointed_thing.under, schematic, offset)
|
||||||
|
end,
|
||||||
_mcl_blast_resistance = 0,
|
_mcl_blast_resistance = 0,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -78,6 +120,11 @@ minetest.register_node("mcl_mushrooms:mushroom_red", {
|
||||||
},
|
},
|
||||||
node_placement_prediction = "",
|
node_placement_prediction = "",
|
||||||
on_place = on_place,
|
on_place = on_place,
|
||||||
|
_mcl_on_bonemealing = function(pointed_thing, placer)
|
||||||
|
local schematic = schempath .. "mcl_mushrooms_huge_red.mts"
|
||||||
|
local offset = vector.new(-2, -1, -2)
|
||||||
|
return apply_bonemeal(pointed_thing.under, schematic, offset)
|
||||||
|
end,
|
||||||
_mcl_blast_resistance = 0,
|
_mcl_blast_resistance = 0,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -84,7 +84,7 @@ function tsm_railcorridors.get_treasures(pr)
|
||||||
{ itemstring = "mcl_farming:melon_seeds", weight = 10, amount_min = 2, amount_max = 4 },
|
{ itemstring = "mcl_farming:melon_seeds", weight = 10, amount_min = 2, amount_max = 4 },
|
||||||
{ itemstring = "mcl_farming:pumpkin_seeds", weight = 10, amount_min = 2, amount_max = 4 },
|
{ itemstring = "mcl_farming:pumpkin_seeds", weight = 10, amount_min = 2, amount_max = 4 },
|
||||||
{ itemstring = "mcl_core:iron_ingot", weight = 10, amount_min = 1, amount_max = 5 },
|
{ itemstring = "mcl_core:iron_ingot", weight = 10, amount_min = 1, amount_max = 5 },
|
||||||
{ itemstring = "mcl_dye:blue", weight = 5, amount_min = 4, amount_max = 9 },
|
{ itemstring = "mcl_core:lapis", weight = 5, amount_min = 4, amount_max = 9 },
|
||||||
{ itemstring = "mesecons:redstone", weight = 5, amount_min = 4, amount_max = 9 },
|
{ itemstring = "mesecons:redstone", weight = 5, amount_min = 4, amount_max = 9 },
|
||||||
{ itemstring = "mcl_core:gold_ingot", weight = 5, amount_min = 1, amount_max = 3 },
|
{ itemstring = "mcl_core:gold_ingot", weight = 5, amount_min = 1, amount_max = 3 },
|
||||||
{ itemstring = "mcl_core:diamond", weight = 3, amount_min = 1, amount_max = 2 },
|
{ itemstring = "mcl_core:diamond", weight = 3, amount_min = 1, amount_max = 2 },
|
||||||
|
|