Merge branch 'master' into simplified_palette_index
@ -95,6 +95,7 @@
|
||||
* anarquimico
|
||||
* TheOnlyJoeEnderman
|
||||
* Ranko Saotome
|
||||
* Gregor Parzefall
|
||||
|
||||
## MineClone5
|
||||
* kay27
|
||||
|
@ -18,35 +18,15 @@ Glass breaking sounds (CC BY 3.0):
|
||||
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
|
||||
|
BIN
mods/CORE/mcl_sounds/sounds/default_dig_choppy.1.ogg
Normal file
BIN
mods/CORE/mcl_sounds/sounds/default_dig_choppy.2.ogg
Normal file
BIN
mods/CORE/mcl_sounds/sounds/default_dig_choppy.3.ogg
Normal file
BIN
mods/CORE/mcl_sounds/sounds/default_dig_cracky.1.ogg
Normal file
BIN
mods/CORE/mcl_sounds/sounds/default_dig_cracky.2.ogg
Normal file
BIN
mods/CORE/mcl_sounds/sounds/default_dig_cracky.3.ogg
Normal file
BIN
mods/CORE/mcl_sounds/sounds/default_gravel_dig.1.ogg
Normal file
BIN
mods/CORE/mcl_sounds/sounds/default_gravel_dig.2.ogg
Normal file
BIN
mods/CORE/mcl_sounds/sounds/default_gravel_dug.1.ogg
Normal file
BIN
mods/CORE/mcl_sounds/sounds/default_gravel_dug.2.ogg
Normal file
BIN
mods/CORE/mcl_sounds/sounds/default_gravel_dug.3.ogg
Normal file
BIN
mods/CORE/mcl_sounds/sounds/default_ice_dig.1.ogg
Normal file
BIN
mods/CORE/mcl_sounds/sounds/default_ice_dig.2.ogg
Normal file
BIN
mods/CORE/mcl_sounds/sounds/default_ice_dig.3.ogg
Normal file
BIN
mods/CORE/mcl_sounds/sounds/default_ice_dug.ogg
Normal file
BIN
mods/CORE/mcl_sounds/sounds/default_ice_footstep.1.ogg
Normal file
BIN
mods/CORE/mcl_sounds/sounds/default_ice_footstep.2.ogg
Normal file
BIN
mods/CORE/mcl_sounds/sounds/default_ice_footstep.3.ogg
Normal file
BIN
mods/CORE/mcl_sounds/sounds/default_sand_footstep.3.ogg
Normal file
@ -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,6 +577,7 @@ minetest.register_chatcommand("spawn_mob",{
|
||||
|
||||
local mob = mcl_mobs.spawn(pos,mobname)
|
||||
|
||||
if mob then
|
||||
for c=1, #modifiers do
|
||||
modifs = modifiers[c]
|
||||
|
||||
@ -586,8 +585,6 @@ minetest.register_chatcommand("spawn_mob",{
|
||||
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 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,15 +615,13 @@ 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))
|
||||
end
|
||||
return true, mobname.." spawned at "..minetest.pos_to_string(pos)
|
||||
else
|
||||
return false, "Couldn't spawn "..mobname
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
if mobs_spawn then
|
||||
|
@ -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
|
||||
if not mother_stuck then
|
||||
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
|
||||
speed_penalty = 0.5
|
||||
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=
|
||||
|
BIN
mods/ITEMS/mcl_cocoas/textures/mcl_cocoas_cocoa_beans.png
Normal file
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.
|
||||
|
@ -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.=
|
||||
|
@ -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)
|
||||
|
BIN
mods/ITEMS/mcl_core/textures/mcl_core_lapis.png
Normal file
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,
|
||||
-- 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 = groups,
|
||||
stack_max = 64,
|
||||
groups = table.update({craftitem = 1, dye = 1}, grps)
|
||||
})
|
||||
end
|
||||
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=
|
||||
|
BIN
mods/ITEMS/mcl_dye/textures/mcl_bone_meal_bone_meal.png
Normal file
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 |
0
mods/ITEMS/mcl_dye/textures/dye_dark_green.png → mods/ITEMS/mcl_dye/textures/mcl_dye_dark_green.png
Before Width: | Height: | Size: 213 B After Width: | Height: | Size: 213 B |
Before Width: | Height: | Size: 213 B After Width: | Height: | Size: 213 B |
BIN
mods/ITEMS/mcl_dye/textures/mcl_dye_green.png
Normal file
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)
|
||||
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
|
||||
|