Merge branch 'master' into simplified_palette_index

This commit is contained in:
FossFanatic 2022-12-29 14:51:17 +00:00
commit 54548ecfdf
113 changed files with 595 additions and 446 deletions

@ -95,6 +95,7 @@
* anarquimico
* TheOnlyJoeEnderman
* Ranko Saotome
* Gregor Parzefall
## MineClone5
* kay27

@ -11,42 +11,22 @@ Creative Commons Attribution 3.0 Unported (CC BY-SA 3.0)
http://creativecommons.org/licenses/by/3.0/
Glass breaking sounds (CC BY 3.0):
1: http://www.freesound.org/people/cmusounddesign/sounds/71947/
2: http://www.freesound.org/people/Tomlija/sounds/97669/
3: http://www.freesound.org/people/lsprice/sounds/88808/
1: http://www.freesound.org/people/cmusounddesign/sounds/71947/
2: http://www.freesound.org/people/Tomlija/sounds/97669/
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
Mito551 (sounds) (CC BY-SA 3.0):
default_dig_choppy.ogg
default_dig_cracky.ogg
default_dig_crumbly.1.ogg
default_dig_crumbly.2.ogg
default_dig_crumbly.ogg
default_dig_oddly_breakable_by_hand.ogg
default_dug_node.1.ogg
default_dug_node.2.ogg
default_grass_footstep.1.ogg
default_grass_footstep.2.ogg
default_grass_footstep.3.ogg
default_gravel_footstep.1.ogg
default_gravel_footstep.2.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_dug_node.*.ogg
default_grass_footstep.*.ogg
default_gravel_footstep.*.ogg
default_place_node.*.ogg
default_place_node_hard.*.ogg
default_wood_footstep.*.ogg
default_dirt_footstep.*.ogg
default_glass_footstep.ogg
Metal sounds:
@ -54,35 +34,64 @@ Metal sounds:
- https://www.freesound.org/people/yadronoff/sounds/320397/
default_dug_metal.*.ogg - Iwan Gabovitch - qubodup - CC0
- http://opengameart.org/users/qubodup
default_metal_footstep.*.ogg - Ottomaani138 - CC0
- https://www.freesound.org/people/Ottomaani138/sounds/232692/
default_metal_footstep.*.ogg - (CC0 1.0) - CC0 1.0
- https://freesound.org/people/mypantsfelldown/sounds/398937/
default_place_node_metal.*.ogg - Ogrebane - CC0
- 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/
default_water_footstep.1.ogg
default_water_footstep.2.ogg
default_water_footstep.3.ogg
(default_water_footstep.4.ogg is silent)
default_water_footstep.*.ogg
blukotek (CC0 1.0)
blukotek (CC0 1.0):
https://www.freesound.org/people/blukotek/sounds/251660/
default_dig_snappy.ogg
sonictechtonic (CC BY 3.0)
sonictechtonic (CC BY 3.0):
https://www.freesound.org/people/sonictechtonic/sounds/241872/
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_dug_water.ogg
(Note: Artists from the Voxelands project include: sdzen, darkrose, sapier,
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
Adam_N (CC0 1.0):
@ -90,7 +99,7 @@ Adam_N (CC0 1.0):
Source: <https://www.freesound.org/people/Adam_N/sounds/346692/>
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>
Unknown authors (WTFPL):

@ -11,7 +11,7 @@ function mcl_sounds.node_sound_defaults(table)
table.dug = table.dug or
{name="default_dug_node", gain=0.25}
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
{name="default_place_node_hard", gain=1.0}
return table
@ -20,11 +20,11 @@ end
function mcl_sounds.node_sound_stone_defaults(table)
table = table 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
{name="default_hard_footstep", gain=1.0}
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)
return table
end
@ -32,13 +32,13 @@ end
function mcl_sounds.node_sound_metal_defaults(table)
table = table 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
{name="default_dug_metal", gain=1.0}
{name="default_dug_metal", gain=0.5}
table.dig = table.dig or
{name="default_dig_metal", gain=1.0}
{name="default_dig_metal", gain=0.5}
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)
return table
end
@ -46,11 +46,11 @@ end
function mcl_sounds.node_sound_dirt_defaults(table)
table = table 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
{name="default_dirt_footstep", gain=1.5}
{name="default_dirt_footstep", gain=1.0}
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)
@ -60,11 +60,25 @@ end
function mcl_sounds.node_sound_sand_defaults(table)
table = table 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
{name="default_sand_footstep", gain=1.0}
{name="default_sand_footstep", gain=0.15}
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
{name="default_place_node", gain=1.0}
mcl_sounds.node_sound_defaults(table)
@ -78,21 +92,33 @@ function mcl_sounds.node_sound_snow_defaults(table)
table.dug = table.dug or
{name="pedology_snow_soft_footstep", gain=1.0}
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
{name="default_place_node", gain=1.0}
mcl_sounds.node_sound_defaults(table)
return table
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)
table = table 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
{name="default_wood_footstep", gain=1.0}
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)
return table
end
@ -128,11 +154,11 @@ end
function mcl_sounds.node_sound_glass_defaults(table)
table = table 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
{name="default_break_glass", gain=1.0}
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)
return table
end

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -402,11 +402,9 @@ local two_pi = 2 * math.pi
local function get_next_mob_spawn_pos(pos)
local distance = math_random(25, 32)
local angle = math_random() * two_pi
return {
x = math_round(pos.x + distance * math_cos(angle)),
y = pos.y,
z = math_round(pos.z + distance * math_sin(angle))
}
local xoff = math_round(distance * math_cos(angle))
local yoff = math_round(distance * math_sin(angle))
return vector.offset(pos, xoff, 0, yoff)
end
local function decypher_limits(posy)
@ -559,7 +557,7 @@ local S = minetest.get_translator("mcl_mobs")
minetest.register_chatcommand("spawn_mob",{
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)
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)
for c=1, #modifiers do
modifs = modifiers[c]
if mob then
for c=1, #modifiers do
modifs = modifiers[c]
local mod1 = string.find(modifs, ":")
local mod_start = string.find(modifs, "<")
local mod_vals = string.find(modifs, "=")
local mod_end = string.find(modifs, ">")
local mod_end = string.find(modifs, ">")
if mob then
local mod1 = string.find(modifs, ":")
local mod_start = string.find(modifs, "<")
local mod_vals = string.find(modifs, "=")
local mod_end = string.find(modifs, ">")
local mob_entity = mob:get_luaentity()
if string.sub(modifs, mod1+1, mod1+3) == "var" 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")
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))
return true, mobname.." spawned at "..minetest.pos_to_string(pos)
else
return false, "Couldn't spawn "..mobname
end
return false, "Couldn't spawn "..mobname
end
})

