165 lines
5.6 KiB
Lua
165 lines
5.6 KiB
Lua
---------------
|
|
---- Honey ----
|
|
---------------
|
|
|
|
-- Variables
|
|
local S = minetest.get_translator(minetest.get_current_modname())
|
|
local alldirs = {{x=0,y=0,z=1}, {x=1,y=0,z=0}, {x=0,y=0,z=-1}, {x=-1,y=0,z=0}, {x=0,y=-1,z=0}, {x=0,y=1,z=0}}
|
|
|
|
-- Honeycomb
|
|
minetest.register_craftitem("mcl_honey:honeycomb", {
|
|
description = S("Honeycomb"),
|
|
_doc_items_longdesc = S("Used to craft beehives and protect copper blocks from further oxidation."),
|
|
_doc_items_usagehelp = S("Use on copper blocks to prevent further oxidation."),
|
|
inventory_image = "mcl_honey_honeycomb.png",
|
|
groups = { craftitem = 1 },
|
|
on_place = function(itemstack, placer, pointed_thing)
|
|
if pointed_thing.type ~= "node" then
|
|
return itemstack
|
|
end
|
|
local node = minetest.get_node(pointed_thing.under)
|
|
local pos = pointed_thing.under
|
|
local node_name = node.name
|
|
|
|
if minetest.get_modpath("mcl_copper") and mcl_copper then
|
|
if string.find(node_name,"mcl_copper") ~= nil then
|
|
if string.find(node_name,"waxed") == nil then
|
|
-- wax the copper block.
|
|
return mcl_copper.waxing_copper_block(pos, node, placer, itemstack)
|
|
end
|
|
end
|
|
end
|
|
end,
|
|
})
|
|
|
|
minetest.register_node("mcl_honey:honeycomb_block", {
|
|
description = S("Honeycomb Block"),
|
|
_doc_items_longdesc = S("Honeycomb Block. Used as a decoration."),
|
|
tiles = {
|
|
"mcl_honey_honeycomb_block.png"
|
|
},
|
|
groups = { handy = 1, deco_block = 1 },
|
|
sounds = {
|
|
dig = {name="slimenodes_dug", gain=0.6, pitch=1.2},
|
|
dug = {name="slimenodes_dug", gain=0.6},
|
|
place = {name="slimenodes_place", gain=0.6},
|
|
footstep = {name="slimenodes_step", gain=0.3},
|
|
},
|
|
_mcl_blast_resistance = 0.6,
|
|
_mcl_hardness = 0.6,
|
|
})
|
|
|
|
-- Honey
|
|
minetest.register_craftitem("mcl_honey:honey_bottle", {
|
|
description = S("Honey Bottle"),
|
|
_doc_items_longdesc = S("Honey Bottle is used to craft honey blocks and to restore hunger points."),
|
|
_doc_items_usagehelp = S("Drinking will restore 6 hunger points. Can also be used to craft honey blocks."),
|
|
inventory_image = "mcl_honey_honey_bottle.png",
|
|
groups = { craftitem = 1, food = 3, eatable = 6, can_eat_when_full=1 },
|
|
on_place = minetest.item_eat(6, "mcl_potions:glass_bottle"),
|
|
on_secondary_use = minetest.item_eat(6, "mcl_potions:glass_bottle"),
|
|
_mcl_saturation = 1.2,
|
|
stack_max = 16,
|
|
})
|
|
|
|
minetest.register_node("mcl_honey:honey_block", {
|
|
description = S("Honey Block"),
|
|
_doc_items_longdesc = S("Honey Block. Used as a decoration and in redstone. Is sticky on some sides."),
|
|
tiles = {"mcl_honey_block_side.png"},
|
|
use_texture_alpha = minetest.features.use_texture_alpha_string_modes and "blend" or true,
|
|
groups = { handy = 1, deco_block = 1, fall_damage_add_percent = -80 },
|
|
sounds = {
|
|
dug = {name="slimenodes_dug", gain=0.6},
|
|
place = {name="slimenodes_place", gain=0.6},
|
|
footstep = {name="slimenodes_step", gain=0.3},
|
|
},
|
|
paramtype = "light",
|
|
drawtype = "nodebox",
|
|
node_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{-0.4, -0.4, -0.4, 0.4, 0.4, 0.4},
|
|
{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
|
}
|
|
},
|
|
selection_box = {
|
|
type = "regular",
|
|
},
|
|
_mcl_blast_resistance = 0,
|
|
_mcl_hardness = 0,
|
|
mvps_sticky = function(pos, node, piston_pos)
|
|
local connected = {}
|
|
for n, v in ipairs(alldirs) do
|
|
local neighbor_pos = vector.add(pos, v)
|
|
local neighbor_node = minetest.get_node(neighbor_pos)
|
|
if neighbor_node then
|
|
if neighbor_node.name == "ignore" then
|
|
minetest.get_voxel_manip():read_from_map(neighbor_pos, neighbor_pos)
|
|
neighbor_node = minetest.get_node(neighbor_pos)
|
|
end
|
|
local name = neighbor_node.name
|
|
if name ~= "air" and name ~= "ignore" and not mesecon.mvps_unsticky[name] then
|
|
local piston, piston_side, piston_up, piston_down = false, false, false, false
|
|
if name == "mesecons_pistons:piston_sticky_off" or name == "mesecons_pistons:piston_normal_off" then
|
|
piston, piston_side = true, true
|
|
elseif name == "mesecons_pistons:piston_up_sticky_off" or name == "mesecons_pistons:piston_up_normal_off" then
|
|
piston, piston_up = true, true
|
|
elseif name == "mesecons_pistons:piston_down_sticky_off" or name == "mesecons_pistons:piston_down_normal_off" then
|
|
piston, piston_down = true, true
|
|
end
|
|
if not( (piston_side and (n-1==neighbor_node.param2)) or (piston_up and (n==5)) or (piston_down and (n==6)) ) then
|
|
if piston and piston_pos then
|
|
if piston_pos.x == neighbor_pos.x and piston_pos.y == neighbor_pos.y and piston_pos.z == neighbor_pos.z then
|
|
-- Loopback to the same piston! Preventing unwanted behavior:
|
|
return {}, true
|
|
end
|
|
end
|
|
table.insert(connected, neighbor_pos)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
return connected, false
|
|
end,
|
|
})
|
|
|
|
-- Crafting
|
|
minetest.register_craft({
|
|
output = "mcl_honey:honeycomb_block",
|
|
recipe = {
|
|
{ "mcl_honey:honeycomb", "mcl_honey:honeycomb" },
|
|
{ "mcl_honey:honeycomb", "mcl_honey:honeycomb" },
|
|
},
|
|
})
|
|
|
|
minetest.register_craft({
|
|
output = "mcl_honey:honey_block",
|
|
recipe = {
|
|
{ "mcl_honey:honey_bottle", "mcl_honey:honey_bottle" },
|
|
{ "mcl_honey:honey_bottle", "mcl_honey:honey_bottle" },
|
|
},
|
|
replacements = {
|
|
{ "mcl_honey:honey_bottle", "mcl_potions:glass_bottle" },
|
|
{ "mcl_honey:honey_bottle", "mcl_potions:glass_bottle" },
|
|
{ "mcl_honey:honey_bottle", "mcl_potions:glass_bottle" },
|
|
{ "mcl_honey:honey_bottle", "mcl_potions:glass_bottle" },
|
|
},
|
|
})
|
|
|
|
minetest.register_craft({
|
|
output = "mcl_honey:honey_bottle 4",
|
|
recipe = {
|
|
{ "mcl_potions:glass_bottle", "mcl_potions:glass_bottle", "mcl_honey:honey_block" },
|
|
{ "mcl_potions:glass_bottle", "mcl_potions:glass_bottle", "" },
|
|
},
|
|
})
|
|
|
|
minetest.register_craft({
|
|
type = "shapeless",
|
|
output = "mcl_core:sugar 3",
|
|
recipe = { "mcl_honey:honey_bottle" },
|
|
replacements = {
|
|
{ "mcl_honey:honey_bottle", "mcl_potions:glass_bottle" },
|
|
},
|
|
})
|