forked from VoxeLibre/VoxeLibre
Fix formating
This commit is contained in:
parent
2b46dd60c5
commit
c49f000894
|
@ -1,25 +1,24 @@
|
||||||
local S = minetest.get_translator(minetest.get_current_modname())
|
local S = minetest.get_translator(minetest.get_current_modname())
|
||||||
|
|
||||||
local LOGGING_ON = minetest.settings:get_bool("mcl_logging_hoppers",false)
|
local LOGGING_ON = minetest.settings:get_bool("mcl_logging_hoppers", false)
|
||||||
local function mcl_log (message)
|
local function mcl_log(message)
|
||||||
if LOGGING_ON then
|
if LOGGING_ON then
|
||||||
mcl_util.mcl_log (message, "[Hoppers]", true)
|
mcl_util.mcl_log(message, "[Hoppers]", true)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
--[[ BEGIN OF NODE DEFINITIONS ]]
|
--[[ BEGIN OF NODE DEFINITIONS ]]
|
||||||
|
|
||||||
local mcl_hoppers_formspec =
|
local mcl_hoppers_formspec = "size[9,7]" ..
|
||||||
"size[9,7]"..
|
"label[2,0;" .. minetest.formspec_escape(minetest.colorize("#313131", S("Hopper"))) .. "]" ..
|
||||||
"label[2,0;"..minetest.formspec_escape(minetest.colorize("#313131", S("Hopper"))).."]"..
|
"list[context;main;2,0.5;5,1;]" ..
|
||||||
"list[context;main;2,0.5;5,1;]"..
|
mcl_formspec.get_itemslot_bg(2, 0.5, 5, 1) ..
|
||||||
mcl_formspec.get_itemslot_bg(2,0.5,5,1)..
|
"label[0,2;" .. minetest.formspec_escape(minetest.colorize("#313131", S("Inventory"))) .. "]" ..
|
||||||
"label[0,2;"..minetest.formspec_escape(minetest.colorize("#313131", S("Inventory"))).."]"..
|
"list[current_player;main;0,2.5;9,3;9]" ..
|
||||||
"list[current_player;main;0,2.5;9,3;9]"..
|
mcl_formspec.get_itemslot_bg(0, 2.5, 9, 3) ..
|
||||||
mcl_formspec.get_itemslot_bg(0,2.5,9,3)..
|
"list[current_player;main;0,5.74;9,1;]" ..
|
||||||
"list[current_player;main;0,5.74;9,1;]"..
|
mcl_formspec.get_itemslot_bg(0, 5.74, 9, 1) ..
|
||||||
mcl_formspec.get_itemslot_bg(0,5.74,9,1)..
|
"listring[context;main]" ..
|
||||||
"listring[context;main]"..
|
|
||||||
"listring[current_player;main]"
|
"listring[current_player;main]"
|
||||||
|
|
||||||
-- Downwards hopper (base definition)
|
-- Downwards hopper (base definition)
|
||||||
|
@ -27,34 +26,36 @@ local mcl_hoppers_formspec =
|
||||||
local def_hopper = {
|
local def_hopper = {
|
||||||
inventory_image = "mcl_hoppers_item.png",
|
inventory_image = "mcl_hoppers_item.png",
|
||||||
wield_image = "mcl_hoppers_item.png",
|
wield_image = "mcl_hoppers_item.png",
|
||||||
groups = {pickaxey=1, container=2,deco_block=1,hopper=1},
|
groups = { pickaxey = 1, container = 2, deco_block = 1, hopper = 1 },
|
||||||
drawtype = "nodebox",
|
drawtype = "nodebox",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
-- FIXME: mcl_hoppers_hopper_inside.png is unused by hoppers.
|
-- FIXME: mcl_hoppers_hopper_inside.png is unused by hoppers.
|
||||||
tiles = {"mcl_hoppers_hopper_inside.png^mcl_hoppers_hopper_top.png", "mcl_hoppers_hopper_outside.png", "mcl_hoppers_hopper_outside.png", "mcl_hoppers_hopper_outside.png", "mcl_hoppers_hopper_outside.png", "mcl_hoppers_hopper_outside.png"},
|
tiles = { "mcl_hoppers_hopper_inside.png^mcl_hoppers_hopper_top.png", "mcl_hoppers_hopper_outside.png",
|
||||||
|
"mcl_hoppers_hopper_outside.png", "mcl_hoppers_hopper_outside.png", "mcl_hoppers_hopper_outside.png",
|
||||||
|
"mcl_hoppers_hopper_outside.png" },
|
||||||
node_box = {
|
node_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {
|
fixed = {
|
||||||
--funnel walls
|
--funnel walls
|
||||||
{-0.5, 0.0, 0.4, 0.5, 0.5, 0.5},
|
{ -0.5, 0.0, 0.4, 0.5, 0.5, 0.5 },
|
||||||
{0.4, 0.0, -0.5, 0.5, 0.5, 0.5},
|
{ 0.4, 0.0, -0.5, 0.5, 0.5, 0.5 },
|
||||||
{-0.5, 0.0, -0.5, -0.4, 0.5, 0.5},
|
{ -0.5, 0.0, -0.5, -0.4, 0.5, 0.5 },
|
||||||
{-0.5, 0.0, -0.5, 0.5, 0.5, -0.4},
|
{ -0.5, 0.0, -0.5, 0.5, 0.5, -0.4 },
|
||||||
--funnel base
|
--funnel base
|
||||||
{-0.5, 0.0, -0.5, 0.5, 0.1, 0.5},
|
{ -0.5, 0.0, -0.5, 0.5, 0.1, 0.5 },
|
||||||
--spout
|
--spout
|
||||||
{-0.3, -0.3, -0.3, 0.3, 0.0, 0.3},
|
{ -0.3, -0.3, -0.3, 0.3, 0.0, 0.3 },
|
||||||
{-0.1, -0.3, -0.1, 0.1, -0.5, 0.1},
|
{ -0.1, -0.3, -0.1, 0.1, -0.5, 0.1 },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
selection_box = {
|
selection_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {
|
fixed = {
|
||||||
--funnel
|
--funnel
|
||||||
{-0.5, 0.0, -0.5, 0.5, 0.5, 0.5},
|
{ -0.5, 0.0, -0.5, 0.5, 0.5, 0.5 },
|
||||||
--spout
|
--spout
|
||||||
{-0.3, -0.3, -0.3, 0.3, 0.0, 0.3},
|
{ -0.3, -0.3, -0.3, 0.3, 0.0, 0.3 },
|
||||||
{-0.1, -0.3, -0.1, 0.1, -0.5, 0.1},
|
{ -0.1, -0.3, -0.1, 0.1, -0.5, 0.1 },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
is_ground_content = false,
|
is_ground_content = false,
|
||||||
|
@ -71,10 +72,10 @@ local def_hopper = {
|
||||||
local meta2 = meta:to_table()
|
local meta2 = meta:to_table()
|
||||||
meta:from_table(oldmetadata)
|
meta:from_table(oldmetadata)
|
||||||
local inv = meta:get_inventory()
|
local inv = meta:get_inventory()
|
||||||
for i=1,inv:get_size("main") do
|
for i = 1, inv:get_size("main") do
|
||||||
local stack = inv:get_stack("main", i)
|
local stack = inv:get_stack("main", i)
|
||||||
if not stack:is_empty() then
|
if not stack:is_empty() then
|
||||||
local p = {x=pos.x+math.random(0, 10)/10-0.5, y=pos.y, z=pos.z+math.random(0, 10)/10-0.5}
|
local p = { x = pos.x + math.random(0, 10) / 10 - 0.5, y = pos.y, z = pos.z + math.random(0, 10) / 10 - 0.5 }
|
||||||
minetest.add_item(p, stack)
|
minetest.add_item(p, stack)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -108,16 +109,16 @@ local def_hopper = {
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
|
on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
|
||||||
minetest.log("action", player:get_player_name()..
|
minetest.log("action", player:get_player_name() ..
|
||||||
" moves stuff in mcl_hoppers at "..minetest.pos_to_string(pos))
|
" moves stuff in mcl_hoppers at " .. minetest.pos_to_string(pos))
|
||||||
end,
|
end,
|
||||||
on_metadata_inventory_put = function(pos, listname, index, stack, player)
|
on_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||||
minetest.log("action", player:get_player_name()..
|
minetest.log("action", player:get_player_name() ..
|
||||||
" moves stuff to mcl_hoppers at "..minetest.pos_to_string(pos))
|
" moves stuff to mcl_hoppers at " .. minetest.pos_to_string(pos))
|
||||||
end,
|
end,
|
||||||
on_metadata_inventory_take = function(pos, listname, index, stack, player)
|
on_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||||
minetest.log("action", player:get_player_name()..
|
minetest.log("action", player:get_player_name() ..
|
||||||
" takes stuff from mcl_hoppers at "..minetest.pos_to_string(pos))
|
" takes stuff from mcl_hoppers at " .. minetest.pos_to_string(pos))
|
||||||
end,
|
end,
|
||||||
sounds = mcl_sounds.node_sound_metal_defaults(),
|
sounds = mcl_sounds.node_sound_metal_defaults(),
|
||||||
|
|
||||||
|
@ -131,15 +132,19 @@ local def_hopper = {
|
||||||
-- Enabled downwards hopper
|
-- Enabled downwards hopper
|
||||||
local def_hopper_enabled = table.copy(def_hopper)
|
local def_hopper_enabled = table.copy(def_hopper)
|
||||||
def_hopper_enabled.description = S("Hopper")
|
def_hopper_enabled.description = S("Hopper")
|
||||||
def_hopper_enabled._tt_help = S("5 inventory slots").."\n"..S("Collects items from above, moves items to container below").."\n"..S("Can be disabled with redstone power")
|
def_hopper_enabled._tt_help = S("5 inventory slots") ..
|
||||||
def_hopper_enabled._doc_items_longdesc = S("Hoppers are containers with 5 inventory slots. They collect dropped items from above, take items from a container above and attempt to put its items it into an adjacent container. Hoppers can go either downwards or sideways. Hoppers interact with chests, droppers, dispensers, shulker boxes, furnaces and hoppers.").."\n\n"..
|
"\n" .. S("Collects items from above, moves items to container below") .. "\n" ..
|
||||||
|
S("Can be disabled with redstone power")
|
||||||
|
def_hopper_enabled._doc_items_longdesc = S("Hoppers are containers with 5 inventory slots. They collect dropped items from above, take items from a container above and attempt to put its items it into an adjacent container. Hoppers can go either downwards or sideways. Hoppers interact with chests, droppers, dispensers, shulker boxes, furnaces and hoppers.")
|
||||||
|
.. "\n\n" ..
|
||||||
|
|
||||||
S("Hoppers interact with containers the following way:").."\n"..
|
S("Hoppers interact with containers the following way:") .. "\n" ..
|
||||||
S("• Furnaces: Hoppers from above will put items into the source slot. Hoppers from below take items from the output slot. They also take items from the fuel slot when they can't be used as a fuel. Sideway hoppers that point to the furnace put items into the fuel slot").."\n"..
|
S("• Furnaces: Hoppers from above will put items into the source slot. Hoppers from below take items from the output slot. They also take items from the fuel slot when they can't be used as a fuel. Sideway hoppers that point to the furnace put items into the fuel slot")
|
||||||
S("• Ender chests: No interaction.").."\n"..
|
.. "\n" ..
|
||||||
S("• Other containers: Normal interaction.").."\n\n"..
|
S("• Ender chests: No interaction.") .. "\n" ..
|
||||||
|
S("• Other containers: Normal interaction.") .. "\n\n" ..
|
||||||
|
|
||||||
S("Hoppers can be disabled when supplied with redstone power. Disabled hoppers don't move items.")
|
S("Hoppers can be disabled when supplied with redstone power. Disabled hoppers don't move items.")
|
||||||
def_hopper_enabled._doc_items_usagehelp = S("To place a hopper vertically, place it on the floor or a ceiling. To place it sideways, place it at the side of a block. Use the hopper to access its inventory.")
|
def_hopper_enabled._doc_items_usagehelp = S("To place a hopper vertically, place it on the floor or a ceiling. To place it sideways, place it at the side of a block. Use the hopper to access its inventory.")
|
||||||
def_hopper_enabled.on_place = function(itemstack, placer, pointed_thing)
|
def_hopper_enabled.on_place = function(itemstack, placer, pointed_thing)
|
||||||
local upos = pointed_thing.under
|
local upos = pointed_thing.under
|
||||||
|
@ -173,14 +178,14 @@ def_hopper_enabled.on_place = function(itemstack, placer, pointed_thing)
|
||||||
fake_itemstack:set_name("mcl_hoppers:hopper_side")
|
fake_itemstack:set_name("mcl_hoppers:hopper_side")
|
||||||
param2 = 1
|
param2 = 1
|
||||||
end
|
end
|
||||||
local itemstack,_ = minetest.item_place_node(fake_itemstack, placer, pointed_thing, param2)
|
local itemstack, _ = minetest.item_place_node(fake_itemstack, placer, pointed_thing, param2)
|
||||||
itemstack:set_name("mcl_hoppers:hopper")
|
itemstack:set_name("mcl_hoppers:hopper")
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
def_hopper_enabled.mesecons = {
|
def_hopper_enabled.mesecons = {
|
||||||
effector = {
|
effector = {
|
||||||
action_on = function(pos, node)
|
action_on = function(pos, node)
|
||||||
minetest.swap_node(pos, {name="mcl_hoppers:hopper_disabled", param2=node.param2})
|
minetest.swap_node(pos, { name = "mcl_hoppers:hopper_disabled", param2 = node.param2 })
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -197,7 +202,7 @@ def_hopper_disabled.drop = "mcl_hoppers:hopper"
|
||||||
def_hopper_disabled.mesecons = {
|
def_hopper_disabled.mesecons = {
|
||||||
effector = {
|
effector = {
|
||||||
action_off = function(pos, node)
|
action_off = function(pos, node)
|
||||||
minetest.swap_node(pos, {name="mcl_hoppers:hopper", param2=node.param2})
|
minetest.swap_node(pos, { name = "mcl_hoppers:hopper", param2 = node.param2 })
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -215,34 +220,36 @@ end
|
||||||
local def_hopper_side = {
|
local def_hopper_side = {
|
||||||
_doc_items_create_entry = false,
|
_doc_items_create_entry = false,
|
||||||
drop = "mcl_hoppers:hopper",
|
drop = "mcl_hoppers:hopper",
|
||||||
groups = {pickaxey=1, container=2,not_in_creative_inventory=1,hopper=2},
|
groups = { pickaxey = 1, container = 2, not_in_creative_inventory = 1, hopper = 2 },
|
||||||
drawtype = "nodebox",
|
drawtype = "nodebox",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
tiles = {"mcl_hoppers_hopper_inside.png^mcl_hoppers_hopper_top.png", "mcl_hoppers_hopper_outside.png", "mcl_hoppers_hopper_outside.png", "mcl_hoppers_hopper_outside.png", "mcl_hoppers_hopper_outside.png", "mcl_hoppers_hopper_outside.png"},
|
tiles = { "mcl_hoppers_hopper_inside.png^mcl_hoppers_hopper_top.png", "mcl_hoppers_hopper_outside.png",
|
||||||
|
"mcl_hoppers_hopper_outside.png", "mcl_hoppers_hopper_outside.png", "mcl_hoppers_hopper_outside.png",
|
||||||
|
"mcl_hoppers_hopper_outside.png" },
|
||||||
node_box = {
|
node_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {
|
fixed = {
|
||||||
--funnel walls
|
--funnel walls
|
||||||
{-0.5, 0.0, 0.4, 0.5, 0.5, 0.5},
|
{ -0.5, 0.0, 0.4, 0.5, 0.5, 0.5 },
|
||||||
{0.4, 0.0, -0.5, 0.5, 0.5, 0.5},
|
{ 0.4, 0.0, -0.5, 0.5, 0.5, 0.5 },
|
||||||
{-0.5, 0.0, -0.5, -0.4, 0.5, 0.5},
|
{ -0.5, 0.0, -0.5, -0.4, 0.5, 0.5 },
|
||||||
{-0.5, 0.0, -0.5, 0.5, 0.5, -0.4},
|
{ -0.5, 0.0, -0.5, 0.5, 0.5, -0.4 },
|
||||||
--funnel base
|
--funnel base
|
||||||
{-0.5, 0.0, -0.5, 0.5, 0.1, 0.5},
|
{ -0.5, 0.0, -0.5, 0.5, 0.1, 0.5 },
|
||||||
--spout
|
--spout
|
||||||
{-0.3, -0.3, -0.3, 0.3, 0.0, 0.3},
|
{ -0.3, -0.3, -0.3, 0.3, 0.0, 0.3 },
|
||||||
{-0.5, -0.3, -0.1, 0.1, -0.1, 0.1},
|
{ -0.5, -0.3, -0.1, 0.1, -0.1, 0.1 },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
selection_box = {
|
selection_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {
|
fixed = {
|
||||||
--funnel
|
--funnel
|
||||||
{-0.5, 0.0, -0.5, 0.5, 0.5, 0.5},
|
{ -0.5, 0.0, -0.5, 0.5, 0.5, 0.5 },
|
||||||
--spout
|
--spout
|
||||||
{-0.3, -0.3, -0.3, 0.3, 0.0, 0.3},
|
{ -0.3, -0.3, -0.3, 0.3, 0.0, 0.3 },
|
||||||
{-0.5, -0.3, -0.1, 0.1, -0.1, 0.1},
|
{ -0.5, -0.3, -0.1, 0.1, -0.1, 0.1 },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
is_ground_content = false,
|
is_ground_content = false,
|
||||||
|
@ -259,10 +266,10 @@ local def_hopper_side = {
|
||||||
local meta2 = meta
|
local meta2 = meta
|
||||||
meta:from_table(oldmetadata)
|
meta:from_table(oldmetadata)
|
||||||
local inv = meta:get_inventory()
|
local inv = meta:get_inventory()
|
||||||
for i=1,inv:get_size("main") do
|
for i = 1, inv:get_size("main") do
|
||||||
local stack = inv:get_stack("main", i)
|
local stack = inv:get_stack("main", i)
|
||||||
if not stack:is_empty() then
|
if not stack:is_empty() then
|
||||||
local p = {x=pos.x+math.random(0, 10)/10-0.5, y=pos.y, z=pos.z+math.random(0, 10)/10-0.5}
|
local p = { x = pos.x + math.random(0, 10) / 10 - 0.5, y = pos.y, z = pos.z + math.random(0, 10) / 10 - 0.5 }
|
||||||
minetest.add_item(p, stack)
|
minetest.add_item(p, stack)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -296,16 +303,16 @@ local def_hopper_side = {
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
|
on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
|
||||||
minetest.log("action", player:get_player_name()..
|
minetest.log("action", player:get_player_name() ..
|
||||||
" moves stuff in mcl_hoppers at "..minetest.pos_to_string(pos))
|
" moves stuff in mcl_hoppers at " .. minetest.pos_to_string(pos))
|
||||||
end,
|
end,
|
||||||
on_metadata_inventory_put = function(pos, listname, index, stack, player)
|
on_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||||
minetest.log("action", player:get_player_name()..
|
minetest.log("action", player:get_player_name() ..
|
||||||
" moves stuff to mcl_hoppers at "..minetest.pos_to_string(pos))
|
" moves stuff to mcl_hoppers at " .. minetest.pos_to_string(pos))
|
||||||
end,
|
end,
|
||||||
on_metadata_inventory_take = function(pos, listname, index, stack, player)
|
on_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||||
minetest.log("action", player:get_player_name()..
|
minetest.log("action", player:get_player_name() ..
|
||||||
" takes stuff from mcl_hoppers at "..minetest.pos_to_string(pos))
|
" takes stuff from mcl_hoppers at " .. minetest.pos_to_string(pos))
|
||||||
end,
|
end,
|
||||||
on_rotate = on_rotate,
|
on_rotate = on_rotate,
|
||||||
sounds = mcl_sounds.node_sound_metal_defaults(),
|
sounds = mcl_sounds.node_sound_metal_defaults(),
|
||||||
|
@ -319,7 +326,7 @@ def_hopper_side_enabled.description = S("Side Hopper")
|
||||||
def_hopper_side_enabled.mesecons = {
|
def_hopper_side_enabled.mesecons = {
|
||||||
effector = {
|
effector = {
|
||||||
action_on = function(pos, node)
|
action_on = function(pos, node)
|
||||||
minetest.swap_node(pos, {name="mcl_hoppers:hopper_side_disabled", param2=node.param2})
|
minetest.swap_node(pos, { name = "mcl_hoppers:hopper_side_disabled", param2 = node.param2 })
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -330,7 +337,7 @@ def_hopper_side_disabled.description = S("Disabled Side Hopper")
|
||||||
def_hopper_side_disabled.mesecons = {
|
def_hopper_side_disabled.mesecons = {
|
||||||
effector = {
|
effector = {
|
||||||
action_off = function(pos, node)
|
action_off = function(pos, node)
|
||||||
minetest.swap_node(pos, {name="mcl_hoppers:hopper_side", param2=node.param2})
|
minetest.swap_node(pos, { name = "mcl_hoppers:hopper_side", param2 = node.param2 })
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -338,7 +345,7 @@ minetest.register_node("mcl_hoppers:hopper_side_disabled", def_hopper_side_disab
|
||||||
|
|
||||||
--[[ END OF NODE DEFINITIONS ]]
|
--[[ END OF NODE DEFINITIONS ]]
|
||||||
|
|
||||||
local function hopper_pull_from_mc (mc_ent, dest_pos, inv_size)
|
local function hopper_pull_from_mc(mc_ent, dest_pos, inv_size)
|
||||||
local inv = mcl_entity_invs.load_inv(mc_ent, inv_size)
|
local inv = mcl_entity_invs.load_inv(mc_ent, inv_size)
|
||||||
if not inv then
|
if not inv then
|
||||||
mcl_log("No inv")
|
mcl_log("No inv")
|
||||||
|
@ -353,7 +360,7 @@ local function hopper_pull_from_mc (mc_ent, dest_pos, inv_size)
|
||||||
end
|
end
|
||||||
|
|
||||||
mcl_log("inv. size: " .. mc_ent._inv_size)
|
mcl_log("inv. size: " .. mc_ent._inv_size)
|
||||||
for i = 1, mc_ent._inv_size,1 do
|
for i = 1, mc_ent._inv_size, 1 do
|
||||||
local stack = inv:get_stack("main", i)
|
local stack = inv:get_stack("main", i)
|
||||||
|
|
||||||
mcl_log("i: " .. tostring(i))
|
mcl_log("i: " .. tostring(i))
|
||||||
|
@ -382,8 +389,8 @@ end
|
||||||
--[[ BEGIN OF ABM DEFINITONS ]]
|
--[[ BEGIN OF ABM DEFINITONS ]]
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
label = "Hoppers pull from minecart",
|
label = "Hoppers pull from minecart hoppers",
|
||||||
nodenames = {"mcl_hoppers:hopper","mcl_hoppers:hopper_side"},
|
nodenames = { "mcl_hoppers:hopper", "mcl_hoppers:hopper_side" },
|
||||||
interval = 0.5,
|
interval = 0.5,
|
||||||
chance = 1,
|
chance = 1,
|
||||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||||
|
@ -391,14 +398,14 @@ minetest.register_abm({
|
||||||
local objs = minetest.get_objects_inside_radius(pos, 3)
|
local objs = minetest.get_objects_inside_radius(pos, 3)
|
||||||
|
|
||||||
if objs and #objs > 0 then
|
if objs and #objs > 0 then
|
||||||
for k,v in pairs(objs) do
|
for k, v in pairs(objs) do
|
||||||
local entity = v:get_luaentity()
|
local entity = v:get_luaentity()
|
||||||
if entity and entity.name then
|
if entity and entity.name then
|
||||||
--mcl_log("Name of object near: " .. tostring(entity.name))
|
--mcl_log("Name of object near: " .. tostring(entity.name))
|
||||||
|
|
||||||
if entity.name == "mcl_minecarts:hopper_minecart" or entity.name == "mcl_minecarts:chest_minecart"then
|
if entity.name == "mcl_minecarts:hopper_minecart" or entity.name == "mcl_minecarts:chest_minecart" then
|
||||||
local hm_pos = entity.object:get_pos()
|
local hm_pos = entity.object:get_pos()
|
||||||
mcl_log("We have a minecart with inventory close: ".. minetest.pos_to_string(hm_pos))
|
mcl_log("We have a minecart with inventory close: " .. minetest.pos_to_string(hm_pos))
|
||||||
|
|
||||||
--if hm_pos.y == pos.y + 1 then mcl_log("y is correct") end
|
--if hm_pos.y == pos.y + 1 then mcl_log("y is correct") end
|
||||||
--if (hm_pos.x >= pos.x - DIST_FROM_MC and hm_pos.x <= pos.x + DIST_FROM_MC) then mcl_log("x is within range") end
|
--if (hm_pos.x >= pos.x - DIST_FROM_MC and hm_pos.x <= pos.x + DIST_FROM_MC) then mcl_log("x is within range") end
|
||||||
|
@ -429,11 +436,11 @@ minetest.register_abm({
|
||||||
-- Make hoppers suck in dropped items
|
-- Make hoppers suck in dropped items
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
label = "Hoppers suck in dropped items",
|
label = "Hoppers suck in dropped items",
|
||||||
nodenames = {"mcl_hoppers:hopper","mcl_hoppers:hopper_side"},
|
nodenames = { "mcl_hoppers:hopper", "mcl_hoppers:hopper_side" },
|
||||||
interval = 1.0,
|
interval = 1.0,
|
||||||
chance = 1,
|
chance = 1,
|
||||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||||
local abovenode = minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z})
|
local abovenode = minetest.get_node({ x = pos.x, y = pos.y + 1, z = pos.z })
|
||||||
if not minetest.registered_items[abovenode.name] then return end
|
if not minetest.registered_items[abovenode.name] then return end
|
||||||
-- Don't bother checking item enties if node above is a container (should save some CPU)
|
-- Don't bother checking item enties if node above is a container (should save some CPU)
|
||||||
if minetest.get_item_group(abovenode.name, "container") ~= 0 then
|
if minetest.get_item_group(abovenode.name, "container") ~= 0 then
|
||||||
|
@ -442,15 +449,16 @@ minetest.register_abm({
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
local inv = meta:get_inventory()
|
local inv = meta:get_inventory()
|
||||||
|
|
||||||
for _,object in pairs(minetest.get_objects_inside_radius(pos, 2)) do
|
for _, object in pairs(minetest.get_objects_inside_radius(pos, 2)) do
|
||||||
if not object:is_player() and object:get_luaentity() and object:get_luaentity().name == "__builtin:item" and not object:get_luaentity()._removed then
|
if not object:is_player() and object:get_luaentity() and object:get_luaentity().name == "__builtin:item" and
|
||||||
|
not object:get_luaentity()._removed then
|
||||||
if inv and inv:room_for_item("main", ItemStack(object:get_luaentity().itemstring)) then
|
if inv and inv:room_for_item("main", ItemStack(object:get_luaentity().itemstring)) then
|
||||||
-- Item must get sucked in when the item just TOUCHES the block above the hopper
|
-- Item must get sucked in when the item just TOUCHES the block above the hopper
|
||||||
-- This is the reason for the Y calculation.
|
-- This is the reason for the Y calculation.
|
||||||
-- Test: Items on farmland and slabs get sucked, but items on full blocks don't
|
-- Test: Items on farmland and slabs get sucked, but items on full blocks don't
|
||||||
local posob = object:get_pos()
|
local posob = object:get_pos()
|
||||||
local posob_miny = posob.y + object:get_properties().collisionbox[2]
|
local posob_miny = posob.y + object:get_properties().collisionbox[2]
|
||||||
if math.abs(posob.x-pos.x) <= 0.5 and (posob_miny-pos.y < 1.5 and posob.y-pos.y >= 0.3) then
|
if math.abs(posob.x - pos.x) <= 0.5 and (posob_miny - pos.y < 1.5 and posob.y - pos.y >= 0.3) then
|
||||||
inv:add_item("main", ItemStack(object:get_luaentity().itemstring))
|
inv:add_item("main", ItemStack(object:get_luaentity().itemstring))
|
||||||
object:get_luaentity().itemstring = ""
|
object:get_luaentity().itemstring = ""
|
||||||
object:remove()
|
object:remove()
|
||||||
|
@ -478,14 +486,14 @@ end
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
label = "Hopper/container item exchange",
|
label = "Hopper/container item exchange",
|
||||||
nodenames = {"mcl_hoppers:hopper"},
|
nodenames = { "mcl_hoppers:hopper" },
|
||||||
neighbors = {"group:container"},
|
neighbors = { "group:container" },
|
||||||
interval = 1.0,
|
interval = 1.0,
|
||||||
chance = 1,
|
chance = 1,
|
||||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||||
-- Get node pos' for item transfer
|
-- Get node pos' for item transfer
|
||||||
local uppos = {x=pos.x,y=pos.y+1,z=pos.z}
|
local uppos = { x = pos.x, y = pos.y + 1, z = pos.z }
|
||||||
local downpos = {x=pos.x,y=pos.y-1,z=pos.z}
|
local downpos = { x = pos.x, y = pos.y - 1, z = pos.z }
|
||||||
|
|
||||||
-- Suck an item from the container above into the hopper
|
-- Suck an item from the container above into the hopper
|
||||||
local upnode = minetest.get_node(uppos)
|
local upnode = minetest.get_node(uppos)
|
||||||
|
@ -495,7 +503,7 @@ minetest.register_abm({
|
||||||
|
|
||||||
-- Also suck in non-fuel items from furnace fuel slot
|
-- Also suck in non-fuel items from furnace fuel slot
|
||||||
if not sucked and g == 4 then
|
if not sucked and g == 4 then
|
||||||
local finv = minetest.get_inventory({type="node", pos=uppos})
|
local finv = minetest.get_inventory({ type = "node", pos = uppos })
|
||||||
if finv and not mcl_util.is_fuel(finv:get_stack("fuel", 1)) then
|
if finv and not mcl_util.is_fuel(finv:get_stack("fuel", 1)) then
|
||||||
mcl_util.move_item_container(uppos, pos, "fuel")
|
mcl_util.move_item_container(uppos, pos, "fuel")
|
||||||
end
|
end
|
||||||
|
@ -510,8 +518,8 @@ minetest.register_abm({
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
label = "Side-hopper/container item exchange",
|
label = "Side-hopper/container item exchange",
|
||||||
nodenames = {"mcl_hoppers:hopper_side"},
|
nodenames = { "mcl_hoppers:hopper_side" },
|
||||||
neighbors = {"group:container"},
|
neighbors = { "group:container" },
|
||||||
interval = 1.0,
|
interval = 1.0,
|
||||||
chance = 1,
|
chance = 1,
|
||||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||||
|
@ -519,15 +527,15 @@ minetest.register_abm({
|
||||||
local face = minetest.get_node(pos).param2
|
local face = minetest.get_node(pos).param2
|
||||||
local front = {}
|
local front = {}
|
||||||
if face == 0 then
|
if face == 0 then
|
||||||
front = {x=pos.x-1,y=pos.y,z=pos.z}
|
front = { x = pos.x - 1, y = pos.y, z = pos.z }
|
||||||
elseif face == 1 then
|
elseif face == 1 then
|
||||||
front = {x=pos.x,y=pos.y,z=pos.z+1}
|
front = { x = pos.x, y = pos.y, z = pos.z + 1 }
|
||||||
elseif face == 2 then
|
elseif face == 2 then
|
||||||
front = {x=pos.x+1,y=pos.y,z=pos.z}
|
front = { x = pos.x + 1, y = pos.y, z = pos.z }
|
||||||
elseif face == 3 then
|
elseif face == 3 then
|
||||||
front = {x=pos.x,y=pos.y,z=pos.z-1}
|
front = { x = pos.x, y = pos.y, z = pos.z - 1 }
|
||||||
end
|
end
|
||||||
local above = {x=pos.x,y=pos.y+1,z=pos.z}
|
local above = { x = pos.x, y = pos.y + 1, z = pos.z }
|
||||||
|
|
||||||
local frontnode = minetest.get_node(front)
|
local frontnode = minetest.get_node(front)
|
||||||
if not minetest.registered_nodes[frontnode.name] then return end
|
if not minetest.registered_nodes[frontnode.name] then return end
|
||||||
|
@ -540,7 +548,7 @@ minetest.register_abm({
|
||||||
|
|
||||||
-- Also suck in non-fuel items from furnace fuel slot
|
-- Also suck in non-fuel items from furnace fuel slot
|
||||||
if not sucked and g == 4 then
|
if not sucked and g == 4 then
|
||||||
local finv = minetest.get_inventory({type="node", pos=above})
|
local finv = minetest.get_inventory({ type = "node", pos = above })
|
||||||
if finv and not mcl_util.is_fuel(finv:get_stack("fuel", 1)) then
|
if finv and not mcl_util.is_fuel(finv:get_stack("fuel", 1)) then
|
||||||
mcl_util.move_item_container(above, pos, "fuel")
|
mcl_util.move_item_container(above, pos, "fuel")
|
||||||
end
|
end
|
||||||
|
@ -552,9 +560,9 @@ minetest.register_abm({
|
||||||
mcl_util.move_item_container(pos, front)
|
mcl_util.move_item_container(pos, front)
|
||||||
elseif g == 4 then
|
elseif g == 4 then
|
||||||
-- Put fuel into fuel slot
|
-- Put fuel into fuel slot
|
||||||
local sinv = minetest.get_inventory({type="node", pos = pos})
|
local sinv = minetest.get_inventory({ type = "node", pos = pos })
|
||||||
local dinv = minetest.get_inventory({type="node", pos = front})
|
local dinv = minetest.get_inventory({ type = "node", pos = front })
|
||||||
local slot_id,_ = mcl_util.get_eligible_transfer_item_slot(sinv, "main", dinv, "fuel", is_transferrable_fuel)
|
local slot_id, _ = mcl_util.get_eligible_transfer_item_slot(sinv, "main", dinv, "fuel", is_transferrable_fuel)
|
||||||
if slot_id then
|
if slot_id then
|
||||||
mcl_util.move_item_container(pos, front, nil, slot_id, "fuel")
|
mcl_util.move_item_container(pos, front, nil, slot_id, "fuel")
|
||||||
end
|
end
|
||||||
|
@ -564,19 +572,19 @@ minetest.register_abm({
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
label = "Bonemeal extraction from composter",
|
label = "Bonemeal extraction from composter",
|
||||||
nodenames = {"mcl_hoppers:hopper", "mcl_hoppers:hopper_side"},
|
nodenames = { "mcl_hoppers:hopper", "mcl_hoppers:hopper_side" },
|
||||||
neighbors = {"mcl_composters:composter_ready"},
|
neighbors = { "mcl_composters:composter_ready" },
|
||||||
interval = 1.0,
|
interval = 1.0,
|
||||||
chance = 1,
|
chance = 1,
|
||||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||||
local uppos = {x=pos.x,y=pos.y+1,z=pos.z}
|
local uppos = { x = pos.x, y = pos.y + 1, z = pos.z }
|
||||||
local downpos = {x=pos.x,y=pos.y-1,z=pos.z}
|
local downpos = { x = pos.x, y = pos.y - 1, z = pos.z }
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
local inv = meta:get_inventory()
|
local inv = meta:get_inventory()
|
||||||
-- Get bonemeal from composter above
|
-- Get bonemeal from composter above
|
||||||
local upnode = minetest.get_node(uppos)
|
local upnode = minetest.get_node(uppos)
|
||||||
if upnode.name == "mcl_composters:composter_ready" then
|
if upnode.name == "mcl_composters:composter_ready" then
|
||||||
minetest.swap_node(uppos, {name="mcl_composters:composter"})
|
minetest.swap_node(uppos, { name = "mcl_composters:composter" })
|
||||||
inv:add_item("main", "mcl_dye:white")
|
inv:add_item("main", "mcl_dye:white")
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
|
@ -584,15 +592,15 @@ minetest.register_abm({
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
label = "Add compostable items on composter",
|
label = "Add compostable items on composter",
|
||||||
nodenames = {"mcl_hoppers:hopper"},
|
nodenames = { "mcl_hoppers:hopper" },
|
||||||
neighbors = {"mcl_composters:composter", "mcl_composters:composter_1", "mcl_composters:composter_2",
|
neighbors = { "mcl_composters:composter", "mcl_composters:composter_1", "mcl_composters:composter_2",
|
||||||
"mcl_composters:composter_3", "mcl_composters:composter_4", "mcl_composters:composter_5",
|
"mcl_composters:composter_3", "mcl_composters:composter_4", "mcl_composters:composter_5",
|
||||||
"mcl_composters:composter_6", "mcl_composters:composter_7",},
|
"mcl_composters:composter_6", "mcl_composters:composter_7", },
|
||||||
interval = 1.0,
|
interval = 1.0,
|
||||||
chance = 1,
|
chance = 1,
|
||||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||||
local uppos = {x=pos.x,y=pos.y+1,z=pos.z}
|
local uppos = { x = pos.x, y = pos.y + 1, z = pos.z }
|
||||||
local downpos = {x=pos.x,y=pos.y-1,z=pos.z}
|
local downpos = { x = pos.x, y = pos.y - 1, z = pos.z }
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
local inv = meta:get_inventory()
|
local inv = meta:get_inventory()
|
||||||
--Consume compostable items and update composter below
|
--Consume compostable items and update composter below
|
||||||
|
@ -602,23 +610,23 @@ minetest.register_abm({
|
||||||
or downnode.name == "mcl_composters:composter_4" or downnode.name == "mcl_composters:composter_5"
|
or downnode.name == "mcl_composters:composter_4" or downnode.name == "mcl_composters:composter_5"
|
||||||
or downnode.name == "mcl_composters:composter_6" or downnode.name == "mcl_composters:composter_7" then
|
or downnode.name == "mcl_composters:composter_6" or downnode.name == "mcl_composters:composter_7" then
|
||||||
local itemcomp = inv:get_list("main")
|
local itemcomp = inv:get_list("main")
|
||||||
local hslot = mcl_util.get_first_occupied_inventory_slot(minetest.get_inventory({type="node", pos = pos}), "main")
|
local hslot = mcl_util.get_first_occupied_inventory_slot(minetest.get_inventory({ type = "node", pos = pos }), "main")
|
||||||
if hslot == nil then return end
|
if hslot == nil then return end
|
||||||
local compchance = minetest.get_item_group(itemcomp[hslot]:get_name(), "compostability")
|
local compchance = minetest.get_item_group(itemcomp[hslot]:get_name(), "compostability")
|
||||||
if compchance == 0 then
|
if compchance == 0 then
|
||||||
hslot = hslot+1
|
hslot = hslot + 1
|
||||||
if hslot == 6 then return end
|
if hslot == 6 then return end
|
||||||
compchance = minetest.get_item_group(itemcomp[hslot]:get_name(), "compostability")
|
compchance = minetest.get_item_group(itemcomp[hslot]:get_name(), "compostability")
|
||||||
if compchance == 0 then
|
if compchance == 0 then
|
||||||
hslot = hslot+1
|
hslot = hslot + 1
|
||||||
if hslot == 6 then return end
|
if hslot == 6 then return end
|
||||||
compchance = minetest.get_item_group(itemcomp[hslot]:get_name(), "compostability")
|
compchance = minetest.get_item_group(itemcomp[hslot]:get_name(), "compostability")
|
||||||
if compchance == 0 then
|
if compchance == 0 then
|
||||||
hslot = hslot+1
|
hslot = hslot + 1
|
||||||
if hslot == 6 then return end
|
if hslot == 6 then return end
|
||||||
compchance = minetest.get_item_group(itemcomp[hslot]:get_name(), "compostability")
|
compchance = minetest.get_item_group(itemcomp[hslot]:get_name(), "compostability")
|
||||||
if compchance == 0 then
|
if compchance == 0 then
|
||||||
hslot = hslot+1
|
hslot = hslot + 1
|
||||||
if hslot == 6 then return end
|
if hslot == 6 then return end
|
||||||
compchance = minetest.get_item_group(itemcomp[hslot]:get_name(), "compostability")
|
compchance = minetest.get_item_group(itemcomp[hslot]:get_name(), "compostability")
|
||||||
end
|
end
|
||||||
|
@ -628,7 +636,7 @@ minetest.register_abm({
|
||||||
if compchance > 0 then
|
if compchance > 0 then
|
||||||
itemcomp[hslot]:take_item()
|
itemcomp[hslot]:take_item()
|
||||||
inv:set_list("main", itemcomp)
|
inv:set_list("main", itemcomp)
|
||||||
local rand = math.random(0,100)
|
local rand = math.random(0, 100)
|
||||||
if compchance >= rand then
|
if compchance >= rand then
|
||||||
local level = 0
|
local level = 0
|
||||||
if downnode.name == "mcl_composters:composter_1" then
|
if downnode.name == "mcl_composters:composter_1" then
|
||||||
|
@ -646,13 +654,13 @@ minetest.register_abm({
|
||||||
elseif downnode.name == "mcl_composters:composter_7" then
|
elseif downnode.name == "mcl_composters:composter_7" then
|
||||||
level = 7
|
level = 7
|
||||||
end
|
end
|
||||||
mcl_dye.add_bone_meal_particle(vector.offset(downpos, 0, level/8, 0))
|
mcl_dye.add_bone_meal_particle(vector.offset(downpos, 0, level / 8, 0))
|
||||||
if level < 7 then
|
if level < 7 then
|
||||||
level = level + 1
|
level = level + 1
|
||||||
else
|
else
|
||||||
level = "ready"
|
level = "ready"
|
||||||
end
|
end
|
||||||
minetest.swap_node(downpos, {name="mcl_composters:composter_" .. level})
|
minetest.swap_node(downpos, { name = "mcl_composters:composter_" .. level })
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -662,9 +670,9 @@ minetest.register_abm({
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "mcl_hoppers:hopper",
|
output = "mcl_hoppers:hopper",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"mcl_core:iron_ingot","","mcl_core:iron_ingot"},
|
{ "mcl_core:iron_ingot", "", "mcl_core:iron_ingot" },
|
||||||
{"mcl_core:iron_ingot","mcl_chests:chest","mcl_core:iron_ingot"},
|
{ "mcl_core:iron_ingot", "mcl_chests:chest", "mcl_core:iron_ingot" },
|
||||||
{"","mcl_core:iron_ingot",""},
|
{ "", "mcl_core:iron_ingot", "" },
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue