Merge branch 'master' into fix_v6_sky_color
|
@ -95,6 +95,7 @@
|
||||||
* anarquimico
|
* anarquimico
|
||||||
* TheOnlyJoeEnderman
|
* TheOnlyJoeEnderman
|
||||||
* Ranko Saotome
|
* Ranko Saotome
|
||||||
|
* Gregor Parzefall
|
||||||
|
|
||||||
## MineClone5
|
## MineClone5
|
||||||
* kay27
|
* kay27
|
||||||
|
|
|
@ -11,42 +11,22 @@ Creative Commons Attribution 3.0 Unported (CC BY-SA 3.0)
|
||||||
http://creativecommons.org/licenses/by/3.0/
|
http://creativecommons.org/licenses/by/3.0/
|
||||||
|
|
||||||
Glass breaking sounds (CC BY 3.0):
|
Glass breaking sounds (CC BY 3.0):
|
||||||
1: http://www.freesound.org/people/cmusounddesign/sounds/71947/
|
1: http://www.freesound.org/people/cmusounddesign/sounds/71947/
|
||||||
2: http://www.freesound.org/people/Tomlija/sounds/97669/
|
2: http://www.freesound.org/people/Tomlija/sounds/97669/
|
||||||
3: http://www.freesound.org/people/lsprice/sounds/88808/
|
3: http://www.freesound.org/people/lsprice/sounds/88808/
|
||||||
|
|
||||||
default_tool_breaks.ogg by EdgardEdition (CC BY 3.0), http://www.freesound.org/people/EdgardEdition
|
default_tool_breaks.ogg by EdgardEdition (CC BY 3.0), http://www.freesound.org/people/EdgardEdition
|
||||||
|
|
||||||
Mito551 (sounds) (CC BY-SA 3.0):
|
Mito551 (sounds) (CC BY-SA 3.0):
|
||||||
default_dig_choppy.ogg
|
default_dig_crumbly.ogg
|
||||||
default_dig_cracky.ogg
|
|
||||||
default_dig_crumbly.1.ogg
|
|
||||||
default_dig_crumbly.2.ogg
|
|
||||||
default_dig_oddly_breakable_by_hand.ogg
|
default_dig_oddly_breakable_by_hand.ogg
|
||||||
default_dug_node.1.ogg
|
default_dug_node.*.ogg
|
||||||
default_dug_node.2.ogg
|
default_grass_footstep.*.ogg
|
||||||
default_grass_footstep.1.ogg
|
default_gravel_footstep.*.ogg
|
||||||
default_grass_footstep.2.ogg
|
default_place_node.*.ogg
|
||||||
default_grass_footstep.3.ogg
|
default_place_node_hard.*.ogg
|
||||||
default_gravel_footstep.1.ogg
|
default_wood_footstep.*.ogg
|
||||||
default_gravel_footstep.2.ogg
|
default_dirt_footstep.*.ogg
|
||||||
default_gravel_footstep.3.ogg
|
|
||||||
default_gravel_footstep.4.ogg
|
|
||||||
default_grass_footstep.1.ogg
|
|
||||||
default_place_node.1.ogg
|
|
||||||
default_place_node.2.ogg
|
|
||||||
default_place_node.3.ogg
|
|
||||||
default_place_node_hard.1.ogg
|
|
||||||
default_place_node_hard.2.ogg
|
|
||||||
default_hard_footstep.1.ogg
|
|
||||||
default_hard_footstep.2.ogg
|
|
||||||
default_hard_footstep.3.ogg
|
|
||||||
default_sand_footstep.1.ogg
|
|
||||||
default_sand_footstep.2.ogg
|
|
||||||
default_wood_footstep.1.ogg
|
|
||||||
default_wood_footstep.2.ogg
|
|
||||||
default_dirt_footstep.1.ogg
|
|
||||||
default_dirt_footstep.2.ogg
|
|
||||||
default_glass_footstep.ogg
|
default_glass_footstep.ogg
|
||||||
|
|
||||||
Metal sounds:
|
Metal sounds:
|
||||||
|
@ -54,35 +34,64 @@ Metal sounds:
|
||||||
- https://www.freesound.org/people/yadronoff/sounds/320397/
|
- https://www.freesound.org/people/yadronoff/sounds/320397/
|
||||||
default_dug_metal.*.ogg - Iwan Gabovitch - qubodup - CC0
|
default_dug_metal.*.ogg - Iwan Gabovitch - qubodup - CC0
|
||||||
- http://opengameart.org/users/qubodup
|
- http://opengameart.org/users/qubodup
|
||||||
default_metal_footstep.*.ogg - Ottomaani138 - CC0
|
default_metal_footstep.*.ogg - (CC0 1.0) - CC0 1.0
|
||||||
- https://www.freesound.org/people/Ottomaani138/sounds/232692/
|
- https://freesound.org/people/mypantsfelldown/sounds/398937/
|
||||||
default_place_node_metal.*.ogg - Ogrebane - CC0
|
default_place_node_metal.*.ogg - Ogrebane - CC0
|
||||||
- http://opengameart.org/content/wood-and-metal-sound-effects-volume-2
|
- http://opengameart.org/content/wood-and-metal-sound-effects-volume-2
|
||||||
|
|
||||||
AGFX (CC BY 3.0)
|
AGFX (CC BY 3.0):
|
||||||
https://www.freesound.org/people/AGFX/packs/1253/
|
https://www.freesound.org/people/AGFX/packs/1253/
|
||||||
default_water_footstep.1.ogg
|
default_water_footstep.*.ogg
|
||||||
default_water_footstep.2.ogg
|
|
||||||
default_water_footstep.3.ogg
|
|
||||||
(default_water_footstep.4.ogg is silent)
|
|
||||||
|
|
||||||
blukotek (CC0 1.0)
|
blukotek (CC0 1.0):
|
||||||
https://www.freesound.org/people/blukotek/sounds/251660/
|
https://www.freesound.org/people/blukotek/sounds/251660/
|
||||||
default_dig_snappy.ogg
|
default_dig_snappy.ogg
|
||||||
|
|
||||||
sonictechtonic (CC BY 3.0)
|
sonictechtonic (CC BY 3.0):
|
||||||
https://www.freesound.org/people/sonictechtonic/sounds/241872/
|
https://www.freesound.org/people/sonictechtonic/sounds/241872/
|
||||||
player_damage.ogg
|
player_damage.ogg
|
||||||
|
|
||||||
Voxelands project <http://www.voxelands.com/> (CC BY-SA 3.0)
|
Sheyvan (CC0 1.0):
|
||||||
|
https://freesound.org/people/Sheyvan/sounds/476113/
|
||||||
|
default_dig_choppy.*.ogg
|
||||||
|
|
||||||
|
lolamadeus (CC0 1.0):
|
||||||
|
https://freesound.org/people/lolamadeus/sounds/179341/
|
||||||
|
default_gravel_dig.*.ogg
|
||||||
|
default_gravel_dug.*.ogg
|
||||||
|
|
||||||
|
Benboncan (CC BY 3.0):
|
||||||
|
https://freesound.org/people/Benboncan/sounds/71823/
|
||||||
|
default_dig_cracky.*.ogg
|
||||||
|
|
||||||
|
Erdie (CC BY 3.0):
|
||||||
|
https://freesound.org/people/Erdie/sounds/41579/
|
||||||
|
default_hard_footstep.*.ogg
|
||||||
|
|
||||||
|
worthahep88 (CC0 1.0):
|
||||||
|
https://freesound.org/people/worthahep88/sounds/319224/
|
||||||
|
default_sand_footstep.*.ogg
|
||||||
|
|
||||||
|
dheming (CC BY 3.0):
|
||||||
|
https://freesound.org/people/dheming/sounds/268023/
|
||||||
|
default_ice_dig.*.ogg
|
||||||
|
|
||||||
|
InspectorJ (CC BY 3.0):
|
||||||
|
https://freesound.org/people/InspectorJ/sounds/416967/
|
||||||
|
default_ice_footstep.*.ogg
|
||||||
|
|
||||||
|
Angel_Perez_Grandi (CC BY 3.0):
|
||||||
|
https://freesound.org/people/Angel_Perez_Grandi/sounds/49190/
|
||||||
|
default_ice_dug.ogg
|
||||||
|
|
||||||
|
Voxelands project <http://www.voxelands.com/> (CC BY-SA 3.0):
|
||||||
mcl_sounds_place_node_water.ogg
|
mcl_sounds_place_node_water.ogg
|
||||||
mcl_sounds_dug_water.ogg
|
mcl_sounds_dug_water.ogg
|
||||||
|
|
||||||
(Note: Artists from the Voxelands project include: sdzen, darkrose, sapier,
|
(Note: Artists from the Voxelands project include: sdzen, darkrose, sapier,
|
||||||
Tom Peter, Telaron, juskiddink)
|
Tom Peter, Telaron, juskiddink)
|
||||||
|
|
||||||
Michel Baradari <https://opengameart.org/content/lava-splash> (CC BY 3.0)
|
Michel Baradari <https://opengameart.org/content/lava-splash> (CC BY 3.0):
|
||||||
|
|
||||||
default_place_node_lava.ogg
|
default_place_node_lava.ogg
|
||||||
|
|
||||||
Adam_N (CC0 1.0):
|
Adam_N (CC0 1.0):
|
||||||
|
@ -90,7 +99,7 @@ Adam_N (CC0 1.0):
|
||||||
Source: <https://www.freesound.org/people/Adam_N/sounds/346692/>
|
Source: <https://www.freesound.org/people/Adam_N/sounds/346692/>
|
||||||
|
|
||||||
Alecia Shepherd (CC BY-SA 4.0):
|
Alecia Shepherd (CC BY-SA 4.0):
|
||||||
mcl_sounds_cloth.ogg
|
mcl_sounds_cloth.*.ogg
|
||||||
Source: SnowSong sound and music pack <https://opengameart.org/content/snowsong-sound-and-music-pack>
|
Source: SnowSong sound and music pack <https://opengameart.org/content/snowsong-sound-and-music-pack>
|
||||||
|
|
||||||
Unknown authors (WTFPL):
|
Unknown authors (WTFPL):
|
||||||
|
|
|
@ -11,7 +11,7 @@ function mcl_sounds.node_sound_defaults(table)
|
||||||
table.dug = table.dug or
|
table.dug = table.dug or
|
||||||
{name="default_dug_node", gain=0.25}
|
{name="default_dug_node", gain=0.25}
|
||||||
table.dig = table.dig or
|
table.dig = table.dig or
|
||||||
{name="default_dig_oddly_breakable_by_hand", gain=1.0}
|
{name="default_dig_oddly_breakable_by_hand", gain=0.5}
|
||||||
table.place = table.place or
|
table.place = table.place or
|
||||||
{name="default_place_node_hard", gain=1.0}
|
{name="default_place_node_hard", gain=1.0}
|
||||||
return table
|
return table
|
||||||
|
@ -20,11 +20,11 @@ end
|
||||||
function mcl_sounds.node_sound_stone_defaults(table)
|
function mcl_sounds.node_sound_stone_defaults(table)
|
||||||
table = table or {}
|
table = table or {}
|
||||||
table.footstep = table.footstep or
|
table.footstep = table.footstep or
|
||||||
{name="default_hard_footstep", gain=0.5}
|
{name="default_hard_footstep", gain=0.2}
|
||||||
table.dug = table.dug or
|
table.dug = table.dug or
|
||||||
{name="default_hard_footstep", gain=1.0}
|
{name="default_hard_footstep", gain=1.0}
|
||||||
table.dig = table.dig or
|
table.dig = table.dig or
|
||||||
{name="default_dig_cracky", gain=1.0}
|
{name="default_dig_cracky", gain=0.5}
|
||||||
mcl_sounds.node_sound_defaults(table)
|
mcl_sounds.node_sound_defaults(table)
|
||||||
return table
|
return table
|
||||||
end
|
end
|
||||||
|
@ -32,13 +32,13 @@ end
|
||||||
function mcl_sounds.node_sound_metal_defaults(table)
|
function mcl_sounds.node_sound_metal_defaults(table)
|
||||||
table = table or {}
|
table = table or {}
|
||||||
table.footstep = table.footstep or
|
table.footstep = table.footstep or
|
||||||
{name="default_metal_footstep", gain=0.5}
|
{name="default_metal_footstep", gain=0.2}
|
||||||
table.dug = table.dug or
|
table.dug = table.dug or
|
||||||
{name="default_dug_metal", gain=1.0}
|
{name="default_dug_metal", gain=0.5}
|
||||||
table.dig = table.dig or
|
table.dig = table.dig or
|
||||||
{name="default_dig_metal", gain=1.0}
|
{name="default_dig_metal", gain=0.5}
|
||||||
table.place = table.place or
|
table.place = table.place or
|
||||||
{name="default_place_node_metal", gain=1.0}
|
{name="default_place_node_metal", gain=0.5}
|
||||||
mcl_sounds.node_sound_defaults(table)
|
mcl_sounds.node_sound_defaults(table)
|
||||||
return table
|
return table
|
||||||
end
|
end
|
||||||
|
@ -46,11 +46,11 @@ end
|
||||||
function mcl_sounds.node_sound_dirt_defaults(table)
|
function mcl_sounds.node_sound_dirt_defaults(table)
|
||||||
table = table or {}
|
table = table or {}
|
||||||
table.footstep = table.footstep or
|
table.footstep = table.footstep or
|
||||||
{name="default_dirt_footstep", gain=1.0}
|
{name="default_dirt_footstep", gain=0.25}
|
||||||
table.dug = table.dug or
|
table.dug = table.dug or
|
||||||
{name="default_dirt_footstep", gain=1.5}
|
{name="default_dirt_footstep", gain=1.0}
|
||||||
table.dig = table.dig or
|
table.dig = table.dig or
|
||||||
{name="default_dig_crumbly", gain=1.0}
|
{name="default_dig_crumbly", gain=0.4}
|
||||||
table.place = table.place or
|
table.place = table.place or
|
||||||
{name="default_place_node", gain=1.0}
|
{name="default_place_node", gain=1.0}
|
||||||
mcl_sounds.node_sound_defaults(table)
|
mcl_sounds.node_sound_defaults(table)
|
||||||
|
@ -60,11 +60,25 @@ end
|
||||||
function mcl_sounds.node_sound_sand_defaults(table)
|
function mcl_sounds.node_sound_sand_defaults(table)
|
||||||
table = table or {}
|
table = table or {}
|
||||||
table.footstep = table.footstep or
|
table.footstep = table.footstep or
|
||||||
{name="default_sand_footstep", gain=0.5}
|
{name="default_sand_footstep", gain=0.05}
|
||||||
table.dug = table.dug or
|
table.dug = table.dug or
|
||||||
{name="default_sand_footstep", gain=1.0}
|
{name="default_sand_footstep", gain=0.15}
|
||||||
table.dig = table.dig or
|
table.dig = table.dig or
|
||||||
{name="default_dig_crumbly", gain=1.0}
|
{name="default_dig_crumbly", gain=0.4}
|
||||||
|
table.place = table.place or
|
||||||
|
{name="default_place_node", gain=1.0}
|
||||||
|
mcl_sounds.node_sound_defaults(table)
|
||||||
|
return table
|
||||||
|
end
|
||||||
|
|
||||||
|
function mcl_sounds.node_sound_gravel_defaults(table)
|
||||||
|
table = table or {}
|
||||||
|
table.footstep = table.footstep or
|
||||||
|
{name="default_gravel_footstep", gain=0.25}
|
||||||
|
table.dug = table.dug or
|
||||||
|
{name="default_gravel_dug", gain=1.0}
|
||||||
|
table.dig = table.dig or
|
||||||
|
{name="default_gravel_dig", gain=0.35}
|
||||||
table.place = table.place or
|
table.place = table.place or
|
||||||
{name="default_place_node", gain=1.0}
|
{name="default_place_node", gain=1.0}
|
||||||
mcl_sounds.node_sound_defaults(table)
|
mcl_sounds.node_sound_defaults(table)
|
||||||
|
@ -78,21 +92,33 @@ function mcl_sounds.node_sound_snow_defaults(table)
|
||||||
table.dug = table.dug or
|
table.dug = table.dug or
|
||||||
{name="pedology_snow_soft_footstep", gain=1.0}
|
{name="pedology_snow_soft_footstep", gain=1.0}
|
||||||
table.dig = table.dig or
|
table.dig = table.dig or
|
||||||
{name="default_dig_crumbly", gain=1.0}
|
{name="pedology_snow_soft_footstep", gain=1.0}
|
||||||
table.place = table.place or
|
table.place = table.place or
|
||||||
{name="default_place_node", gain=1.0}
|
{name="default_place_node", gain=1.0}
|
||||||
mcl_sounds.node_sound_defaults(table)
|
mcl_sounds.node_sound_defaults(table)
|
||||||
return table
|
return table
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function mcl_sounds.node_sound_ice_defaults(table)
|
||||||
|
table = table or {}
|
||||||
|
table.footstep = table.footstep or
|
||||||
|
{name="default_ice_footstep", gain=0.15}
|
||||||
|
table.dug = table.dug or
|
||||||
|
{name="default_ice_dug", gain=0.5}
|
||||||
|
table.dig = table.dig or
|
||||||
|
{name="default_ice_dig", gain=0.5}
|
||||||
|
mcl_sounds.node_sound_defaults(table)
|
||||||
|
return table
|
||||||
|
end
|
||||||
|
|
||||||
function mcl_sounds.node_sound_wood_defaults(table)
|
function mcl_sounds.node_sound_wood_defaults(table)
|
||||||
table = table or {}
|
table = table or {}
|
||||||
table.footstep = table.footstep or
|
table.footstep = table.footstep or
|
||||||
{name="default_wood_footstep", gain=0.5}
|
{name="default_wood_footstep", gain=0.15}
|
||||||
table.dug = table.dug or
|
table.dug = table.dug or
|
||||||
{name="default_wood_footstep", gain=1.0}
|
{name="default_wood_footstep", gain=1.0}
|
||||||
table.dig = table.dig or
|
table.dig = table.dig or
|
||||||
{name="default_dig_choppy", gain=1.0}
|
{name="default_dig_choppy", gain=0.4}
|
||||||
mcl_sounds.node_sound_defaults(table)
|
mcl_sounds.node_sound_defaults(table)
|
||||||
return table
|
return table
|
||||||
end
|
end
|
||||||
|
@ -128,11 +154,11 @@ end
|
||||||
function mcl_sounds.node_sound_glass_defaults(table)
|
function mcl_sounds.node_sound_glass_defaults(table)
|
||||||
table = table or {}
|
table = table or {}
|
||||||
table.footstep = table.footstep or
|
table.footstep = table.footstep or
|
||||||
{name="default_glass_footstep", gain=0.5}
|
{name="default_glass_footstep", gain=0.3}
|
||||||
table.dug = table.dug or
|
table.dug = table.dug or
|
||||||
{name="default_break_glass", gain=1.0}
|
{name="default_break_glass", gain=1.0}
|
||||||
table.dig = table.dig or
|
table.dig = table.dig or
|
||||||
{name="default_dig_cracky", gain=1.0}
|
{name="default_dig_cracky", gain=0.5}
|
||||||
mcl_sounds.node_sound_defaults(table)
|
mcl_sounds.node_sound_defaults(table)
|
||||||
return table
|
return table
|
||||||
end
|
end
|
||||||
|
|
|
@ -402,11 +402,9 @@ local two_pi = 2 * math.pi
|
||||||
local function get_next_mob_spawn_pos(pos)
|
local function get_next_mob_spawn_pos(pos)
|
||||||
local distance = math_random(25, 32)
|
local distance = math_random(25, 32)
|
||||||
local angle = math_random() * two_pi
|
local angle = math_random() * two_pi
|
||||||
return {
|
local xoff = math_round(distance * math_cos(angle))
|
||||||
x = math_round(pos.x + distance * math_cos(angle)),
|
local yoff = math_round(distance * math_sin(angle))
|
||||||
y = pos.y,
|
return vector.offset(pos, xoff, 0, yoff)
|
||||||
z = math_round(pos.z + distance * math_sin(angle))
|
|
||||||
}
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local function decypher_limits(posy)
|
local function decypher_limits(posy)
|
||||||
|
@ -559,7 +557,7 @@ local S = minetest.get_translator("mcl_mobs")
|
||||||
|
|
||||||
minetest.register_chatcommand("spawn_mob",{
|
minetest.register_chatcommand("spawn_mob",{
|
||||||
privs = { debug = true },
|
privs = { debug = true },
|
||||||
description=S("spawn_mob is a chatcommand that allows you to type in the name of a mob without 'typing mobs_mc:' all the time like so; 'spawn_mob spider'. however, there is more you can do with this special command, currently you can edit any number, boolian, and string variable you choose with this format: spawn_mob 'any_mob:var<mobs_variable=variable_value>:'. any_mob being your mob of choice, mobs_variable being the variable, and variable value being the value of the chosen variable. and example of this format: \n spawn_mob skeleton:var<passive=true>:\n this would spawn a skeleton that wouldn't attack you. REMEMBER-THIS> when changing a number value always prefix it with 'NUM', example: \n spawn_mob skeleton:var<jump_height=NUM10>:\n this setting the skelly's jump height to 10. if you want to make multiple changes to a mob, you can, example: \n spawn_mob skeleton:var<passive=true>::var<jump_height=NUM10>::var<fly_in=air>::var<fly=true>:\n etc."),
|
description=S("spawn_mob is a chatcommand that allows you to type in the name of a mob without 'typing mobs_mc:' all the time like so; 'spawn_mob spider'. however, there is more you can do with this special command, currently you can edit any number, boolean, and string variable you choose with this format: spawn_mob 'any_mob:var<mobs_variable=variable_value>:'. any_mob being your mob of choice, mobs_variable being the variable, and variable value being the value of the chosen variable. and example of this format: \n spawn_mob skeleton:var<passive=true>:\n this would spawn a skeleton that wouldn't attack you. REMEMBER-THIS> when changing a number value always prefix it with 'NUM', example: \n spawn_mob skeleton:var<jump_height=NUM10>:\n this setting the skelly's jump height to 10. if you want to make multiple changes to a mob, you can, example: \n spawn_mob skeleton:var<passive=true>::var<jump_height=NUM10>::var<fly_in=air>::var<fly=true>:\n etc."),
|
||||||
func = function(n,param)
|
func = function(n,param)
|
||||||
local pos = minetest.get_player_by_name(n):get_pos()
|
local pos = minetest.get_player_by_name(n):get_pos()
|
||||||
|
|
||||||
|
@ -579,15 +577,14 @@ minetest.register_chatcommand("spawn_mob",{
|
||||||
|
|
||||||
local mob = mcl_mobs.spawn(pos,mobname)
|
local mob = mcl_mobs.spawn(pos,mobname)
|
||||||
|
|
||||||
for c=1, #modifiers do
|
if mob then
|
||||||
modifs = modifiers[c]
|
for c=1, #modifiers do
|
||||||
|
modifs = modifiers[c]
|
||||||
|
|
||||||
local mod1 = string.find(modifs, ":")
|
local mod1 = string.find(modifs, ":")
|
||||||
local mod_start = string.find(modifs, "<")
|
local mod_start = string.find(modifs, "<")
|
||||||
local mod_vals = string.find(modifs, "=")
|
local mod_vals = string.find(modifs, "=")
|
||||||
local mod_end = string.find(modifs, ">")
|
local mod_end = string.find(modifs, ">")
|
||||||
local mod_end = string.find(modifs, ">")
|
|
||||||
if mob then
|
|
||||||
local mob_entity = mob:get_luaentity()
|
local mob_entity = mob:get_luaentity()
|
||||||
if string.sub(modifs, mod1+1, mod1+3) == "var" then
|
if string.sub(modifs, mod1+1, mod1+3) == "var" then
|
||||||
if mod1 and mod_start and mod_vals and mod_end then
|
if mod1 and mod_start and mod_vals and mod_end then
|
||||||
|
@ -618,14 +615,12 @@ minetest.register_chatcommand("spawn_mob",{
|
||||||
minetest.log("warning", n.." couldn't modify "..mobname.." at "..minetest.pos_to_string(pos).. ", missing modification type")
|
minetest.log("warning", n.." couldn't modify "..mobname.." at "..minetest.pos_to_string(pos).. ", missing modification type")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
if mob then
|
|
||||||
return true, mobname.." spawned at "..minetest.pos_to_string(pos),
|
|
||||||
minetest.log("action", n.." spawned "..mobname.." at "..minetest.pos_to_string(pos))
|
minetest.log("action", n.." spawned "..mobname.." at "..minetest.pos_to_string(pos))
|
||||||
|
return true, mobname.." spawned at "..minetest.pos_to_string(pos)
|
||||||
|
else
|
||||||
|
return false, "Couldn't spawn "..mobname
|
||||||
end
|
end
|
||||||
return false, "Couldn't spawn "..mobname
|
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -64,7 +64,7 @@ local cod = {
|
||||||
chance = 1,
|
chance = 1,
|
||||||
min = 1,
|
min = 1,
|
||||||
max = 1,},
|
max = 1,},
|
||||||
{name = "mcl_dye:white",
|
{name = "mcl_bone_meal:bone_meal",
|
||||||
chance = 20,
|
chance = 20,
|
||||||
min = 1,
|
min = 1,
|
||||||
max = 1,},
|
max = 1,},
|
||||||
|
|
|
@ -12,7 +12,7 @@ local cow_def = {
|
||||||
xp_min = 1,
|
xp_min = 1,
|
||||||
xp_max = 3,
|
xp_max = 3,
|
||||||
collisionbox = {-0.45, -0.01, -0.45, 0.45, 1.39, 0.45},
|
collisionbox = {-0.45, -0.01, -0.45, 0.45, 1.39, 0.45},
|
||||||
spawn_in_group = 8,
|
spawn_in_group = 4,
|
||||||
spawn_in_group_min = 3,
|
spawn_in_group_min = 3,
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
mesh = "mobs_mc_cow.b3d",
|
mesh = "mobs_mc_cow.b3d",
|
||||||
|
|
|
@ -2,4 +2,4 @@ name = mobs_mc
|
||||||
author = maikerumine
|
author = maikerumine
|
||||||
description = Adds Minecraft-like monsters and animals.
|
description = Adds Minecraft-like monsters and animals.
|
||||||
depends = mcl_init, mcl_particles, mcl_mobs, mcl_wip, mcl_core, mcl_util
|
depends = mcl_init, mcl_particles, mcl_mobs, mcl_wip, mcl_core, mcl_util
|
||||||
optional_depends = default, mcl_tnt, mcl_bows, mcl_throwing, mcl_fishing, bones, mesecons_materials, mobs_mc_gameconfig, doc_items
|
optional_depends = default, mcl_tnt, mcl_bows, mcl_throwing, mcl_fishing, bones, mesecons_materials, doc_items
|
||||||
|
|
|
@ -42,7 +42,7 @@ local salmon = {
|
||||||
chance = 1,
|
chance = 1,
|
||||||
min = 1,
|
min = 1,
|
||||||
max = 1,},
|
max = 1,},
|
||||||
{name = "mcl_dye:white",
|
{name = "mcl_bone_meal:bone_meal",
|
||||||
chance = 20,
|
chance = 20,
|
||||||
min = 1,
|
min = 1,
|
||||||
max = 1,},
|
max = 1,},
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
--License for code WTFPL and otherwise stated in readmes
|
--License for code WTFPL and otherwise stated in readmes
|
||||||
|
|
||||||
|
-- FIXME: Slimes should spawn only in "slime chunks" which make up only
|
||||||
|
-- 10% of the map.
|
||||||
|
--
|
||||||
local S = minetest.get_translator("mobs_mc")
|
local S = minetest.get_translator("mobs_mc")
|
||||||
|
|
||||||
-- Returns a function that spawns children in a circle around pos.
|
-- Returns a function that spawns children in a circle around pos.
|
||||||
|
@ -7,46 +10,47 @@ local S = minetest.get_translator("mobs_mc")
|
||||||
-- self: mob reference
|
-- self: mob reference
|
||||||
-- pos: position of "mother" mob
|
-- pos: position of "mother" mob
|
||||||
-- child_mod: Mob to spawn
|
-- child_mod: Mob to spawn
|
||||||
-- children_count: Number of children to spawn
|
|
||||||
-- spawn_distance: Spawn distance from "mother" mob
|
-- spawn_distance: Spawn distance from "mother" mob
|
||||||
-- eject_speed: Initial speed of child mob away from "mother" mob
|
-- eject_speed: Initial speed of child mob away from "mother" mob
|
||||||
local spawn_children_on_die = function(child_mob, children_count, spawn_distance, eject_speed)
|
local spawn_children_on_die = function(child_mob, spawn_distance, eject_speed)
|
||||||
return function(self, pos)
|
return function(self, pos)
|
||||||
local angle, posadd, newpos, dir
|
local posadd, newpos, dir
|
||||||
if not eject_speed then
|
if not eject_speed then
|
||||||
eject_speed = 1
|
eject_speed = 1
|
||||||
end
|
end
|
||||||
local mndef = minetest.registered_nodes[minetest.get_node(pos).name]
|
local mndef = minetest.registered_nodes[minetest.get_node(pos).name]
|
||||||
local mother_stuck = mndef and mndef.walkable
|
local mother_stuck = mndef and mndef.walkable
|
||||||
angle = math.random(0, math.pi*2)
|
local angle = math.random(0, math.pi*2)
|
||||||
local children = {}
|
local children = {}
|
||||||
for i=1,children_count do
|
local spawn_count = math.random(2, 4)
|
||||||
dir = {x=math.cos(angle),y=0,z=math.sin(angle)}
|
for i = 1, spawn_count do
|
||||||
posadd = vector.multiply(vector.normalize(dir), spawn_distance)
|
dir = vector.new(math.cos(angle), 0, math.sin(angle))
|
||||||
newpos = vector.add(pos, posadd)
|
posadd = vector.normalize(dir) * spawn_distance
|
||||||
|
newpos = pos + posadd
|
||||||
-- If child would end up in a wall, use position of the "mother", unless
|
-- If child would end up in a wall, use position of the "mother", unless
|
||||||
-- the "mother" was stuck as well
|
-- the "mother" was stuck as well
|
||||||
local speed_penalty = 1
|
if not mother_stuck then
|
||||||
local cndef = minetest.registered_nodes[minetest.get_node(newpos).name]
|
local cndef = minetest.registered_nodes[minetest.get_node(newpos).name]
|
||||||
if (not mother_stuck) and cndef and cndef.walkable then
|
if cndef and cndef.walkable then
|
||||||
newpos = pos
|
newpos = pos
|
||||||
speed_penalty = 0.5
|
eject_speed = eject_speed * 0.5
|
||||||
|
end
|
||||||
end
|
end
|
||||||
local mob = minetest.add_entity(newpos, child_mob)
|
local mob = minetest.add_entity(newpos, child_mob)
|
||||||
if (not mother_stuck) then
|
if not mother_stuck then
|
||||||
mob:set_velocity(vector.multiply(dir, eject_speed * speed_penalty))
|
mob:set_velocity(dir * eject_speed)
|
||||||
end
|
end
|
||||||
mob:set_yaw(angle - math.pi/2)
|
mob:set_yaw(angle - math.pi/2)
|
||||||
table.insert(children, mob)
|
table.insert(children, mob)
|
||||||
angle = angle + (math.pi*2)/children_count
|
angle = angle + (math.pi*2) / spawn_count
|
||||||
end
|
end
|
||||||
-- If mother was murdered, children attack the killer after 1 second
|
-- If mother was murdered, children attack the killer after 1 second
|
||||||
if self.state == "attack" then
|
if self.state == "attack" then
|
||||||
minetest.after(1.0, function(children, enemy)
|
minetest.after(1.0, function(children, enemy)
|
||||||
for c=1, #children do
|
local le
|
||||||
local child = children[c]
|
for c = 1, #children do
|
||||||
local le = child:get_luaentity()
|
le = children[c]:get_luaentity()
|
||||||
if le ~= nil then
|
if le then
|
||||||
le.state = "attack"
|
le.state = "attack"
|
||||||
le.attack = enemy
|
le.attack = enemy
|
||||||
end
|
end
|
||||||
|
@ -106,7 +110,7 @@ local slime_big = {
|
||||||
jump_height = 5.2,
|
jump_height = 5.2,
|
||||||
fear_height = 0,
|
fear_height = 0,
|
||||||
spawn_small_alternative = "mobs_mc:slime_small",
|
spawn_small_alternative = "mobs_mc:slime_small",
|
||||||
on_die = spawn_children_on_die("mobs_mc:slime_small", 4, 1.0, 1.5),
|
on_die = spawn_children_on_die("mobs_mc:slime_small", 1.0, 1.5),
|
||||||
use_texture_alpha = true,
|
use_texture_alpha = true,
|
||||||
}
|
}
|
||||||
mcl_mobs.register_mob("mobs_mc:slime_big", slime_big)
|
mcl_mobs.register_mob("mobs_mc:slime_big", slime_big)
|
||||||
|
@ -125,7 +129,7 @@ slime_small.walk_velocity = 1.3
|
||||||
slime_small.run_velocity = 1.3
|
slime_small.run_velocity = 1.3
|
||||||
slime_small.jump_height = 4.3
|
slime_small.jump_height = 4.3
|
||||||
slime_small.spawn_small_alternative = "mobs_mc:slime_tiny"
|
slime_small.spawn_small_alternative = "mobs_mc:slime_tiny"
|
||||||
slime_small.on_die = spawn_children_on_die("mobs_mc:slime_tiny", 4, 0.6, 1.0)
|
slime_small.on_die = spawn_children_on_die("mobs_mc:slime_tiny", 0.6, 1.0)
|
||||||
mcl_mobs.register_mob("mobs_mc:slime_small", slime_small)
|
mcl_mobs.register_mob("mobs_mc:slime_small", slime_small)
|
||||||
|
|
||||||
local slime_tiny = table.copy(slime_big)
|
local slime_tiny = table.copy(slime_big)
|
||||||
|
@ -153,140 +157,127 @@ slime_tiny.on_die = nil
|
||||||
|
|
||||||
mcl_mobs.register_mob("mobs_mc:slime_tiny", slime_tiny)
|
mcl_mobs.register_mob("mobs_mc:slime_tiny", slime_tiny)
|
||||||
|
|
||||||
local smin = mcl_vars.mg_overworld_min
|
local water_level = mobs_mc.water_level
|
||||||
local smax = mobs_mc.water_level - 23
|
|
||||||
|
local cave_biomes = {
|
||||||
|
"FlowerForest_underground",
|
||||||
|
"JungleEdge_underground",
|
||||||
|
"StoneBeach_underground",
|
||||||
|
"MesaBryce_underground",
|
||||||
|
"Mesa_underground",
|
||||||
|
"RoofedForest_underground",
|
||||||
|
"Jungle_underground",
|
||||||
|
"Swampland_underground",
|
||||||
|
"MushroomIsland_underground",
|
||||||
|
"BirchForest_underground",
|
||||||
|
"Plains_underground",
|
||||||
|
"MesaPlateauF_underground",
|
||||||
|
"ExtremeHills_underground",
|
||||||
|
"MegaSpruceTaiga_underground",
|
||||||
|
"BirchForestM_underground",
|
||||||
|
"SavannaM_underground",
|
||||||
|
"MesaPlateauFM_underground",
|
||||||
|
"Desert_underground",
|
||||||
|
"Savanna_underground",
|
||||||
|
"Forest_underground",
|
||||||
|
"SunflowerPlains_underground",
|
||||||
|
"ColdTaiga_underground",
|
||||||
|
"IcePlains_underground",
|
||||||
|
"IcePlainsSpikes_underground",
|
||||||
|
"MegaTaiga_underground",
|
||||||
|
"Taiga_underground",
|
||||||
|
"ExtremeHills+_underground",
|
||||||
|
"JungleM_underground",
|
||||||
|
"ExtremeHillsM_underground",
|
||||||
|
"JungleEdgeM_underground",
|
||||||
|
"MangroveSwamp_underground"
|
||||||
|
}
|
||||||
|
|
||||||
|
local cave_min = mcl_vars.mg_overworld_min
|
||||||
|
local cave_max = water_level - 23
|
||||||
|
|
||||||
|
local swampy_biomes = {"Swampland", "MangroveSwamp"}
|
||||||
|
local swamp_light_max = 7
|
||||||
|
local swamp_min = water_level
|
||||||
|
local swamp_max = water_level + 27
|
||||||
|
|
||||||
mcl_mobs:spawn_specific(
|
mcl_mobs:spawn_specific(
|
||||||
"mobs_mc:slime_tiny",
|
"mobs_mc:slime_tiny",
|
||||||
"overworld",
|
"overworld",
|
||||||
"ground",
|
"ground",
|
||||||
{
|
cave_biomes,
|
||||||
"FlowerForest_underground",
|
|
||||||
"JungleEdge_underground",
|
|
||||||
"StoneBeach_underground",
|
|
||||||
"MesaBryce_underground",
|
|
||||||
"Mesa_underground",
|
|
||||||
"RoofedForest_underground",
|
|
||||||
"Jungle_underground",
|
|
||||||
"Swampland_underground",
|
|
||||||
"MushroomIsland_underground",
|
|
||||||
"BirchForest_underground",
|
|
||||||
"Plains_underground",
|
|
||||||
"MesaPlateauF_underground",
|
|
||||||
"ExtremeHills_underground",
|
|
||||||
"MegaSpruceTaiga_underground",
|
|
||||||
"BirchForestM_underground",
|
|
||||||
"SavannaM_underground",
|
|
||||||
"MesaPlateauFM_underground",
|
|
||||||
"Desert_underground",
|
|
||||||
"Savanna_underground",
|
|
||||||
"Forest_underground",
|
|
||||||
"SunflowerPlains_underground",
|
|
||||||
"ColdTaiga_underground",
|
|
||||||
"IcePlains_underground",
|
|
||||||
"IcePlainsSpikes_underground",
|
|
||||||
"MegaTaiga_underground",
|
|
||||||
"Taiga_underground",
|
|
||||||
"ExtremeHills+_underground",
|
|
||||||
"JungleM_underground",
|
|
||||||
"ExtremeHillsM_underground",
|
|
||||||
"JungleEdgeM_underground",
|
|
||||||
},
|
|
||||||
0,
|
0,
|
||||||
minetest.LIGHT_MAX+1,
|
minetest.LIGHT_MAX+1,
|
||||||
30,
|
30,
|
||||||
12000,
|
12000,
|
||||||
4,
|
4,
|
||||||
smin,
|
cave_min,
|
||||||
smax)
|
cave_max)
|
||||||
|
|
||||||
|
mcl_mobs:spawn_specific(
|
||||||
|
"mobs_mc:slime_tiny",
|
||||||
|
"overworld",
|
||||||
|
"ground",
|
||||||
|
swampy_biomes,
|
||||||
|
0,
|
||||||
|
swamp_light_max,
|
||||||
|
30,
|
||||||
|
12000,
|
||||||
|
4,
|
||||||
|
swamp_min,
|
||||||
|
swamp_max)
|
||||||
|
|
||||||
mcl_mobs:spawn_specific(
|
mcl_mobs:spawn_specific(
|
||||||
"mobs_mc:slime_small",
|
"mobs_mc:slime_small",
|
||||||
"overworld",
|
"overworld",
|
||||||
"ground",
|
"ground",
|
||||||
{
|
cave_biomes,
|
||||||
"FlowerForest_underground",
|
|
||||||
"JungleEdge_underground",
|
|
||||||
"StoneBeach_underground",
|
|
||||||
"MesaBryce_underground",
|
|
||||||
"Mesa_underground",
|
|
||||||
"RoofedForest_underground",
|
|
||||||
"Jungle_underground",
|
|
||||||
"Swampland_underground",
|
|
||||||
"MushroomIsland_underground",
|
|
||||||
"BirchForest_underground",
|
|
||||||
"Plains_underground",
|
|
||||||
"MesaPlateauF_underground",
|
|
||||||
"ExtremeHills_underground",
|
|
||||||
"MegaSpruceTaiga_underground",
|
|
||||||
"BirchForestM_underground",
|
|
||||||
"SavannaM_underground",
|
|
||||||
"MesaPlateauFM_underground",
|
|
||||||
"Desert_underground",
|
|
||||||
"Savanna_underground",
|
|
||||||
"Forest_underground",
|
|
||||||
"SunflowerPlains_underground",
|
|
||||||
"ColdTaiga_underground",
|
|
||||||
"IcePlains_underground",
|
|
||||||
"IcePlainsSpikes_underground",
|
|
||||||
"MegaTaiga_underground",
|
|
||||||
"Taiga_underground",
|
|
||||||
"ExtremeHills+_underground",
|
|
||||||
"JungleM_underground",
|
|
||||||
"ExtremeHillsM_underground",
|
|
||||||
"JungleEdgeM_underground",
|
|
||||||
},
|
|
||||||
0,
|
0,
|
||||||
minetest.LIGHT_MAX+1,
|
minetest.LIGHT_MAX+1,
|
||||||
30,
|
30,
|
||||||
8500,
|
8500,
|
||||||
4,
|
4,
|
||||||
smin,
|
cave_min,
|
||||||
smax)
|
cave_max)
|
||||||
|
|
||||||
|
mcl_mobs:spawn_specific(
|
||||||
|
"mobs_mc:slime_small",
|
||||||
|
"overworld",
|
||||||
|
"ground",
|
||||||
|
swampy_biomes,
|
||||||
|
0,
|
||||||
|
swamp_light_max,
|
||||||
|
30,
|
||||||
|
8500,
|
||||||
|
4,
|
||||||
|
swamp_min,
|
||||||
|
swamp_max)
|
||||||
|
|
||||||
mcl_mobs:spawn_specific(
|
mcl_mobs:spawn_specific(
|
||||||
"mobs_mc:slime_big",
|
"mobs_mc:slime_big",
|
||||||
"overworld",
|
"overworld",
|
||||||
"ground",
|
"ground",
|
||||||
{
|
cave_biomes,
|
||||||
"FlowerForest_underground",
|
|
||||||
"JungleEdge_underground",
|
|
||||||
"StoneBeach_underground",
|
|
||||||
"MesaBryce_underground",
|
|
||||||
"Mesa_underground",
|
|
||||||
"RoofedForest_underground",
|
|
||||||
"Jungle_underground",
|
|
||||||
"Swampland_underground",
|
|
||||||
"MushroomIsland_underground",
|
|
||||||
"BirchForest_underground",
|
|
||||||
"Plains_underground",
|
|
||||||
"MesaPlateauF_underground",
|
|
||||||
"ExtremeHills_underground",
|
|
||||||
"MegaSpruceTaiga_underground",
|
|
||||||
"BirchForestM_underground",
|
|
||||||
"SavannaM_underground",
|
|
||||||
"MesaPlateauFM_underground",
|
|
||||||
"Desert_underground",
|
|
||||||
"Savanna_underground",
|
|
||||||
"Forest_underground",
|
|
||||||
"SunflowerPlains_underground",
|
|
||||||
"ColdTaiga_underground",
|
|
||||||
"IcePlains_underground",
|
|
||||||
"IcePlainsSpikes_underground",
|
|
||||||
"MegaTaiga_underground",
|
|
||||||
"Taiga_underground",
|
|
||||||
"ExtremeHills+_underground",
|
|
||||||
"JungleM_underground",
|
|
||||||
"ExtremeHillsM_underground",
|
|
||||||
"JungleEdgeM_underground",
|
|
||||||
},
|
|
||||||
0,
|
0,
|
||||||
minetest.LIGHT_MAX+1,
|
minetest.LIGHT_MAX+1,
|
||||||
30,
|
30,
|
||||||
10000,
|
10000,
|
||||||
4,
|
4,
|
||||||
smin,
|
cave_min,
|
||||||
smax)
|
cave_max)
|
||||||
|
|
||||||
|
mcl_mobs:spawn_specific(
|
||||||
|
"mobs_mc:slime_big",
|
||||||
|
"overworld",
|
||||||
|
"ground",
|
||||||
|
swampy_biomes,
|
||||||
|
0,
|
||||||
|
swamp_light_max,
|
||||||
|
30,
|
||||||
|
10000,
|
||||||
|
4,
|
||||||
|
swamp_min,
|
||||||
|
swamp_max)
|
||||||
|
|
||||||
-- Magma cube
|
-- Magma cube
|
||||||
local magma_cube_big = {
|
local magma_cube_big = {
|
||||||
|
@ -345,7 +336,7 @@ local magma_cube_big = {
|
||||||
walk_chance = 0,
|
walk_chance = 0,
|
||||||
fear_height = 0,
|
fear_height = 0,
|
||||||
spawn_small_alternative = "mobs_mc:magma_cube_small",
|
spawn_small_alternative = "mobs_mc:magma_cube_small",
|
||||||
on_die = spawn_children_on_die("mobs_mc:magma_cube_small", 3, 0.8, 1.5),
|
on_die = spawn_children_on_die("mobs_mc:magma_cube_small", 0.8, 1.5),
|
||||||
fire_resistant = true,
|
fire_resistant = true,
|
||||||
}
|
}
|
||||||
mcl_mobs.register_mob("mobs_mc:magma_cube_big", magma_cube_big)
|
mcl_mobs.register_mob("mobs_mc:magma_cube_big", magma_cube_big)
|
||||||
|
@ -368,7 +359,7 @@ magma_cube_small.damage = 4
|
||||||
magma_cube_small.reach = 2.75
|
magma_cube_small.reach = 2.75
|
||||||
magma_cube_small.armor = 66
|
magma_cube_small.armor = 66
|
||||||
magma_cube_small.spawn_small_alternative = "mobs_mc:magma_cube_tiny"
|
magma_cube_small.spawn_small_alternative = "mobs_mc:magma_cube_tiny"
|
||||||
magma_cube_small.on_die = spawn_children_on_die("mobs_mc:magma_cube_tiny", 4, 0.6, 1.0)
|
magma_cube_small.on_die = spawn_children_on_die("mobs_mc:magma_cube_tiny", 0.6, 1.0)
|
||||||
mcl_mobs.register_mob("mobs_mc:magma_cube_small", magma_cube_small)
|
mcl_mobs.register_mob("mobs_mc:magma_cube_small", magma_cube_small)
|
||||||
|
|
||||||
local magma_cube_tiny = table.copy(magma_cube_big)
|
local magma_cube_tiny = table.copy(magma_cube_big)
|
||||||
|
@ -394,59 +385,52 @@ magma_cube_tiny.on_die = nil
|
||||||
mcl_mobs.register_mob("mobs_mc:magma_cube_tiny", magma_cube_tiny)
|
mcl_mobs.register_mob("mobs_mc:magma_cube_tiny", magma_cube_tiny)
|
||||||
|
|
||||||
|
|
||||||
local mmin = mcl_vars.mg_nether_min
|
local magma_cube_biomes = {"Nether", "BasaltDelta"}
|
||||||
local mmax = mcl_vars.mg_nether_max
|
local nether_min = mcl_vars.mg_nether_min
|
||||||
|
local nether_max = mcl_vars.mg_nether_max
|
||||||
|
|
||||||
mcl_mobs:spawn_specific(
|
mcl_mobs:spawn_specific(
|
||||||
"mobs_mc:magma_cube_tiny",
|
"mobs_mc:magma_cube_tiny",
|
||||||
"nether",
|
"nether",
|
||||||
"ground",
|
"ground",
|
||||||
{
|
magma_cube_biomes,
|
||||||
"Nether",
|
|
||||||
"BasaltDelta",
|
|
||||||
},
|
|
||||||
0,
|
0,
|
||||||
minetest.LIGHT_MAX+1,
|
minetest.LIGHT_MAX+1,
|
||||||
30,
|
30,
|
||||||
15000,
|
15000,
|
||||||
4,
|
4,
|
||||||
mmin,
|
nether_min,
|
||||||
mmax)
|
nether_max)
|
||||||
|
|
||||||
|
|
||||||
mcl_mobs:spawn_specific(
|
mcl_mobs:spawn_specific(
|
||||||
"mobs_mc:magma_cube_small",
|
"mobs_mc:magma_cube_small",
|
||||||
"nether",
|
"nether",
|
||||||
"ground",
|
"ground",
|
||||||
{
|
magma_cube_biomes,
|
||||||
"Nether",
|
|
||||||
"BasaltDelta",
|
|
||||||
},
|
|
||||||
0,
|
0,
|
||||||
minetest.LIGHT_MAX+1,
|
minetest.LIGHT_MAX+1,
|
||||||
30,
|
30,
|
||||||
15500,
|
15500,
|
||||||
4,
|
4,
|
||||||
mmin,
|
nether_min,
|
||||||
mmax)
|
nether_max)
|
||||||
|
|
||||||
mcl_mobs:spawn_specific(
|
mcl_mobs:spawn_specific(
|
||||||
"mobs_mc:magma_cube_big",
|
"mobs_mc:magma_cube_big",
|
||||||
"nether",
|
"nether",
|
||||||
"ground",
|
"ground",
|
||||||
{
|
magma_cube_biomes,
|
||||||
"Nether",
|
|
||||||
"BasaltDelta",
|
|
||||||
},
|
|
||||||
0,
|
0,
|
||||||
minetest.LIGHT_MAX+1,
|
minetest.LIGHT_MAX+1,
|
||||||
30,
|
30,
|
||||||
16000,
|
16000,
|
||||||
4,
|
4,
|
||||||
mmin,
|
nether_min,
|
||||||
mmax)
|
nether_max)
|
||||||
|
|
||||||
-- spawn eggs
|
-- spawn eggs
|
||||||
mcl_mobs.register_egg("mobs_mc:magma_cube_big", S("Magma Cube"), "#350000", "#fcfc00")
|
mcl_mobs.register_egg("mobs_mc:magma_cube_big", S("Magma Cube"), "#350000", "#fcfc00")
|
||||||
|
|
||||||
mcl_mobs.register_egg("mobs_mc:slime_big", S("Slime"), "#52a03e", "#7ebf6d")
|
mcl_mobs.register_egg("mobs_mc:slime_big", S("Slime"), "#52a03e", "#7ebf6d")
|
||||||
|
|
||||||
|
-- FIXME: add spawn eggs for small and tiny slimes and magma cubes
|
||||||
|
|
|
@ -40,7 +40,7 @@ mcl_mobs.register_mob("mobs_mc:squid", {
|
||||||
run_end = 60,
|
run_end = 60,
|
||||||
},
|
},
|
||||||
drops = {
|
drops = {
|
||||||
{name = "mcl_dye:black",
|
{name = "mcl_mobitems:ink_sac",
|
||||||
chance = 1,
|
chance = 1,
|
||||||
min = 1,
|
min = 1,
|
||||||
max = 3,
|
max = 3,
|
||||||
|
|
|
@ -87,7 +87,7 @@ local tropical_fish = {
|
||||||
chance = 1,
|
chance = 1,
|
||||||
min = 1,
|
min = 1,
|
||||||
max = 1,},
|
max = 1,},
|
||||||
{name = "mcl_dye:white",
|
{name = "mcl_bone_meal:bone_meal",
|
||||||
chance = 20,
|
chance = 20,
|
||||||
min = 1,
|
min = 1,
|
||||||
max = 1,},
|
max = 1,},
|
||||||
|
|
|
@ -479,7 +479,7 @@ local professions = {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
{ { "mcl_core:gold_ingot", 3, 3 }, E1 },
|
{ { "mcl_core:gold_ingot", 3, 3 }, E1 },
|
||||||
{ E1, { "mcl_dye:blue", 1, 1 } },
|
{ E1, { "mcl_core:lapis", 1, 1 } },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
{ { "mcl_mobitems:rabbit_foot", 2, 2 }, E1 },
|
{ { "mcl_mobitems:rabbit_foot", 2, 2 }, E1 },
|
||||||
|
|
|
@ -124,7 +124,7 @@ end
|
||||||
local default_sounds
|
local default_sounds
|
||||||
if minetest.get_modpath("mcl_sounds") then
|
if minetest.get_modpath("mcl_sounds") then
|
||||||
default_sounds = mcl_sounds.node_sound_wood_defaults({
|
default_sounds = mcl_sounds.node_sound_wood_defaults({
|
||||||
footstep = { gain = 0.5, name = "mcl_sounds_cloth" },
|
footstep = mcl_sounds.node_sound_wool_defaults().footstep,
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -62,8 +62,6 @@ function mcl_cocoas.grow(pos)
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Note: cocoa beans are implemented as mcl_dye:brown
|
|
||||||
|
|
||||||
-- Cocoa definition
|
-- Cocoa definition
|
||||||
-- 1st stage
|
-- 1st stage
|
||||||
local crop_def = {
|
local crop_def = {
|
||||||
|
@ -78,7 +76,7 @@ local crop_def = {
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
walkable = true,
|
walkable = true,
|
||||||
drop = "mcl_dye:brown",
|
drop = "mcl_cocoas:cocoa_beans",
|
||||||
collision_box = {
|
collision_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {
|
fixed = {
|
||||||
|
@ -142,9 +140,20 @@ crop_def.selection_box = {
|
||||||
{-0.25, -0.3125, -0.0625, 0.25, 0.5, 0.5},
|
{-0.25, -0.3125, -0.0625, 0.25, 0.5, 0.5},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
crop_def.drop = "mcl_dye:brown 3"
|
crop_def.drop = "mcl_cocoas:cocoa_beans 3"
|
||||||
minetest.register_node("mcl_cocoas:cocoa_3", table.copy(crop_def))
|
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_cocoas_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",
|
||||||
|
|
|
@ -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 |
|
@ -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
|
||||||
|
|
|
@ -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"},
|
||||||
}
|
}
|
||||||
|
@ -482,7 +482,7 @@ minetest.register_craft({
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "cooking",
|
type = "cooking",
|
||||||
output = "mcl_dye:blue",
|
output = "mcl_core:lapis",
|
||||||
recipe = "mcl_core:stone_with_lapis",
|
recipe = "mcl_core:stone_with_lapis",
|
||||||
cooktime = 10,
|
cooktime = 10,
|
||||||
})
|
})
|
||||||
|
|
|
@ -101,6 +101,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."),
|
||||||
|
|
|
@ -1559,7 +1559,7 @@ function mcl_core.register_snowed_node(itemstring_snowed, itemstring_clear, tile
|
||||||
end
|
end
|
||||||
if not sounds then
|
if not sounds then
|
||||||
def.sounds = mcl_sounds.node_sound_dirt_defaults({
|
def.sounds = mcl_sounds.node_sound_dirt_defaults({
|
||||||
footstep = { name = "pedology_snow_soft_footstep", gain = 0.5 }
|
footstep = mcl_sounds.node_sound_snow_defaults().footstep,
|
||||||
})
|
})
|
||||||
else
|
else
|
||||||
def.sounds = sounds
|
def.sounds = sounds
|
||||||
|
|
|
@ -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=Bûche 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.
|
||||||
|
@ -283,4 +285,4 @@ Grows on sand or dirt next to water=Pousse sur le sable ou la terre près de l'e
|
||||||
Stackable=Empilable
|
Stackable=Empilable
|
||||||
Crying Obsidian=Obsidienne pleureuse
|
Crying Obsidian=Obsidienne pleureuse
|
||||||
Crying obsidian is a luminous obsidian that can generate as part of ruined portals.=L'obsidienne pleureuse est une obsidienne luminause qui peut être générée dans les portails en ruine.
|
Crying obsidian is a luminous obsidian that can generate as part of ruined portals.=L'obsidienne pleureuse est une obsidienne luminause qui peut être générée dans les portails en ruine.
|
||||||
Enchanted Golden Apple=Pomme dorée enchantée
|
Enchanted Golden Apple=Pomme dorée enchantée
|
||||||
|
|
|
@ -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.=
|
||||||
|
@ -283,4 +285,4 @@ Grows on sand or dirt next to water=
|
||||||
Stackable=
|
Stackable=
|
||||||
Crying Obsidian=
|
Crying Obsidian=
|
||||||
Crying obsidian is a luminous obsidian that can generate as part of ruined portals.=
|
Crying obsidian is a luminous obsidian that can generate as part of ruined portals.=
|
||||||
Enchanted Golden Apple=
|
Enchanted Golden Apple=
|
||||||
|
|
|
@ -187,11 +187,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(),
|
||||||
|
@ -542,9 +542,7 @@ minetest.register_node("mcl_core:gravel", {
|
||||||
{items = {"mcl_core:gravel"}}
|
{items = {"mcl_core:gravel"}}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
sounds = mcl_sounds.node_sound_dirt_defaults({
|
sounds = mcl_sounds.node_sound_gravel_defaults(),
|
||||||
footstep = {name="default_gravel_footstep", gain=0.45},
|
|
||||||
}),
|
|
||||||
_mcl_blast_resistance = 0.6,
|
_mcl_blast_resistance = 0.6,
|
||||||
_mcl_hardness = 0.6,
|
_mcl_hardness = 0.6,
|
||||||
_mcl_silk_touch_drop = true,
|
_mcl_silk_touch_drop = true,
|
||||||
|
@ -901,7 +899,7 @@ minetest.register_node("mcl_core:ice", {
|
||||||
stack_max = 64,
|
stack_max = 64,
|
||||||
groups = {handy=1,pickaxey=1, slippery=3, building_block=1, ice=1},
|
groups = {handy=1,pickaxey=1, slippery=3, building_block=1, ice=1},
|
||||||
drop = "",
|
drop = "",
|
||||||
sounds = mcl_sounds.node_sound_glass_defaults(),
|
sounds = mcl_sounds.node_sound_ice_defaults(),
|
||||||
node_dig_prediction = "mcl_core:water_source",
|
node_dig_prediction = "mcl_core:water_source",
|
||||||
after_dig_node = function(pos, oldnode)
|
after_dig_node = function(pos, oldnode)
|
||||||
mcl_core.melt_ice(pos)
|
mcl_core.melt_ice(pos)
|
||||||
|
@ -919,7 +917,7 @@ minetest.register_node("mcl_core:packed_ice", {
|
||||||
stack_max = 64,
|
stack_max = 64,
|
||||||
groups = {handy=1,pickaxey=1, slippery=3, building_block=1, ice=1},
|
groups = {handy=1,pickaxey=1, slippery=3, building_block=1, ice=1},
|
||||||
drop = "",
|
drop = "",
|
||||||
sounds = mcl_sounds.node_sound_glass_defaults(),
|
sounds = mcl_sounds.node_sound_ice_defaults(),
|
||||||
_mcl_blast_resistance = 0.5,
|
_mcl_blast_resistance = 0.5,
|
||||||
_mcl_hardness = 0.5,
|
_mcl_hardness = 0.5,
|
||||||
_mcl_silk_touch_drop = true,
|
_mcl_silk_touch_drop = true,
|
||||||
|
@ -967,7 +965,7 @@ for i=0,3 do
|
||||||
stack_max = 64,
|
stack_max = 64,
|
||||||
groups = {handy=1, frosted_ice=1, slippery=3, not_in_creative_inventory=1, ice=1},
|
groups = {handy=1, frosted_ice=1, slippery=3, not_in_creative_inventory=1, ice=1},
|
||||||
drop = "",
|
drop = "",
|
||||||
sounds = mcl_sounds.node_sound_glass_defaults(),
|
sounds = mcl_sounds.node_sound_ice_defaults(),
|
||||||
on_construct = function(pos)
|
on_construct = function(pos)
|
||||||
local timer = minetest.get_node_timer(pos)
|
local timer = minetest.get_node_timer(pos)
|
||||||
timer:start(1.5)
|
timer:start(1.5)
|
||||||
|
|
After Width: | Height: | Size: 169 B |
|
@ -82,7 +82,7 @@ minetest.register_node("mcl_crimson:warped_fungus", {
|
||||||
},
|
},
|
||||||
node_placement_prediction = "",
|
node_placement_prediction = "",
|
||||||
on_rightclick = function(pos, node, pointed_thing, player, itemstack)
|
on_rightclick = function(pos, node, pointed_thing, player, itemstack)
|
||||||
if pointed_thing:get_wielded_item():get_name() == "mcl_dye:white" then
|
if pointed_thing:get_wielded_item():get_name() == "mcl_bone_meal:bone_meal" then
|
||||||
local nodepos = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z})
|
local nodepos = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z})
|
||||||
if nodepos.name == "mcl_crimson:warped_nylium" or nodepos.name == "mcl_nether:netherrack" then
|
if nodepos.name == "mcl_crimson:warped_nylium" or nodepos.name == "mcl_nether:netherrack" then
|
||||||
local random = math.random(1, 5)
|
local random = math.random(1, 5)
|
||||||
|
@ -129,7 +129,7 @@ minetest.register_node("mcl_crimson:twisting_vines", {
|
||||||
itemstack:take_item()
|
itemstack:take_item()
|
||||||
end
|
end
|
||||||
grow_vines(pos, 1, "mcl_crimson:twisting_vines")
|
grow_vines(pos, 1, "mcl_crimson:twisting_vines")
|
||||||
elseif clicker:get_wielded_item():get_name() == "mcl_dye:white" then
|
elseif clicker:get_wielded_item():get_name() == "mcl_bone_meal:bone_meal" then
|
||||||
if not minetest.is_creative_enabled(clicker:get_player_name()) then
|
if not minetest.is_creative_enabled(clicker:get_player_name()) then
|
||||||
itemstack:take_item()
|
itemstack:take_item()
|
||||||
end
|
end
|
||||||
|
@ -185,7 +185,7 @@ minetest.register_node("mcl_crimson:weeping_vines", {
|
||||||
itemstack:take_item()
|
itemstack:take_item()
|
||||||
end
|
end
|
||||||
grow_vines(pos, 1, "mcl_crimson:weeping_vines", -1)
|
grow_vines(pos, 1, "mcl_crimson:weeping_vines", -1)
|
||||||
elseif clicker:get_wielded_item():get_name() == "mcl_dye:white" then
|
elseif clicker:get_wielded_item():get_name() == "mcl_bone_meal:bone_meal" then
|
||||||
if not minetest.is_creative_enabled(clicker:get_player_name()) then
|
if not minetest.is_creative_enabled(clicker:get_player_name()) then
|
||||||
itemstack:take_item()
|
itemstack:take_item()
|
||||||
end
|
end
|
||||||
|
@ -421,7 +421,7 @@ minetest.register_node("mcl_crimson:crimson_fungus", {
|
||||||
},
|
},
|
||||||
node_placement_prediction = "",
|
node_placement_prediction = "",
|
||||||
on_rightclick = function(pos, node, pointed_thing, player)
|
on_rightclick = function(pos, node, pointed_thing, player)
|
||||||
if pointed_thing:get_wielded_item():get_name() == "mcl_dye:white" then
|
if pointed_thing:get_wielded_item():get_name() == "mcl_bone_meal:bone_meal" then
|
||||||
local nodepos = minetest.get_node(vector.offset(pos, 0, -1, 0))
|
local nodepos = minetest.get_node(vector.offset(pos, 0, -1, 0))
|
||||||
if nodepos.name == "mcl_crimson:crimson_nylium" or nodepos.name == "mcl_nether:netherrack" then
|
if nodepos.name == "mcl_crimson:crimson_nylium" or nodepos.name == "mcl_nether:netherrack" then
|
||||||
local random = math.random(1, 5)
|
local random = math.random(1, 5)
|
||||||
|
|
|
@ -89,11 +89,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" } }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -103,7 +103,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
|
||||||
|
|
|
@ -18,10 +18,6 @@ local S = minetest.get_translator(minetest.get_current_modname())
|
||||||
local math = math
|
local math = math
|
||||||
local string = string
|
local string = string
|
||||||
|
|
||||||
-- Other mods can use these for looping through available colors
|
|
||||||
mcl_dye.basecolors = {"white", "grey", "black", "red", "yellow", "green", "cyan", "blue", "magenta"}
|
|
||||||
mcl_dye.excolors = {"white", "lightgrey", "grey", "darkgrey", "black", "red", "orange", "yellow", "lime", "green", "aqua", "cyan", "sky_blue", "blue", "violet", "magenta", "red_violet"}
|
|
||||||
|
|
||||||
-- Base color groups:
|
-- Base color groups:
|
||||||
-- - basecolor_white
|
-- - basecolor_white
|
||||||
-- - basecolor_grey
|
-- - basecolor_grey
|
||||||
|
@ -62,43 +58,43 @@ 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")
|
-- Other mods can use these for looping through available colors
|
||||||
|
mcl_dye.basecolors = {"white", "grey", "black", "magenta", "blue", "cyan", "green", "yellow", "orange", "red", "brown"}
|
||||||
|
mcl_dye.excolors = {"white", "grey", "darkgrey", "black", "violet", "blue", "cyan", "green", "yellow", "orange", "red", "red_violet"}
|
||||||
|
|
||||||
dyelocal.unicolor_to_dye_id = {}
|
local unicolor_to_dye_id = {}
|
||||||
for d=1, #dyelocal.dyes do
|
for d = 1, #dyes do
|
||||||
for k, _ in pairs(dyelocal.dyes[d][4]) do
|
for k, _ in pairs(dyes[d][3]) 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
|
||||||
|
@ -106,28 +102,21 @@ function mcl_dye.unicolor_to_dye(unicolor_group)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Define items
|
-- Define dye items.
|
||||||
for _, row in ipairs(dyelocal.dyes) do
|
--
|
||||||
local name = row[1]
|
for _, row in pairs(dyes) do
|
||||||
-- White and brown dyes are defined explicitly below
|
local name, desc, grps = unpack(row)
|
||||||
if name ~= "white" and name ~= "brown" then
|
minetest.register_craftitem("mcl_dye:" .. name, {
|
||||||
local img = row[2]
|
inventory_image = "mcl_dye_" .. name .. ".png",
|
||||||
local description = row[3]
|
description = desc,
|
||||||
local groups = row[4]
|
_doc_items_longdesc = S("This item is a dye which is used for dyeing and crafting."),
|
||||||
local item_name = "mcl_dye:"..name
|
_doc_items_usagehelp = S("Rightclick on a sheep to dye its wool. Other things are dyed by crafting."),
|
||||||
local item_image = img..".png"
|
groups = table.update({craftitem = 1, dye = 1}, grps)
|
||||||
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_usagehelp = S("Rightclick on a sheep to dye its wool. Other things are dyed by crafting."),
|
|
||||||
groups = groups,
|
|
||||||
stack_max = 64,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Bone Meal
|
-- Bone meal code to be moved into its own mod.
|
||||||
|
--
|
||||||
function mcl_dye.add_bone_meal_particle(pos, def)
|
function mcl_dye.add_bone_meal_particle(pos, def)
|
||||||
if not def then
|
if not def then
|
||||||
def = {}
|
def = {}
|
||||||
|
@ -381,14 +370,17 @@ end
|
||||||
|
|
||||||
mcl_dye.apply_bone_meal = apply_bone_meal
|
mcl_dye.apply_bone_meal = apply_bone_meal
|
||||||
|
|
||||||
minetest.register_craftitem("mcl_dye:white", {
|
-- Bone meal item registration.
|
||||||
inventory_image = "mcl_dye_white.png",
|
--
|
||||||
|
-- To be moved into its own mod.
|
||||||
|
--
|
||||||
|
minetest.register_craftitem(":mcl_bone_meal:bone_meal", {
|
||||||
|
inventory_image = "mcl_bone_meal_bone_meal.png",
|
||||||
description = S("Bone Meal"),
|
description = S("Bone Meal"),
|
||||||
_tt_help = S("Speeds up plant growth"),
|
_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_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."),
|
_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,
|
stack_max = 64,
|
||||||
groups = dyelocal.dyes[1][4],
|
|
||||||
on_place = function(itemstack, user, pointed_thing)
|
on_place = function(itemstack, user, pointed_thing)
|
||||||
-- Use pointed node's on_rightclick function first, if present
|
-- Use pointed node's on_rightclick function first, if present
|
||||||
local node = minetest.get_node(pointed_thing.under)
|
local node = minetest.get_node(pointed_thing.under)
|
||||||
|
@ -421,55 +413,160 @@ minetest.register_craftitem("mcl_dye:white", {
|
||||||
_dispense_into_walkable = true
|
_dispense_into_walkable = true
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craftitem("mcl_dye:brown", {
|
minetest.register_craft({
|
||||||
inventory_image = "mcl_dye_brown.png",
|
output = "mcl_bone_meal:bone_meal 3",
|
||||||
_tt_help = S("Grows at the side of jungle trees"),
|
recipe = {{"mcl_mobitems:bone"}},
|
||||||
_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 creation recipes.
|
||||||
|
--
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "mcl_dye:white",
|
||||||
|
recipe = {{"mcl_bone_meal:bone_meal"}},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "mcl_dye:black",
|
||||||
|
recipe = {{"mcl_mobitems:ink_sac"}},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "mcl_dye:yellow",
|
||||||
|
recipe = {{"mcl_flowers:dandelion"}},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "mcl_dye:yellow 2",
|
||||||
|
recipe = {{"mcl_flowers:sunflower"}},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "mcl_dye:blue",
|
||||||
|
recipe = {{"mcl_core:lapis"}},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "mcl_dye:lightblue",
|
||||||
|
recipe = {{"mcl_flowers:blue_orchid"}},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "mcl_dye:grey",
|
||||||
|
recipe = {{"mcl_flowers:azure_bluet"}},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "mcl_dye:grey",
|
||||||
|
recipe = {{"mcl_flowers:oxeye_daisy"}},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "mcl_dye:grey",
|
||||||
|
recipe = {{"mcl_flowers:tulip_white"}},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "mcl_dye:magenta",
|
||||||
|
recipe = {{"mcl_flowers:allium"}},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "mcl_dye:magenta 2",
|
||||||
|
recipe = {{"mcl_flowers:lilac"}},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "mcl_dye:orange",
|
||||||
|
recipe = {{"mcl_flowers:tulip_orange"}},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "mcl_dye:brown",
|
||||||
|
recipe = {{"mcl_cocoas:cocoa_beans"}},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "mcl_dye:pink",
|
||||||
|
recipe = {{"mcl_flowers:tulip_pink"}},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "mcl_dye:pink 2",
|
||||||
|
recipe = {{"mcl_flowers:peony"}},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "mcl_dye:red",
|
||||||
|
recipe = {{"mcl_farming:beetroot_item"}},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "mcl_dye:red",
|
||||||
|
recipe = {{"mcl_flowers:poppy"}},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "mcl_dye:red",
|
||||||
|
recipe = {{"mcl_flowers:tulip_red"}},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "mcl_dye:red 2",
|
||||||
|
recipe = {{"mcl_flowers:rose_bush"}},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "cooking",
|
||||||
|
output = "mcl_dye:dark_green",
|
||||||
|
recipe = "mcl_core:cactus",
|
||||||
|
cooktime = 10,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Dye mixing recipes.
|
||||||
|
--
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "shapeless",
|
type = "shapeless",
|
||||||
output = "mcl_dye:dark_grey 2",
|
output = "mcl_dye:dark_grey 2",
|
||||||
recipe = {"mcl_dye:black", "mcl_dye:white"},
|
recipe = {"mcl_dye:black", "mcl_dye:white"},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "shapeless",
|
type = "shapeless",
|
||||||
output = "mcl_dye:lightblue 2",
|
output = "mcl_dye:lightblue 2",
|
||||||
recipe = {"mcl_dye:blue", "mcl_dye:white"},
|
recipe = {"mcl_dye:blue", "mcl_dye:white"},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "shapeless",
|
type = "shapeless",
|
||||||
output = "mcl_dye:grey 3",
|
output = "mcl_dye:grey 3",
|
||||||
recipe = {"mcl_dye:black", "mcl_dye:white", "mcl_dye:white"},
|
recipe = {"mcl_dye:black", "mcl_dye:white", "mcl_dye:white"},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "shapeless",
|
type = "shapeless",
|
||||||
output = "mcl_dye:grey 2",
|
output = "mcl_dye:grey 2",
|
||||||
recipe = {"mcl_dye:dark_grey", "mcl_dye:white"},
|
recipe = {"mcl_dye:dark_grey", "mcl_dye:white"},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "shapeless",
|
type = "shapeless",
|
||||||
output = "mcl_dye:green 2",
|
output = "mcl_dye:green 2",
|
||||||
recipe = {"mcl_dye:dark_green", "mcl_dye:white"},
|
recipe = {"mcl_dye:dark_green", "mcl_dye:white"},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "shapeless",
|
type = "shapeless",
|
||||||
output = "mcl_dye:magenta 4",
|
output = "mcl_dye:magenta 4",
|
||||||
recipe = {"mcl_dye:blue", "mcl_dye:white", "mcl_dye:red", "mcl_dye:red"},
|
recipe = {"mcl_dye:blue", "mcl_dye:white", "mcl_dye:red", "mcl_dye:red"},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "shapeless",
|
type = "shapeless",
|
||||||
output = "mcl_dye:magenta 3",
|
output = "mcl_dye:magenta 3",
|
||||||
recipe = {"mcl_dye:pink", "mcl_dye:red", "mcl_dye:blue"},
|
recipe = {"mcl_dye:pink", "mcl_dye:red", "mcl_dye:blue"},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "shapeless",
|
type = "shapeless",
|
||||||
output = "mcl_dye:magenta 2",
|
output = "mcl_dye:magenta 2",
|
||||||
|
@ -493,80 +590,34 @@ minetest.register_craft({
|
||||||
output = "mcl_dye:violet 2",
|
output = "mcl_dye:violet 2",
|
||||||
recipe = {"mcl_dye:blue", "mcl_dye:red"},
|
recipe = {"mcl_dye:blue", "mcl_dye:red"},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "shapeless",
|
type = "shapeless",
|
||||||
output = "mcl_dye:orange 2",
|
output = "mcl_dye:orange 2",
|
||||||
recipe = {"mcl_dye:yellow", "mcl_dye:red"},
|
recipe = {"mcl_dye:yellow", "mcl_dye:red"},
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Dye creation
|
-- Legacy items grace conversion recipes.
|
||||||
|
--
|
||||||
|
-- These allow for retrieval of precious items that were converted into
|
||||||
|
-- dye items after refactoring of the dyes. Should be removed again in
|
||||||
|
-- the near future.
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "mcl_dye:yellow",
|
output = "mcl_bone_meal:bone_meal",
|
||||||
recipe = {{"mcl_flowers:dandelion"}},
|
recipe = {{"mcl_dye:white"}},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "mcl_dye:yellow 2",
|
output = "mcl_mobitems:ink_sac",
|
||||||
recipe = {{"mcl_flowers:sunflower"}},
|
recipe = {{"mcl_dye:black"}},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "mcl_dye:lightblue",
|
output = "mcl_core:lapis",
|
||||||
recipe = {{"mcl_flowers:blue_orchid"}},
|
recipe = {{"mcl_dye:blue"}},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "mcl_dye:grey",
|
output = "mcl_cocoas:cocoa_beans",
|
||||||
recipe = {{"mcl_flowers:azure_bluet"}},
|
recipe = {{"mcl_dye:brown"}},
|
||||||
})
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "mcl_dye:grey",
|
|
||||||
recipe = {{"mcl_flowers:oxeye_daisy"}},
|
|
||||||
})
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "mcl_dye:grey",
|
|
||||||
recipe = {{"mcl_flowers:tulip_white"}},
|
|
||||||
})
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "mcl_dye:magenta",
|
|
||||||
recipe = {{"mcl_flowers:allium"}},
|
|
||||||
})
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "mcl_dye:magenta 2",
|
|
||||||
recipe = {{"mcl_flowers:lilac"}},
|
|
||||||
})
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "mcl_dye:orange",
|
|
||||||
recipe = {{"mcl_flowers:tulip_orange"}},
|
|
||||||
})
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "mcl_dye:pink",
|
|
||||||
recipe = {{"mcl_flowers:tulip_pink"}},
|
|
||||||
})
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "mcl_dye:pink 2",
|
|
||||||
recipe = {{"mcl_flowers:peony"}},
|
|
||||||
})
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "mcl_dye:red",
|
|
||||||
recipe = {{"mcl_farming:beetroot_item"}},
|
|
||||||
})
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "mcl_dye:red",
|
|
||||||
recipe = {{"mcl_flowers:poppy"}},
|
|
||||||
})
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "mcl_dye:red",
|
|
||||||
recipe = {{"mcl_flowers:tulip_red"}},
|
|
||||||
})
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "mcl_dye:red 2",
|
|
||||||
recipe = {{"mcl_flowers:rose_bush"}},
|
|
||||||
})
|
|
||||||
minetest.register_craft({
|
|
||||||
type = "cooking",
|
|
||||||
output = "mcl_dye:dark_green",
|
|
||||||
recipe = "mcl_core:cactus",
|
|
||||||
cooktime = 10,
|
|
||||||
})
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "mcl_dye:white 3",
|
|
||||||
recipe = {{"mcl_mobitems:bone"}},
|
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
# 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
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
# 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
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
# 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=Teinture Jaune
|
Dandelion Yellow=Teinture Jaune
|
||||||
Cocoa Beans=Fèves de Cacao
|
Brown Dye=Teinture Marron
|
||||||
Orange Dye=Teinture Orange
|
Orange Dye=Teinture Orange
|
||||||
Rose Red=Teinture Rouge
|
Rose Red=Teinture Rouge
|
||||||
Magenta Dye=Teinture Magenta
|
Magenta Dye=Teinture Magenta
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
# 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
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
# 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=Фиолетовый краситель
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
# 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=洋紅色染料
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
# 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=
|
||||||
|
|
After Width: | Height: | Size: 165 B |
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 |
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
|
||||||
|
@ -608,7 +608,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
|
||||||
|
@ -631,7 +631,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
|
||||||
|
|
|
@ -41,7 +41,7 @@ for i=0, 3 do
|
||||||
minetest.record_protection_violation(pos, pn)
|
minetest.record_protection_violation(pos, pn)
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
if mcl_dye and clicker:get_wielded_item():get_name() == "mcl_dye:white" then
|
if mcl_dye and clicker:get_wielded_item():get_name() == "mcl_bone_meal:bone_meal" then
|
||||||
mcl_dye.apply_bone_meal({under=pos},clicker)
|
mcl_dye.apply_bone_meal({under=pos},clicker)
|
||||||
itemstack:take_item()
|
itemstack:take_item()
|
||||||
return
|
return
|
||||||
|
|
|
@ -117,7 +117,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"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|