@ -64,7 +64,7 @@ local cod = {
chance = 1,
min = 1,
max = 1,},
{name = "mcl_dye:white",
{name = "mcl_bone_meal:bone_meal",
chance = 20,
min = 1,
max = 1,},

@ -12,7 +12,7 @@ local cow_def = {
xp_min = 1,
xp_max = 3,
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,
visual = "mesh",
mesh = "mobs_mc_cow.b3d",

@ -2,4 +2,4 @@ name = mobs_mc
author = maikerumine
description = Adds Minecraft-like monsters and animals.
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,
min = 1,
max = 1,},
{name = "mcl_dye:white",
{name = "mcl_bone_meal:bone_meal",
chance = 20,
min = 1,
max = 1,},

@ -1,5 +1,8 @@
--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")
-- 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
-- pos: position of "mother" mob
-- child_mod: Mob to spawn
-- children_count: Number of children to spawn
-- spawn_distance: Spawn distance 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)
local angle, posadd, newpos, dir
local posadd, newpos, dir
if not eject_speed then
eject_speed = 1
end
local mndef = minetest.registered_nodes[minetest.get_node(pos).name]
local mother_stuck = mndef and mndef.walkable
angle = math.random(0, math.pi*2)
local angle = math.random(0, math.pi*2)
local children = {}
for i=1,children_count do
dir = {x=math.cos(angle),y=0,z=math.sin(angle)}
posadd = vector.multiply(vector.normalize(dir), spawn_distance)
newpos = vector.add(pos, posadd)
local spawn_count = math.random(2, 4)
for i = 1, spawn_count do
dir = vector.new(math.cos(angle), 0, math.sin(angle))
posadd = vector.normalize(dir) * spawn_distance
newpos = pos + posadd
-- If child would end up in a wall, use position of the "mother", unless
-- the "mother" was stuck as well
local speed_penalty = 1
local cndef = minetest.registered_nodes[minetest.get_node(newpos).name]
if (not mother_stuck) and cndef and cndef.walkable then
newpos = pos
speed_penalty = 0.5
if not mother_stuck then
local cndef = minetest.registered_nodes[minetest.get_node(newpos).name]
if cndef and cndef.walkable then
newpos = pos
eject_speed = eject_speed * 0.5
end
end
local mob = minetest.add_entity(newpos, child_mob)
if (not mother_stuck) then
mob:set_velocity(vector.multiply(dir, eject_speed * speed_penalty))
if not mother_stuck then
mob:set_velocity(dir * eject_speed)
end
mob:set_yaw(angle - math.pi/2)
table.insert(children, mob)
angle = angle + (math.pi*2)/children_count
angle = angle + (math.pi*2) / spawn_count
end
-- If mother was murdered, children attack the killer after 1 second
if self.state == "attack" then
minetest.after(1.0, function(children, enemy)
for c=1, #children do
local child = children[c]
local le = child:get_luaentity()
if le ~= nil then
local le
for c = 1, #children do
le = children[c]:get_luaentity()
if le then
le.state = "attack"
le.attack = enemy
end
@ -106,7 +110,7 @@ local slime_big = {
jump_height = 5.2,
fear_height = 0,
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,
}
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.jump_height = 4.3
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)
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)
local smin = mcl_vars.mg_overworld_min
local smax = mobs_mc.water_level - 23
local water_level = mobs_mc.water_level
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(
"mobs_mc:slime_tiny",
"overworld",
"ground",
{
"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",
},
cave_biomes,
0,
minetest.LIGHT_MAX+1,
30,
12000,
4,
smin,
smax)
cave_min,
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(
"mobs_mc:slime_small",
"overworld",
"ground",
{
"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",
},
cave_biomes,
0,
minetest.LIGHT_MAX+1,
30,
8500,
4,
smin,
smax)
cave_min,
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(
"mobs_mc:slime_big",
"overworld",
"ground",
{
"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",
},
cave_biomes,
0,
minetest.LIGHT_MAX+1,
30,
10000,
4,
smin,
smax)
cave_min,
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
local magma_cube_big = {
@ -345,7 +336,7 @@ local magma_cube_big = {
walk_chance = 0,
fear_height = 0,
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,
}
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.armor = 66
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)
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)
local mmin = mcl_vars.mg_nether_min
local mmax = mcl_vars.mg_nether_max
local magma_cube_biomes = {"Nether", "BasaltDelta"}
local nether_min = mcl_vars.mg_nether_min
local nether_max = mcl_vars.mg_nether_max
mcl_mobs:spawn_specific(
"mobs_mc:magma_cube_tiny",
"nether",
"ground",
{
"Nether",
"BasaltDelta",
},
magma_cube_biomes,
0,
minetest.LIGHT_MAX+1,
30,
15000,
4,
mmin,
mmax)
nether_min,
nether_max)
mcl_mobs:spawn_specific(
"mobs_mc:magma_cube_small",
"nether",
"ground",
{
"Nether",
"BasaltDelta",
},
magma_cube_biomes,
0,
minetest.LIGHT_MAX+1,
30,
15500,
4,
mmin,
mmax)
nether_min,
nether_max)
mcl_mobs:spawn_specific(
"mobs_mc:magma_cube_big",
"nether",
"ground",
{
"Nether",
"BasaltDelta",
},
magma_cube_biomes,
0,
minetest.LIGHT_MAX+1,
30,
16000,
4,
mmin,
mmax)
nether_min,
nether_max)
-- spawn eggs
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")
-- 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,
},
drops = {
{name = "mcl_dye:black",
{name = "mcl_mobitems:ink_sac",
chance = 1,
min = 1,
max = 3,

@ -87,7 +87,7 @@ local tropical_fish = {
chance = 1,
min = 1,
max = 1,},
{name = "mcl_dye:white",
{name = "mcl_bone_meal:bone_meal",
chance = 20,
min = 1,
max = 1,},

@ -479,7 +479,7 @@ local professions = {
},
{
{ { "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 },

@ -9,8 +9,8 @@ function mcl_weather.set_sky_box_clear(player, sky, fog)
local pos = player:get_pos()
if minetest.get_item_group(minetest.get_node(vector.new(pos.x,pos.y+1.5,pos.z)).name, "water") ~= 0 then return end
local sc = {
day_sky = "#0000FF", -- Pure blue to make debugging this stuff easier. Not visible during normal gameplay.
day_horizon = "#FF0000", -- Pure red to make debugging this stuff easier. Not visible during normal gameplay.
day_sky = "#7BA4FF",
day_horizon = "#C0D8FF",
dawn_sky = "#B4BAFA",
dawn_horizon = "#BAC1F0",
night_sky = "#000000",

@ -124,7 +124,7 @@ end
local default_sounds
if minetest.get_modpath("mcl_sounds") then
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

@ -62,8 +62,6 @@ function mcl_cocoas.grow(pos)
return false
end
-- Note: cocoa beans are implemented as mcl_dye:brown
-- Cocoa definition
-- 1st stage
local crop_def = {
@ -78,7 +76,7 @@ local crop_def = {
sunlight_propagates = true,
paramtype2 = "facedir",
walkable = true,
drop = "mcl_dye:brown",
drop = "mcl_cocoas:cocoa_beans",
collision_box = {
type = "fixed",
fixed = {
@ -142,9 +140,20 @@ crop_def.selection_box = {
{-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_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({
label = "Cocoa pod growth",

@ -1,4 +1,8 @@
# 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
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

@ -1,4 +1,8 @@
# 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
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

@ -1,4 +1,8 @@
# 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
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

@ -1,4 +1,8 @@
# 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
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

@ -1,4 +1,8 @@
# 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=Молодой стручок какао
Cocoa pods grow on the side of jungle trees in 3 stages.=Стручки какао растут на деревьях джунглей в 3 этапа.
Medium Cocoa Pod=Средний стручок какао

@ -1,4 +1,8 @@
# 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階段
Cocoa pods grow on the side of jungle trees in 3 stages.=可可莢果分3個階段生長在叢林樹的側面。
Medium Cocoa Pod=成長中的可可豆莢第2階段

@ -1,4 +1,8 @@
# 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=
Cocoa pods grow on the side of jungle trees in 3 stages.=
Medium Cocoa Pod=

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 B

@ -138,8 +138,8 @@ local function composter_harvest(pos, node, player, itemstack, pointed_thing)
end
-- reset ready type composter to empty type
swap_node(pos, {name="mcl_composters:composter"})
-- spawn bone meal item (wtf dye?! is this how they make white cocoa)
add_item(pos, "mcl_dye:white")
-- spawn bone meal item
add_item(pos, "mcl_bone_meal:bone_meal")
-- TODO play some sounds
return itemstack
end

@ -126,14 +126,14 @@ minetest.register_craft({
minetest.register_craft({
output = "mcl_core:bone_block",
recipe = {
{ "mcl_dye:white", "mcl_dye:white", "mcl_dye:white" },
{ "mcl_dye:white", "mcl_dye:white", "mcl_dye:white" },
{ "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_bone_meal:bone_meal", "mcl_bone_meal:bone_meal", "mcl_bone_meal:bone_meal" },
{ "mcl_bone_meal:bone_meal", "mcl_bone_meal:bone_meal", "mcl_bone_meal:bone_meal" },
},
})
minetest.register_craft({
output = "mcl_dye:white 9",
output = "mcl_bone_meal:bone_meal 9",
recipe = {
{ "mcl_core:bone_block" },
},
@ -298,14 +298,14 @@ minetest.register_craft({
minetest.register_craft({
output = "mcl_core:lapisblock",
recipe = {
{"mcl_dye:blue", "mcl_dye:blue", "mcl_dye:blue"},
{"mcl_dye:blue", "mcl_dye:blue", "mcl_dye:blue"},
{"mcl_dye:blue", "mcl_dye:blue", "mcl_dye:blue"},
{"mcl_core:lapis", "mcl_core:lapis", "mcl_core:lapis"},
{"mcl_core:lapis", "mcl_core:lapis", "mcl_core:lapis"},
{"mcl_core:lapis", "mcl_core:lapis", "mcl_core:lapis"},
}
})
minetest.register_craft({
output = "mcl_dye:blue 9",
output = "mcl_core:lapis 9",
recipe = {
{"mcl_core:lapisblock"},
}
@ -482,7 +482,7 @@ minetest.register_craft({
minetest.register_craft({
type = "cooking",
output = "mcl_dye:blue",
output = "mcl_core:lapis",
recipe = "mcl_core:stone_with_lapis",
cooktime = 10,
})

@ -101,6 +101,14 @@ minetest.register_craftitem("mcl_core:emerald", {
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", {
description = S("Brick"),
_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
if not sounds then
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
def.sounds = sounds

@ -130,6 +130,8 @@ Jungle Wood=Dschungelholz
Jungle Wood Planks=Dschungelholzplanken
Jungle leaves are grown from jungle trees.=Dschungelblätter wachsen an Dschungelbäumen.
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 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.

@ -130,6 +130,8 @@ Jungle Wood=Tronco 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.
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 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.

@ -130,6 +130,8 @@ Jungle Wood=Bûche 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.
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 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.
@ -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
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.
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 leaves are grown from jungle trees.=Tropikalne liście rosną na tropikalnych drzewach.
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 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.

@ -130,6 +130,8 @@ Jungle Wood=Дерево джунглей
Jungle Wood Planks=Доски из дерева джунглей
Jungle leaves are grown from jungle trees.=Листва дерева джунглей произрастает на деревьях джунглей.
Ladder=Лестница
Lapis Lazuli=Ляпис-лазурь
Lapis Lazuli are required for enchanting items on an enchanting table.=Лазурит требуется для зачарования предметов на столе зачаровывания.
Lapis Lazuli Block=Ляпис-лазурный блок
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.=Ляпис-лазурная руда это руда ляпис-лазури. Она изредка встречается в виде скоплений вблизи дна мира.

@ -129,6 +129,8 @@ Jungle Wood=叢林原木
Jungle Wood Planks=叢林木材
Jungle leaves are grown from jungle trees.=叢林樹葉是由叢林樹生長出來的。
Ladder=梯子
Lapis Lazuli=青金石
Lapis Lazuli are required for enchanting items on an enchanting table.=为附魔台上的物品附魔需要青金石。
Lapis Lazuli Block=青金石磚
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.=青金石礦是青金石的礦石。在世界底部附近能發現成群的和稀有的青金石礦。

@ -130,6 +130,8 @@ Jungle Wood=
Jungle Wood Planks=
Jungle leaves are grown from jungle trees.=
Ladder=
Lapis Lazuli=
Lapis Lazuli are required for enchanting items on an enchanting table.=
Lapis Lazuli Block=
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.=
@ -283,4 +285,4 @@ Grows on sand or dirt next to water=
Stackable=
Crying Obsidian=
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 = {
max_items = 1,
items = {
{items = {"mcl_dye:blue 8"},rarity = 5},
{items = {"mcl_dye:blue 7"},rarity = 5},
{items = {"mcl_dye:blue 6"},rarity = 5},
{items = {"mcl_dye:blue 5"},rarity = 5},
{items = {"mcl_dye:blue 4"}},
{items = {"mcl_core:lapis 8"},rarity = 5},
{items = {"mcl_core:lapis 7"},rarity = 5},
{items = {"mcl_core:lapis 6"},rarity = 5},
{items = {"mcl_core:lapis 5"},rarity = 5},
{items = {"mcl_core:lapis 4"}},
}
},
sounds = mcl_sounds.node_sound_stone_defaults(),
@ -542,9 +542,7 @@ minetest.register_node("mcl_core:gravel", {
{items = {"mcl_core:gravel"}}
}
},
sounds = mcl_sounds.node_sound_dirt_defaults({
footstep = {name="default_gravel_footstep", gain=0.45},
}),
sounds = mcl_sounds.node_sound_gravel_defaults(),
_mcl_blast_resistance = 0.6,
_mcl_hardness = 0.6,
_mcl_silk_touch_drop = true,
@ -901,7 +899,7 @@ minetest.register_node("mcl_core:ice", {
stack_max = 64,
groups = {handy=1,pickaxey=1, slippery=3, building_block=1, ice=1},
drop = "",
sounds = mcl_sounds.node_sound_glass_defaults(),
sounds = mcl_sounds.node_sound_ice_defaults(),
node_dig_prediction = "mcl_core:water_source",
after_dig_node = function(pos, oldnode)
mcl_core.melt_ice(pos)
@ -919,7 +917,7 @@ minetest.register_node("mcl_core:packed_ice", {
stack_max = 64,
groups = {handy=1,pickaxey=1, slippery=3, building_block=1, ice=1},
drop = "",
sounds = mcl_sounds.node_sound_glass_defaults(),
sounds = mcl_sounds.node_sound_ice_defaults(),
_mcl_blast_resistance = 0.5,
_mcl_hardness = 0.5,
_mcl_silk_touch_drop = true,
@ -967,7 +965,7 @@ for i=0,3 do
stack_max = 64,
groups = {handy=1, frosted_ice=1, slippery=3, not_in_creative_inventory=1, ice=1},
drop = "",
sounds = mcl_sounds.node_sound_glass_defaults(),
sounds = mcl_sounds.node_sound_ice_defaults(),
on_construct = function(pos)
local timer = minetest.get_node_timer(pos)
timer:start(1.5)

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 B

@ -82,7 +82,7 @@ minetest.register_node("mcl_crimson:warped_fungus", {
},
node_placement_prediction = "",
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})
if nodepos.name == "mcl_crimson:warped_nylium" or nodepos.name == "mcl_nether:netherrack" then
local random = math.random(1, 5)
@ -129,7 +129,7 @@ minetest.register_node("mcl_crimson:twisting_vines", {
itemstack:take_item()
end
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
itemstack:take_item()
end
@ -185,7 +185,7 @@ minetest.register_node("mcl_crimson:weeping_vines", {
itemstack:take_item()
end
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
itemstack:take_item()
end
@ -421,7 +421,7 @@ minetest.register_node("mcl_crimson:crimson_fungus", {
},
node_placement_prediction = "",
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))
if nodepos.name == "mcl_crimson:crimson_nylium" or nodepos.name == "mcl_nether:netherrack" then
local random = math.random(1, 5)

@ -89,11 +89,11 @@ end
local lapis_drops = {
max_items = 1, items = {
{ items = { "mcl_dye:blue 8" }, rarity = 5 },
{ items = { "mcl_dye:blue 7" }, rarity = 5 },
{ items = { "mcl_dye:blue 6" }, rarity = 5 },
{ items = { "mcl_dye:blue 5" }, rarity = 5 },
{ items = { "mcl_dye:blue 4" } }
{ items = { "mcl_core:lapis 8" }, rarity = 5 },
{ items = { "mcl_core:lapis 7" }, rarity = 5 },
{ items = { "mcl_core:lapis 6" }, rarity = 5 },
{ items = { "mcl_core:lapis 5" }, rarity = 5 },
{ items = { "mcl_core:lapis 4" } }
}
}
@ -103,7 +103,7 @@ local deepslate_ores = {
{ "Gold", "mcl_raw_ores:raw_gold", "mcl_core:gold_ingot", 4, 0 },
{ "Emerald", "mcl_core:emerald", "mcl_core:emerald", 4, 6 },
{ "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

@ -18,10 +18,6 @@ local S = minetest.get_translator(minetest.get_current_modname())
local math = math
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:
-- - basecolor_white
-- - basecolor_grey
@ -62,43 +58,43 @@ mcl_dye.excolors = {"white", "lightgrey", "grey", "darkgrey", "black", "red", "o
-- - unicolor_medium_<excolor>_s50
-- - unicolor_dark_<excolor>_s50
-- Local stuff
local dyelocal = {}
-- This collection of colors is partly a historic thing, partly something else.
dyelocal.dyes = {
{"white", "mcl_dye_white", S("Bone Meal"), {dye=1, craftitem=1, 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}},
{"dark_grey", "dye_dark_grey", S("Grey Dye"), {dye=1, craftitem=1, 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}},
{"violet", "dye_violet", S("Purple Dye"), {dye=1, craftitem=1, 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}},
{"lightblue", "mcl_dye_light_blue", S("Light Blue Dye"), {dye=1, craftitem=1, 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}},
{"dark_green", "dye_dark_green", S("Cactus Green"),{dye=1, craftitem=1, 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}},
{"yellow", "dye_yellow", S("Dandelion Yellow"), {dye=1, craftitem=1, 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}},
{"orange", "dye_orange", S("Orange Dye"), {dye=1, craftitem=1, 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}},
{"magenta", "dye_magenta", S("Magenta Dye"), {dye=1, craftitem=1, 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}},
local dyes = {
{"white", S("White Dye"), {basecolor_white=1, excolor_white=1, unicolor_white=1}},
{"grey", S("Light Grey Dye"), {basecolor_grey=1, excolor_grey=1, unicolor_grey=1}},
{"dark_grey", S("Grey Dye"), {basecolor_grey=1, excolor_darkgrey=1, unicolor_darkgrey=1}},
{"black", S("Black Dye"), {basecolor_black=1, excolor_black=1, unicolor_black=1}},
{"violet", S("Purple Dye"), {basecolor_magenta=1, excolor_violet=1, unicolor_violet=1}},
{"blue", S("Blue Dye"), {basecolor_blue=1, excolor_blue=1, unicolor_blue=1}},
{"lightblue", S("Light Blue Dye"), {basecolor_blue=1, excolor_blue=1, unicolor_light_blue=1}},
{"cyan", S("Cyan Dye"), {basecolor_cyan=1, excolor_cyan=1, unicolor_cyan=1}},
{"dark_green", S("Cactus Green"), {basecolor_green=1, excolor_green=1, unicolor_dark_green=1}},
{"green", S("Lime Dye"), {basecolor_green=1, excolor_green=1, unicolor_green=1}},
{"yellow", S("Dandelion Yellow"), {basecolor_yellow=1, excolor_yellow=1, unicolor_yellow=1}},
{"brown", S("Brown Dye"), {basecolor_brown=1, excolor_orange=1, unicolor_dark_orange=1}},
{"orange", S("Orange Dye"), {basecolor_orange=1, excolor_orange=1, unicolor_orange=1}},
{"red", S("Rose Red"), {basecolor_red=1, excolor_red=1, unicolor_red=1}},
{"magenta", S("Magenta Dye"), {basecolor_magenta=1, excolor_red_violet=1,unicolor_red_violet=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 = {}
for d=1, #dyelocal.dyes do
for k, _ in pairs(dyelocal.dyes[d][4]) do
local unicolor_to_dye_id = {}
for d = 1, #dyes do
for k, _ in pairs(dyes[d][3]) do
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
-- 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)
local color = dyelocal.unicolor_to_dye_id[unicolor_group]
local color = unicolor_to_dye_id[unicolor_group]
if color then
return "mcl_dye:" .. color
else
@ -106,28 +102,21 @@ function mcl_dye.unicolor_to_dye(unicolor_group)
end
end
-- Define items
for _, row in ipairs(dyelocal.dyes) do
local name = row[1]
-- White and brown dyes are defined explicitly below
if name ~= "white" and name ~= "brown" then
local img = row[2]
local description = row[3]
local groups = row[4]
local item_name = "mcl_dye:"..name
local item_image = img..".png"
minetest.register_craftitem(item_name, {
inventory_image = item_image,
description = description,
_doc_items_longdesc = S("This item is a dye which is used for dyeing and crafting."),
_doc_items_usagehelp = S("Rightclick on a sheep to dye its wool. Other things are dyed by crafting."),
groups = groups,
stack_max = 64,
})
end
-- Define dye items.
--
for _, row in pairs(dyes) do
local name, desc, grps = unpack(row)
minetest.register_craftitem("mcl_dye:" .. name, {
inventory_image = "mcl_dye_" .. name .. ".png",
description = desc,
_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 = table.update({craftitem = 1, dye = 1}, grps)
})
end
-- Bone Meal
-- Bone meal code to be moved into its own mod.
--
function mcl_dye.add_bone_meal_particle(pos, def)
if not def then
def = {}
@ -381,14 +370,17 @@ end
mcl_dye.apply_bone_meal = apply_bone_meal
minetest.register_craftitem("mcl_dye:white", {
inventory_image = "mcl_dye_white.png",
-- Bone meal item registration.
--
-- 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"),
_tt_help = S("Speeds up plant growth"),
_doc_items_longdesc = S("Bone meal is a white dye and also useful as a fertilizer to speed up the growth of many plants."),
_doc_items_usagehelp = S("Rightclick a sheep to turn its wool white. Rightclick a plant to speed up its growth. Note that not all plants can be fertilized like this. When you rightclick a grass block, tall grass and flowers will grow all over the place."),
stack_max = 64,
groups = dyelocal.dyes[1][4],
on_place = function(itemstack, user, pointed_thing)
-- Use pointed node's on_rightclick function first, if present
local node = minetest.get_node(pointed_thing.under)
@ -421,55 +413,160 @@ minetest.register_craftitem("mcl_dye:white", {
_dispense_into_walkable = true
})
minetest.register_craftitem("mcl_dye:brown", {
inventory_image = "mcl_dye_brown.png",
_tt_help = S("Grows at the side of jungle trees"),
_doc_items_longdesc = S("Cocoa beans are a brown dye and can be used to plant cocoas."),
_doc_items_usagehelp = S("Rightclick a sheep to turn its wool brown. Rightclick on the side of a jungle tree trunk (Jungle Wood) to plant a young cocoa."),
description = S("Cocoa Beans"),
stack_max = 64,
groups = dyelocal.dyes[12][4],
on_place = function(itemstack, placer, pointed_thing)
return mcl_cocoas.place(itemstack, placer, pointed_thing, "mcl_cocoas:cocoa_1")
end,
minetest.register_craft({
output = "mcl_bone_meal:bone_meal 3",
recipe = {{"mcl_mobitems:bone"}},
})
-- 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({
type = "shapeless",
output = "mcl_dye:dark_grey 2",
recipe = {"mcl_dye:black", "mcl_dye:white"},
})
minetest.register_craft({
type = "shapeless",
output = "mcl_dye:lightblue 2",
recipe = {"mcl_dye:blue", "mcl_dye:white"},
})
minetest.register_craft({
type = "shapeless",
output = "mcl_dye:grey 3",
recipe = {"mcl_dye:black", "mcl_dye:white", "mcl_dye:white"},
})
minetest.register_craft({
type = "shapeless",
output = "mcl_dye:grey 2",
recipe = {"mcl_dye:dark_grey", "mcl_dye:white"},
})
minetest.register_craft({
type = "shapeless",
output = "mcl_dye:green 2",
recipe = {"mcl_dye:dark_green", "mcl_dye:white"},
})
minetest.register_craft({
type = "shapeless",
output = "mcl_dye:magenta 4",
recipe = {"mcl_dye:blue", "mcl_dye:white", "mcl_dye:red", "mcl_dye:red"},
})
minetest.register_craft({
type = "shapeless",
output = "mcl_dye:magenta 3",
recipe = {"mcl_dye:pink", "mcl_dye:red", "mcl_dye:blue"},
})
minetest.register_craft({
type = "shapeless",
output = "mcl_dye:magenta 2",
@ -493,80 +590,34 @@ minetest.register_craft({
output = "mcl_dye:violet 2",
recipe = {"mcl_dye:blue", "mcl_dye:red"},
})
minetest.register_craft({
type = "shapeless",
output = "mcl_dye:orange 2",
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({
output = "mcl_dye:yellow",
recipe = {{"mcl_flowers:dandelion"}},
output = "mcl_bone_meal:bone_meal",
recipe = {{"mcl_dye:white"}},
})
minetest.register_craft({
output = "mcl_dye:yellow 2",
recipe = {{"mcl_flowers:sunflower"}},
output = "mcl_mobitems:ink_sac",
recipe = {{"mcl_dye:black"}},
})
minetest.register_craft({
output = "mcl_dye:lightblue",
recipe = {{"mcl_flowers:blue_orchid"}},
output = "mcl_core:lapis",
recipe = {{"mcl_dye:blue"}},
})
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: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"}},
output = "mcl_cocoas:cocoa_beans",
recipe = {{"mcl_dye:brown"}},
})

@ -1,16 +1,16 @@
# textdomain: mcl_dye
Bone Meal=Knochenmehl
White Dye=Weißer Farbstoff
Light Grey Dye=Hellgrauer Farbstoff
Grey Dye=Grauer Farbstoff
Ink Sac=Tintenbeutel
Black Dye=Schwarzer Farbstoff
Purple Dye=Violetter Farbstoff
Lapis Lazuli=Lapislazuli
Blue Dye=Blaue Farbstoff
Light Blue Dye=Hellblauer Farbstoff
Cyan Dye=Türkiser Farbstoff
Cactus Green=Kaktusgrün
Lime Dye=Lindgrüner Farbstoff
Dandelion Yellow=Löwenzahngelb
Cocoa Beans=Kakaobohnen
Brown Dye=Brauner Farbstoff
Orange Dye=Orange Farbstoff
Rose Red=Rosenrot
Magenta Dye=Magenta Farbstoff

@ -1,16 +1,16 @@
# textdomain: mcl_dye
Bone Meal=Harina de hueso
White Dye=Tinte blanca
Light Grey Dye=Tinte gris claro
Grey Dye=Tinte gris
Ink Sac=Saco de tinta
Black Dye=Tinte negro
Purple Dye=Tinte púrpura
Lapis Lazuli=Lapislázuli
Blue Dye=Tinte azul
Light Blue Dye=Tinte azul claro
Cyan Dye=Tinte cian
Cactus Green=Tinte verde
Lime Dye=Tinte amarillo verdoso
Dandelion Yellow=Tinte amarillo
Cocoa Beans=Granos de cacao
Brown Dye=Tinte marrón
Orange Dye=Tinte naranja
Rose Red=Tinte rojo
Magenta Dye=Tinte magenta

@ -1,16 +1,16 @@
# textdomain: mcl_dye
Bone Meal=Poudre d'Os
White Dye=Teinture Blanche
Light Grey Dye=Teinture Gris Clair
Grey Dye=Teinture Gris
Ink Sac=Poche d'Encre
Black Dye=Teinture Noire
Purple Dye=Teinture Violette
Lapis Lazuli=Lapis Lazuli
Blue Dye=Teinture Bleu
Light Blue Dye=Teinture Bleu Clair
Cyan Dye=Teinture Cyan
Cactus Green=Cactus Vert
Lime Dye=Teinture Vert Clair
Dandelion Yellow=Teinture Jaune
Cocoa Beans=Fèves de Cacao
Brown Dye=Teinture Marron
Orange Dye=Teinture Orange
Rose Red=Teinture Rouge
Magenta Dye=Teinture Magenta

@ -1,16 +1,16 @@
# textdomain: mcl_dye
Bone Meal=Mączka kostna
White Dye=Biały farba
Light Grey Dye=Jasnoszara farba
Grey Dye=Szara farba
Ink Sac=Torbiel z atramentem
Black Dye=Czarny farba
Purple Dye=Fioletowa farba
Lapis Lazuli=Lazuryt
Blue Dye=Niebieska farba
Light Blue Dye=Jasnoniebieska farba
Cyan Dye=Błękitna farba
Cactus Green=Kaktusowa zieleń
Lime Dye=Jasnozielona farba
Dandelion Yellow=Mleczowy żółty
Cocoa Beans=Ziarna kakaowe
Brown Dye=Brązowy farba
Orange Dye=Pomarańczowa farba
Rose Red=Różany czerwony
Magenta Dye=Karmazynowa farba

@ -1,16 +1,16 @@
# textdomain: mcl_dye
Bone Meal=Костная мука
White Dye=Белый краситель
Light Grey Dye=Светло-серый краситель
Grey Dye=Серый краситель
Ink Sac=Чернильный мешок
Black Dye=Чёрный краситель
Purple Dye=Пурпурный краситель
Lapis Lazuli=Ляпис-лазурь
Blue Dye=голубой краситель
Light Blue Dye=Светло-голубой краситель
Cyan Dye=Голубой краситель
Cactus Green=Зелень кактуса
Lime Dye=Зелёный лаймовый краситель
Dandelion Yellow=Одуванчиковый жёлтый краситель
Cocoa Beans=Какао-бобы
Brown Dye=Коричневый краситель
Orange Dye=Оранжевый краситель
Rose Red=Экстракт красной розы
Magenta Dye=Фиолетовый краситель

@ -1,16 +1,16 @@
# textdomain: mcl_dye
Bone Meal=骨粉
White Dye=白色染料
Light Grey Dye=淺灰色染料
Grey Dye=灰色染料
Ink Sac=墨囊
Black Dye=黑色染料
Purple Dye=紫色染料
Lapis Lazuli=青金石
Blue Dye=藍色染料
Light Blue Dye=淺藍色染料
Cyan Dye=青色染料
Cactus Green=仙人掌綠
Lime Dye=淺綠色染料
Dandelion Yellow=蒲公英黃
Cocoa Beans=可可豆
Brown Dye=棕色染料
Orange Dye=橙色染料
Rose Red=玫瑰紅
Magenta Dye=洋紅色染料

@ -1,16 +1,16 @@
# textdomain: mcl_dye
Bone Meal=
White Dye=
Light Grey Dye=
Grey Dye=
Ink Sac=
Black Dye=
Purple Dye=
Lapis Lazuli=
Blue Dye=
Light Blue Dye=
Cyan Dye=
Cactus Green=
Lime Dye=
Dandelion Yellow=
Cocoa Beans=
Brown Dye=
Orange Dye=
Rose Red=
Magenta Dye=

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 190 B

After

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 169 B

After

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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)
for i, slot in ipairs(table_slots) do
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 can_enchant = (slot and enough_lapis and enough_levels)
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 num_bookshelfes = meta:get_int("mcl_enchanting:num_bookshelves")
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
return
end
@ -608,7 +608,7 @@ function mcl_enchanting.allow_inventory_action(player, action, inventory, invent
if action == "move" then
local listname = inventory_info.to_list
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 old_stack = inventory:get_stack("enchanting_lapis", 1)
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
local stack = inventory:get_stack("enchanting", 1)
local result_list
if stack:get_name() == "mcl_dye:blue" then
if stack:get_name() == "mcl_core:lapis" then
result_list = "enchanting_lapis"
stack:add_item(inventory:get_stack("enchanting_lapis", 1))
else

@ -41,7 +41,7 @@ for i=0, 3 do
minetest.record_protection_violation(pos, pn)
return itemstack
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)
itemstack:take_item()
return

Some files were not shown because too many files have changed in this diff Show More