Add new fluid -tar
|
@ -145,18 +145,31 @@ function owl_tech.send_item_in_inventory(pos)
|
||||||
or minetest.get_node(mass_pos[i]).name=="mcl_chests:trapped_chest_small"
|
or minetest.get_node(mass_pos[i]).name=="mcl_chests:trapped_chest_small"
|
||||||
or minetest.get_node(mass_pos[i]).name=="mcl_chests:ender_chest"
|
or minetest.get_node(mass_pos[i]).name=="mcl_chests:ender_chest"
|
||||||
or minetest.get_node(mass_pos[i]).name=="mcl_chests:ender_chest_small" then -- for chest
|
or minetest.get_node(mass_pos[i]).name=="mcl_chests:ender_chest_small" then -- for chest
|
||||||
|
local meta_source = minetest.get_meta(mass_pos[i])
|
||||||
|
local inv_sourc = meta_source:get_inventory()
|
||||||
|
if not inv:is_empty("pipe_inv") then
|
||||||
|
for k = 1, #(inv_sourc:get_list("main")),1 do
|
||||||
|
if (inv_sourc:room_for_item("main", inv:get_stack("pipe_inv", 1)) and not ((inv:get_stack("pipe_inv", 1)):is_empty() ))then
|
||||||
|
inv_sourc:add_item("main", inv:get_stack("pipe_inv", 1))
|
||||||
|
inv:set_stack("pipe_inv", 1,'' )
|
||||||
|
do return end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
for j, value1 in pairs(INPUT_SLOT_NAME) do
|
||||||
|
if minetest.get_item_group((minetest.get_node(mass_pos[i])).name,INPUT_SLOT_NAME[j])>0 then-- for special item slots
|
||||||
local meta_source = minetest.get_meta(mass_pos[i])
|
local meta_source = minetest.get_meta(mass_pos[i])
|
||||||
local inv_sourc = meta_source:get_inventory()
|
local inv_sourc = meta_source:get_inventory()
|
||||||
if not inv:is_empty("pipe_inv") then
|
if not inv:is_empty("pipe_inv") and inv_sourc:is_empty(INPUT_SLOT_NAME[j]) then
|
||||||
for k = 1, #(inv_sourc:get_list("main")),1 do
|
if inv_sourc:room_for_item(INPUT_SLOT_NAME[j], inv:get_stack("pipe_inv", 1)) and meta:get_int("has_filte")==0 then-- no filters
|
||||||
if (inv_sourc:room_for_item("main", inv:get_stack("pipe_inv", 1)) and not ((inv:get_stack("pipe_inv", 1)):is_empty() ))then
|
inv_sourc:add_item(INPUT_SLOT_NAME[j], inv:get_stack("pipe_inv", 1))
|
||||||
inv_sourc:add_item("main", inv:get_stack("pipe_inv", 1))
|
inv:set_stack("pipe_inv",1,'')
|
||||||
inv:set_stack("pipe_inv", 1,'' )
|
do return end
|
||||||
do return end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -32,7 +32,6 @@ minetest.register_craftitem("owl_tech:stick_of_truef", {
|
||||||
else
|
else
|
||||||
minetest.chat_send_player(name, "Dont use it in air -finde node or some object")
|
minetest.chat_send_player(name, "Dont use it in air -finde node or some object")
|
||||||
end
|
end
|
||||||
minetest.chat_send_player(name, "-------------------------------------------")
|
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -267,7 +267,7 @@ for i = 1, #table_all_machines, 1 do
|
||||||
owl_tech.reset_item_redines(meta)
|
owl_tech.reset_item_redines(meta)
|
||||||
end
|
end
|
||||||
elseif recipt_true and 100/SMELTER_RECIPS[name][6]*12<=owl_tech:get_charge(meta) and owl_tech.get_item_redines(meta)==0 then --begin for work
|
elseif recipt_true and 100/SMELTER_RECIPS[name][6]*12<=owl_tech:get_charge(meta) and owl_tech.get_item_redines(meta)==0 then --begin for work
|
||||||
local amount=owl_tech.calculate_recipe_tire_bonus(meta,SMELTER_RECIPS[name][2],SMELTER_RECIPS[name][5])
|
local amount=owl_tech.calculate_recipe_tire_bonus(meta,SMELTER_RECIPS[name][5],SMELTER_RECIPS[name][6])
|
||||||
meta:set_int("eat_in_tick",((100/SMELTER_RECIPS[name][6]*12)/(100/amount)))
|
meta:set_int("eat_in_tick",((100/SMELTER_RECIPS[name][6]*12)/(100/amount)))
|
||||||
meta:set_int("bonus",amount)
|
meta:set_int("bonus",amount)
|
||||||
local steam_new =owl_tech:get_charge(meta)-meta:get_int("eat_in_tick")
|
local steam_new =owl_tech:get_charge(meta)-meta:get_int("eat_in_tick")
|
||||||
|
|
2
mod.conf
|
@ -1,6 +1,6 @@
|
||||||
name = owl_tech
|
name = owl_tech
|
||||||
author = ConfidentOwl
|
author = ConfidentOwl
|
||||||
depends = mcl_core
|
depends = mcl_core,mcl_buckets,mcl_util
|
||||||
|
|
||||||
description = Big tech mod
|
description = Big tech mod
|
||||||
|
|
||||||
|
|
|
@ -3,20 +3,20 @@ local name = minetest.get_current_modname()
|
||||||
local path = minetest.get_modpath(name)
|
local path = minetest.get_modpath(name)
|
||||||
|
|
||||||
local energy_hatch_table ={
|
local energy_hatch_table ={
|
||||||
{"base","Base",32,16000,"#575757","owl_tech:copper_electro_wire","steel"}
|
{"base","Base",32,16000,"#575757","owl_tech:copper_electro_wire","steel","owl_tech:bronze_fluid_pipe"}
|
||||||
}
|
}
|
||||||
for i, value in ipairs(energy_hatch_table) do
|
for i, value in ipairs(energy_hatch_table) do
|
||||||
|
--input electro hatch
|
||||||
minetest.register_node("owl_tech:"..energy_hatch_table[i][1].."energy_hatch_input", {
|
minetest.register_node("owl_tech:"..energy_hatch_table[i][1].."_energy_hatch_input", {
|
||||||
description = S(energy_hatch_table[i][2].."energy hatch input"),
|
description = S(energy_hatch_table[i][2].."energy hatch input"),
|
||||||
_doc_items_longdesc = S("Contein energy for multinode"),
|
_doc_items_longdesc = S("Contein energy for multinode"),
|
||||||
tiles = {
|
tiles = {
|
||||||
"(owl_tech_base_meshanism_side.png^[colorize:"..energy_hatch_table[i][5]..":128)",
|
"(owl_tech_base_meshanism_side.png^[colorize:"..energy_hatch_table[i][5]..":128)",
|
||||||
"owl_tech_base_meshanism_side.png^[colorize:"..energy_hatch_table[i][5]..":128",
|
"owl_tech_base_meshanism_side.png^[colorize:"..energy_hatch_table[i][5]..":128",
|
||||||
"(owl_tech_base_tank_side.png^[colorize:"..energy_hatch_table[i][5]..":128)",
|
"(owl_tech_base_meshanism_side.png^[colorize:"..energy_hatch_table[i][5]..":128)^owl_tech_base_battary_side.png",
|
||||||
"(owl_tech_base_tank_side.png^[colorize:"..energy_hatch_table[i][5]..":128)",
|
"(owl_tech_base_meshanism_side.png^[colorize:"..energy_hatch_table[i][5]..":128)^owl_tech_base_battary_side.png",
|
||||||
"(owl_tech_base_tank_side.png^[colorize:"..energy_hatch_table[i][5]..":128)",
|
"(owl_tech_base_meshanism_side.png^[colorize:"..energy_hatch_table[i][5]..":128)^owl_tech_base_battary_side.png",
|
||||||
"(owl_tech_base_tank_side.png^[colorize:"..energy_hatch_table[i][5]..":128)^owl_tech_steam_input.png",
|
"(owl_tech_base_meshanism_side.png^[colorize:"..energy_hatch_table[i][5]..":128)^owl_tech_steam_input.png",
|
||||||
},
|
},
|
||||||
is_ground_content = false,
|
is_ground_content = false,
|
||||||
stack_max = 64,
|
stack_max = 64,
|
||||||
|
@ -38,7 +38,7 @@ for i, value in ipairs(energy_hatch_table) do
|
||||||
local timer = minetest.get_node_timer(pos)
|
local timer = minetest.get_node_timer(pos)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
local rotation = minetest.get_node(pos).param2 % 32
|
local rotation = minetest.get_node(pos).param2 % 32
|
||||||
if owl_tech.get_active_hatch(meta)==1 then
|
if owl_tech:get_active_hatch(meta)==1 then
|
||||||
if rotation==0 then --z-1
|
if rotation==0 then --z-1
|
||||||
if minetest.get_item_group((minetest.get_node({x=pos.x,y=pos.y,z=pos.z-1})).name,"owl_tech_electro_wire")>0
|
if minetest.get_item_group((minetest.get_node({x=pos.x,y=pos.y,z=pos.z-1})).name,"owl_tech_electro_wire")>0
|
||||||
and owl_tech:get_charge_max(meta)-owl_tech:get_charge(meta)>=owl_tech:get_voltage(meta) then --get from wire electro
|
and owl_tech:get_charge_max(meta)-owl_tech:get_charge(meta)>=owl_tech:get_voltage(meta) then --get from wire electro
|
||||||
|
@ -83,28 +83,28 @@ for i, value in ipairs(energy_hatch_table) do
|
||||||
--Crafte
|
--Crafte
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "shaped",
|
type = "shaped",
|
||||||
output = "owl_tech:"..energy_hatch_table[i][1].."energy_hatch_input",
|
output = "owl_tech:"..energy_hatch_table[i][1].."_energy_hatch_input",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"owl_tech:"..energy_hatch_table[i][7].."_plate","owl_tech:batteri_tire_"..i,"owl_tech:"..energy_hatch_table[i][7].."_plate"},
|
{"owl_tech:"..energy_hatch_table[i][7].."_plate","owl_tech:batteri_tire_"..i,"owl_tech:"..energy_hatch_table[i][7].."_plate"},
|
||||||
{"owl_tech:"..energy_hatch_table[i][7].."_plate","owl_tech:batteri_tire_"..i,"owl_tech:"..energy_hatch_table[i][7].."_plate"},
|
{"owl_tech:"..energy_hatch_table[i][7].."_plate","owl_tech:batteri_tire_"..i,"owl_tech:"..energy_hatch_table[i][7].."_plate"},
|
||||||
{"owl_tech:"..energy_hatch_table[i][7].."_plate",energy_hatch_table[i][6],"owl_tech:"..energy_hatch_table[i][7].."_plate"}
|
{"owl_tech:"..energy_hatch_table[i][7].."_plate",energy_hatch_table[i][6],"owl_tech:"..energy_hatch_table[i][7].."_plate"}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
--output electro hatch
|
||||||
minetest.register_node("owl_tech:"..energy_hatch_table[i][1].."energy_hatch_output", {
|
minetest.register_node("owl_tech:"..energy_hatch_table[i][1].."_energy_hatch_output", {
|
||||||
description = S(energy_hatch_table[i][2].."energy hatch output"),
|
description = S(energy_hatch_table[i][2].."energy hatch output"),
|
||||||
_doc_items_longdesc = S("Contein energy for multinode"),
|
_doc_items_longdesc = S("Contein energy for multinode"),
|
||||||
tiles = {
|
tiles = {
|
||||||
"(owl_tech_base_meshanism_side.png^[colorize:"..energy_hatch_table[i][5]..":128)",
|
"(owl_tech_base_meshanism_side.png^[colorize:"..energy_hatch_table[i][5]..":128)",
|
||||||
"owl_tech_base_meshanism_side.png^[colorize:"..energy_hatch_table[i][5]..":128",
|
"owl_tech_base_meshanism_side.png^[colorize:"..energy_hatch_table[i][5]..":128",
|
||||||
"(owl_tech_base_tank_side.png^[colorize:"..energy_hatch_table[i][5]..":128)",
|
"(owl_tech_base_meshanism_side.png^[colorize:"..energy_hatch_table[i][5]..":128)^owl_tech_base_battary_side.png",
|
||||||
"(owl_tech_base_tank_side.png^[colorize:"..energy_hatch_table[i][5]..":128)",
|
"(owl_tech_base_meshanism_side.png^[colorize:"..energy_hatch_table[i][5]..":128)^owl_tech_base_battary_side.png",
|
||||||
"(owl_tech_base_tank_side.png^[colorize:"..energy_hatch_table[i][5]..":128)",
|
"(owl_tech_base_meshanism_side.png^[colorize:"..energy_hatch_table[i][5]..":128)^owl_tech_base_battary_side.png",
|
||||||
"(owl_tech_base_tank_side.png^[colorize:"..energy_hatch_table[i][5]..":128)^owl_tech_steam_output.png",
|
"(owl_tech_base_meshanism_side.png^[colorize:"..energy_hatch_table[i][5]..":128)^owl_tech_steam_output.png",
|
||||||
},
|
},
|
||||||
is_ground_content = false,
|
is_ground_content = false,
|
||||||
stack_max = 64,
|
stack_max = 64,
|
||||||
groups = {pickaxey=2, owl_tech_machine=1,energy_hatch_1_input=1},
|
groups = {pickaxey=2, owl_tech_machine=1,energy_hatch_1_output=1},
|
||||||
sounds = mcl_sounds.node_sound_metal_defaults(),
|
sounds = mcl_sounds.node_sound_metal_defaults(),
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
_mcl_blast_resistance = 6,
|
_mcl_blast_resistance = 6,
|
||||||
|
@ -122,7 +122,7 @@ for i, value in ipairs(energy_hatch_table) do
|
||||||
local timer = minetest.get_node_timer(pos)
|
local timer = minetest.get_node_timer(pos)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
local rotation = minetest.get_node(pos).param2 % 32
|
local rotation = minetest.get_node(pos).param2 % 32
|
||||||
if owl_tech.get_active_hatch(meta)==1 then
|
if owl_tech:get_active_hatch(meta)==1 then
|
||||||
if rotation==0 then --z-1
|
if rotation==0 then --z-1
|
||||||
if minetest.get_item_group((minetest.get_node({x=pos.x,y=pos.y,z=pos.z-1})).name,"owl_tech_electro_wire") then --send electro in wire
|
if minetest.get_item_group((minetest.get_node({x=pos.x,y=pos.y,z=pos.z-1})).name,"owl_tech_electro_wire") then --send electro in wire
|
||||||
local meta_up = minetest.get_meta({x=pos.x,y=pos.y,z=pos.z+1})
|
local meta_up = minetest.get_meta({x=pos.x,y=pos.y,z=pos.z+1})
|
||||||
|
@ -175,11 +175,332 @@ for i, value in ipairs(energy_hatch_table) do
|
||||||
--Crafte
|
--Crafte
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "shaped",
|
type = "shaped",
|
||||||
output = "owl_tech:"..energy_hatch_table[i][1].."energy_hatch_input",
|
output = "owl_tech:"..energy_hatch_table[i][1].."_energy_hatch_output",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"owl_tech:"..energy_hatch_table[i][7].."_plate",energy_hatch_table[i][6],"owl_tech:"..energy_hatch_table[i][7].."_plate"},
|
{"owl_tech:"..energy_hatch_table[i][7].."_plate",energy_hatch_table[i][6],"owl_tech:"..energy_hatch_table[i][7].."_plate"},
|
||||||
{"owl_tech:"..energy_hatch_table[i][7].."_plate","owl_tech:batteri_tire_"..i,"owl_tech:"..energy_hatch_table[i][7].."_plate"},
|
{"owl_tech:"..energy_hatch_table[i][7].."_plate","owl_tech:batteri_tire_"..i,"owl_tech:"..energy_hatch_table[i][7].."_plate"},
|
||||||
{"owl_tech:"..energy_hatch_table[i][7].."_plate","owl_tech:batteri_tire_"..i,"owl_tech:"..energy_hatch_table[i][7].."_plate"}
|
{"owl_tech:"..energy_hatch_table[i][7].."_plate","owl_tech:batteri_tire_"..i,"owl_tech:"..energy_hatch_table[i][7].."_plate"}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
--input item
|
||||||
|
minetest.register_node("owl_tech:"..energy_hatch_table[i][1].."_item_hatch_input", {
|
||||||
|
description = S(energy_hatch_table[i][2].."item hatch input"),
|
||||||
|
_doc_items_longdesc = S("Contein item for multinode"),
|
||||||
|
tiles = {
|
||||||
|
"(owl_tech_base_meshanism_side.png^[colorize:"..energy_hatch_table[i][5]..":128)",
|
||||||
|
"(owl_tech_base_meshanism_side.png^[colorize:"..energy_hatch_table[i][5]..":128)",
|
||||||
|
"(owl_tech_base_meshanism_side.png^[colorize:"..energy_hatch_table[i][5]..":128)^owl_tech_item_hatch.png",
|
||||||
|
"(owl_tech_base_meshanism_side.png^[colorize:"..energy_hatch_table[i][5]..":128)^owl_tech_item_hatch.png",
|
||||||
|
"(owl_tech_base_meshanism_side.png^[colorize:"..energy_hatch_table[i][5]..":128)^owl_tech_item_hatch.png",
|
||||||
|
"(owl_tech_base_meshanism_side.png^[colorize:"..energy_hatch_table[i][5]..":128)^owl_tech_steam_input.png",
|
||||||
|
},
|
||||||
|
is_ground_content = false,
|
||||||
|
stack_max = 64,
|
||||||
|
groups = {pickaxey=2, owl_tech_machine=1,item_hatch_1_input=1,input_in=1},
|
||||||
|
sounds = mcl_sounds.node_sound_metal_defaults(),
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
_mcl_blast_resistance = 6,
|
||||||
|
_mcl_hardness = 5,
|
||||||
|
on_construct = function(pos)
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
owl_tech.set_mashine_tire(meta,i+1)
|
||||||
|
owl_tech:set_active_hatch(meta,0)
|
||||||
|
local inv = meta:get_inventory()
|
||||||
|
inv:set_size("input_in", 1)
|
||||||
|
local timer =minetest.get_node_timer(pos)
|
||||||
|
local text_info ="empty"
|
||||||
|
local input_stack = inv:get_stack("input_in", 1)
|
||||||
|
if not input_stack:is_empty() then
|
||||||
|
text_info = input_stack:get_count().."--"..input_stack:get_name()
|
||||||
|
end
|
||||||
|
meta:set_string("infotext",text_info)
|
||||||
|
timer:start(0.2)
|
||||||
|
end,
|
||||||
|
on_timer = function(pos, elapsed)
|
||||||
|
local timer = minetest.get_node_timer(pos)
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
local inv = meta:get_inventory()
|
||||||
|
local input_stack = inv:get_stack("input_in", 1)
|
||||||
|
local rotation = minetest.get_node(pos).param2 % 32
|
||||||
|
local text_info ="empty"
|
||||||
|
if not input_stack:is_empty() then
|
||||||
|
text_info = input_stack:get_count().."--"..input_stack:get_name()
|
||||||
|
end
|
||||||
|
meta:set_string("infotext",text_info)
|
||||||
|
timer:start(0.2)
|
||||||
|
end
|
||||||
|
})
|
||||||
|
--Crafte
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "shaped",
|
||||||
|
output = "owl_tech:"..energy_hatch_table[i][1].."_item_hatch_input",
|
||||||
|
recipe = {
|
||||||
|
{"owl_tech:"..energy_hatch_table[i][7].."_plate",energy_hatch_table[i][6],"owl_tech:"..energy_hatch_table[i][7].."_plate"},
|
||||||
|
{"owl_tech:"..energy_hatch_table[i][7].."_plate","mcl_chests:chest","owl_tech:"..energy_hatch_table[i][7].."_plate"},
|
||||||
|
{"owl_tech:"..energy_hatch_table[i][7].."_plate","mcl_chests:chest","owl_tech:"..energy_hatch_table[i][7].."_plate"}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
--output item
|
||||||
|
minetest.register_node("owl_tech:"..energy_hatch_table[i][1].."_item_hatch_output", {
|
||||||
|
description = S(energy_hatch_table[i][2].."item hatch output"),
|
||||||
|
_doc_items_longdesc = S("Contein item for multinode"),
|
||||||
|
tiles = {
|
||||||
|
"(owl_tech_base_meshanism_side.png^[colorize:"..energy_hatch_table[i][5]..":128)",
|
||||||
|
"(owl_tech_base_meshanism_side.png^[colorize:"..energy_hatch_table[i][5]..":128)",
|
||||||
|
"(owl_tech_base_meshanism_side.png^[colorize:"..energy_hatch_table[i][5]..":128)^owl_tech_item_hatch.png",
|
||||||
|
"(owl_tech_base_meshanism_side.png^[colorize:"..energy_hatch_table[i][5]..":128)^owl_tech_item_hatch.png",
|
||||||
|
"(owl_tech_base_meshanism_side.png^[colorize:"..energy_hatch_table[i][5]..":128)^owl_tech_item_hatch.png",
|
||||||
|
"(owl_tech_base_meshanism_side.png^[colorize:"..energy_hatch_table[i][5]..":128)^owl_tech_steam_output.png",
|
||||||
|
},
|
||||||
|
is_ground_content = false,
|
||||||
|
stack_max = 64,
|
||||||
|
groups = {pickaxey=2, owl_tech_machine=1,item_hatch_1_output=1,dst=1},
|
||||||
|
sounds = mcl_sounds.node_sound_metal_defaults(),
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
_mcl_blast_resistance = 6,
|
||||||
|
_mcl_hardness = 5,
|
||||||
|
on_construct = function(pos)
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
owl_tech.set_mashine_tire(meta,i+1)
|
||||||
|
owl_tech:set_active_hatch(meta,0)
|
||||||
|
local inv = meta:get_inventory()
|
||||||
|
inv:set_size("dst", 1)
|
||||||
|
local timer =minetest.get_node_timer(pos)
|
||||||
|
local text_info ="empty"
|
||||||
|
local input_stack = inv:get_stack("dst", 1)
|
||||||
|
if not input_stack:is_empty() then
|
||||||
|
text_info = input_stack:get_count().."--"..input_stack:get_name()
|
||||||
|
end
|
||||||
|
meta:set_string("infotext",text_info)
|
||||||
|
timer:start(0.2)
|
||||||
|
end,
|
||||||
|
on_timer = function(pos, elapsed)
|
||||||
|
local timer = minetest.get_node_timer(pos)
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
local inv = meta:get_inventory()
|
||||||
|
local input_stack = inv:get_stack("dst", 1)
|
||||||
|
local text_info ="empty"
|
||||||
|
if not input_stack:is_empty() then
|
||||||
|
text_info = input_stack:get_count().."--"..input_stack:get_name()
|
||||||
|
end
|
||||||
|
meta:set_string("infotext",text_info)
|
||||||
|
timer:start(0.2)
|
||||||
|
end
|
||||||
|
})
|
||||||
|
--Crafte
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "shaped",
|
||||||
|
output = "owl_tech:"..energy_hatch_table[i][1].."_item_hatch_output",
|
||||||
|
recipe = {
|
||||||
|
{"owl_tech:"..energy_hatch_table[i][7].."_plate","mcl_chests:chest","owl_tech:"..energy_hatch_table[i][7].."_plate"},
|
||||||
|
{"owl_tech:"..energy_hatch_table[i][7].."_plate","mcl_chests:chest","owl_tech:"..energy_hatch_table[i][7].."_plate"},
|
||||||
|
{"owl_tech:"..energy_hatch_table[i][7].."_plate",energy_hatch_table[i][6],"owl_tech:"..energy_hatch_table[i][7].."_plate"}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
--input fluid hatch
|
||||||
|
minetest.register_node("owl_tech:"..energy_hatch_table[i][1].."_fluid_hatch_input", {
|
||||||
|
description = S(energy_hatch_table[i][2].."fluid hatch input"),
|
||||||
|
_doc_items_longdesc = S("Contein fluid for multinode"),
|
||||||
|
tiles = {
|
||||||
|
"(owl_tech_base_tank_side.png^[colorize:"..energy_hatch_table[i][5]..":128)",
|
||||||
|
"(owl_tech_base_tank_side.png^[colorize:"..energy_hatch_table[i][5]..":128)",
|
||||||
|
"(owl_tech_base_tank_side.png^[colorize:"..energy_hatch_table[i][5]..":128)",
|
||||||
|
"(owl_tech_base_tank_side.png^[colorize:"..energy_hatch_table[i][5]..":128)",
|
||||||
|
"(owl_tech_base_tank_side.png^[colorize:"..energy_hatch_table[i][5]..":128)",
|
||||||
|
"(owl_tech_base_tank_side.png^[colorize:"..energy_hatch_table[i][5]..":128)^owl_tech_steam_input.png",
|
||||||
|
},
|
||||||
|
is_ground_content = false,
|
||||||
|
stack_max = 64,
|
||||||
|
groups = {pickaxey=2, owl_tech_machine=1,fluid_hatch_1_input=1},
|
||||||
|
sounds = mcl_sounds.node_sound_metal_defaults(),
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
_mcl_blast_resistance = 6,
|
||||||
|
_mcl_hardness = 5,
|
||||||
|
on_construct = function(pos)
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
owl_tech.add_new_pull(meta,(energy_hatch_table[i][4]*2),1,1)
|
||||||
|
owl_tech.set_mashine_tire(meta,i+1)
|
||||||
|
owl_tech:set_active_hatch(meta,0)
|
||||||
|
owl_tech.update_fluid_pipe_around(pos)
|
||||||
|
owl_tech.set_fluid_sand_in_tick(meta,(energy_hatch_table[i][3]*2))
|
||||||
|
local timer =minetest.get_node_timer(pos)
|
||||||
|
meta:set_string("infotext",owl_tech.get_pull_volume(meta,1))
|
||||||
|
timer:start(0.2)
|
||||||
|
end,
|
||||||
|
on_timer = function(pos, elapsed)
|
||||||
|
local timer = minetest.get_node_timer(pos)
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
local rotation = minetest.get_node(pos).param2 % 32
|
||||||
|
if owl_tech:get_active_hatch(meta)==1 then
|
||||||
|
if rotation==0 then --z-1
|
||||||
|
if minetest.get_item_group((minetest.get_node({x=pos.x,y=pos.y,z=pos.z-1})).name,"fluid_pipe") then --get from pipe
|
||||||
|
local meta_up = minetest.get_meta({x=pos.x,y=pos.y,z=pos.z-1})
|
||||||
|
local fluid_name_to_send = owl_tech.get_pull_fluid_name(meta_up,1)
|
||||||
|
local can_do ,inde_pull =owl_tech.test_add_fluid_in_any_pulls(meta,fluid_name_to_send,owl_tech.get_fluid_sand_in_tick(meta))
|
||||||
|
local can_do2 ,inde_pull_2 , remove_amount =owl_tech.test_remove_fluid_in_any_pulls(meta_up,fluid_name_to_send,owl_tech.get_fluid_sand_in_tick(meta_up))
|
||||||
|
if can_do and can_do2 then
|
||||||
|
owl_tech.add_fluid_in_node_pull(meta,fluid_name_to_send,remove_amount,inde_pull)
|
||||||
|
owl_tech.remove_fluid_in_node_pull(meta_up,remove_amount,inde_pull)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if rotation==2 then --z+1
|
||||||
|
if minetest.get_item_group((minetest.get_node({x=pos.x,y=pos.y,z=pos.z+1})).name,"fluid_pipe") then --get from pipe
|
||||||
|
local meta_up = minetest.get_meta({x=pos.x,y=pos.y,z=pos.z+1})
|
||||||
|
local fluid_name_to_send = owl_tech.get_pull_fluid_name(meta_up,1)
|
||||||
|
local can_do ,inde_pull =owl_tech.test_add_fluid_in_any_pulls(meta,fluid_name_to_send,owl_tech.get_fluid_sand_in_tick(meta))
|
||||||
|
local can_do2 ,inde_pull_2 , remove_amount =owl_tech.test_remove_fluid_in_any_pulls(meta_up,fluid_name_to_send,owl_tech.get_fluid_sand_in_tick(meta_up))
|
||||||
|
if can_do and can_do2 then
|
||||||
|
owl_tech.add_fluid_in_node_pull(meta,fluid_name_to_send,remove_amount,inde_pull)
|
||||||
|
owl_tech.remove_fluid_in_node_pull(meta_up,remove_amount,inde_pull)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if rotation==3 then --x-1
|
||||||
|
if minetest.get_item_group((minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z})).name,"fluid_pipe") then --get from pipe
|
||||||
|
local meta_up = minetest.get_meta({x=pos.x-1,y=pos.y,z=pos.z})
|
||||||
|
local fluid_name_to_send = owl_tech.get_pull_fluid_name(meta_up,1)
|
||||||
|
local can_do ,inde_pull =owl_tech.test_add_fluid_in_any_pulls(meta,fluid_name_to_send,owl_tech.get_fluid_sand_in_tick(meta))
|
||||||
|
local can_do2 ,inde_pull_2 , remove_amount =owl_tech.test_remove_fluid_in_any_pulls(meta_up,fluid_name_to_send,owl_tech.get_fluid_sand_in_tick(meta_up))
|
||||||
|
if can_do and can_do2 then
|
||||||
|
owl_tech.add_fluid_in_node_pull(meta,fluid_name_to_send,remove_amount,inde_pull)
|
||||||
|
owl_tech.remove_fluid_in_node_pull(meta_up,remove_amount,inde_pull)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if rotation==1 then --x+1
|
||||||
|
if minetest.get_item_group((minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z})).name,"fluid_pipe") then --get from pipe
|
||||||
|
local meta_up = minetest.get_meta({x=pos.x+1,y=pos.y,z=pos.z})
|
||||||
|
local fluid_name_to_send = owl_tech.get_pull_fluid_name(meta_up,1)
|
||||||
|
local can_do ,inde_pull =owl_tech.test_add_fluid_in_any_pulls(meta,fluid_name_to_send,owl_tech.get_fluid_sand_in_tick(meta))
|
||||||
|
local can_do2 ,inde_pull_2 , remove_amount =owl_tech.test_remove_fluid_in_any_pulls(meta_up,fluid_name_to_send,owl_tech.get_fluid_sand_in_tick(meta_up))
|
||||||
|
if can_do and can_do2 then
|
||||||
|
owl_tech.add_fluid_in_node_pull(meta,fluid_name_to_send,remove_amount,inde_pull)
|
||||||
|
owl_tech.remove_fluid_in_node_pull(meta_up,remove_amount,inde_pull)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
owl_tech.delit_name_fluid_if_0(meta)
|
||||||
|
meta:set_string("infotext",owl_tech.get_pull_volume(meta,1).."--"..owl_tech.get_pull_max_volume(meta,1))
|
||||||
|
timer:start(0.2)
|
||||||
|
end
|
||||||
|
})
|
||||||
|
--Crafte
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "shaped",
|
||||||
|
output = "owl_tech:"..energy_hatch_table[i][1].."_fluid_hatch_input",
|
||||||
|
recipe = {
|
||||||
|
{"owl_tech:"..energy_hatch_table[i][7].."_plate","owl_tech:batteri_tire_"..i,"owl_tech:"..energy_hatch_table[i][7].."_plate"},
|
||||||
|
{"owl_tech:"..energy_hatch_table[i][7].."_plate","owl_tech:batteri_tire_"..i,"owl_tech:"..energy_hatch_table[i][7].."_plate"},
|
||||||
|
{"owl_tech:"..energy_hatch_table[i][7].."_plate",energy_hatch_table[i][8],"owl_tech:"..energy_hatch_table[i][7].."_plate"}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
--output fluid hatch
|
||||||
|
minetest.register_node("owl_tech:"..energy_hatch_table[i][1].."_fluid_hatch_output", {
|
||||||
|
description = S(energy_hatch_table[i][2].."fluid hatch output"),
|
||||||
|
_doc_items_longdesc = S("Contein fluid for multinode"),
|
||||||
|
tiles = {
|
||||||
|
"(owl_tech_base_tank_side.png^[colorize:"..energy_hatch_table[i][5]..":128)",
|
||||||
|
"(owl_tech_base_tank_side.png^[colorize:"..energy_hatch_table[i][5]..":128)",
|
||||||
|
"(owl_tech_base_tank_side.png^[colorize:"..energy_hatch_table[i][5]..":128)",
|
||||||
|
"(owl_tech_base_tank_side.png^[colorize:"..energy_hatch_table[i][5]..":128)",
|
||||||
|
"(owl_tech_base_tank_side.png^[colorize:"..energy_hatch_table[i][5]..":128)",
|
||||||
|
"(owl_tech_base_tank_side.png^[colorize:"..energy_hatch_table[i][5]..":128)^owl_tech_steam_output.png",
|
||||||
|
},
|
||||||
|
is_ground_content = false,
|
||||||
|
stack_max = 64,
|
||||||
|
groups = {pickaxey=2, owl_tech_machine=1,fluid_hatch_1_output=1},
|
||||||
|
sounds = mcl_sounds.node_sound_metal_defaults(),
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
_mcl_blast_resistance = 6,
|
||||||
|
_mcl_hardness = 5,
|
||||||
|
on_construct = function(pos)
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
owl_tech.add_new_pull(meta,(energy_hatch_table[i][4]*2),1,1)
|
||||||
|
owl_tech.set_mashine_tire(meta,i+1)
|
||||||
|
owl_tech:set_active_hatch(meta,0)
|
||||||
|
owl_tech.update_fluid_pipe_around(pos)
|
||||||
|
owl_tech.set_fluid_sand_in_tick(meta,(energy_hatch_table[i][3]*2))
|
||||||
|
local timer =minetest.get_node_timer(pos)
|
||||||
|
meta:set_string("infotext",owl_tech.get_pull_volume(meta,1))
|
||||||
|
timer:start(0.2)
|
||||||
|
end,
|
||||||
|
on_timer = function(pos, elapsed)
|
||||||
|
local timer = minetest.get_node_timer(pos)
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
local rotation = minetest.get_node(pos).param2 % 32
|
||||||
|
if owl_tech:get_active_hatch(meta)==1 then
|
||||||
|
if rotation==0 then --z-1
|
||||||
|
if minetest.get_item_group((minetest.get_node({x=pos.x,y=pos.y,z=pos.z-1})).name,"fluid_pipe") then --sand in pipe
|
||||||
|
local meta_up = minetest.get_meta({x=pos.x,y=pos.y,z=pos.z-1})
|
||||||
|
local fluid_name_to_send = owl_tech.get_pull_fluid_name(meta,1)
|
||||||
|
local can_do ,inde_pull =owl_tech.test_add_fluid_in_any_pulls(meta_up,fluid_name_to_send,owl_tech.get_fluid_sand_in_tick(meta_up))
|
||||||
|
local can_do2 ,inde_pull_2 , remove_amount =owl_tech.test_remove_fluid_in_any_pulls(meta,fluid_name_to_send,owl_tech.get_fluid_sand_in_tick(meta_up))
|
||||||
|
if can_do and can_do2 then
|
||||||
|
owl_tech.add_fluid_in_node_pull(meta_up,fluid_name_to_send,remove_amount,inde_pull)
|
||||||
|
local pull_curent_volume = owl_tech.get_pull_volume(meta,1)
|
||||||
|
local difer = pull_curent_volume-remove_amount
|
||||||
|
owl_tech.set_pull_volume(meta,2,difer)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if rotation==2 then --z+1
|
||||||
|
if minetest.get_item_group((minetest.get_node({x=pos.x,y=pos.y,z=pos.z+1})).name,"fluid_pipe") then --sand in pipe
|
||||||
|
local meta_up = minetest.get_meta({x=pos.x,y=pos.y,z=pos.z+1})
|
||||||
|
local fluid_name_to_send = owl_tech.get_pull_fluid_name(meta,1)
|
||||||
|
local can_do ,inde_pull =owl_tech.test_add_fluid_in_any_pulls(meta_up,fluid_name_to_send,owl_tech.get_fluid_sand_in_tick(meta_up))
|
||||||
|
local can_do2 ,inde_pull_2 , remove_amount =owl_tech.test_remove_fluid_in_any_pulls(meta,fluid_name_to_send,owl_tech.get_fluid_sand_in_tick(meta_up))
|
||||||
|
if can_do and can_do2 then
|
||||||
|
owl_tech.add_fluid_in_node_pull(meta_up,fluid_name_to_send,remove_amount,inde_pull)
|
||||||
|
local pull_curent_volume = owl_tech.get_pull_volume(meta,1)
|
||||||
|
local difer = pull_curent_volume-remove_amount
|
||||||
|
owl_tech.set_pull_volume(meta,2,difer)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if rotation==3 then --x-1
|
||||||
|
if minetest.get_item_group((minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z})).name,"fluid_pipe") then --sand in pipe
|
||||||
|
local meta_up = minetest.get_meta({x=pos.x-1,y=pos.y,z=pos.z})
|
||||||
|
local fluid_name_to_send = owl_tech.get_pull_fluid_name(meta,1)
|
||||||
|
local can_do ,inde_pull =owl_tech.test_add_fluid_in_any_pulls(meta_up,fluid_name_to_send,owl_tech.get_fluid_sand_in_tick(meta_up))
|
||||||
|
local can_do2 ,inde_pull_2 , remove_amount =owl_tech.test_remove_fluid_in_any_pulls(meta,fluid_name_to_send,owl_tech.get_fluid_sand_in_tick(meta_up))
|
||||||
|
if can_do and can_do2 then
|
||||||
|
owl_tech.add_fluid_in_node_pull(meta_up,fluid_name_to_send,remove_amount,inde_pull)
|
||||||
|
local pull_curent_volume = owl_tech.get_pull_volume(meta,1)
|
||||||
|
local difer = pull_curent_volume-remove_amount
|
||||||
|
owl_tech.set_pull_volume(meta,2,difer)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if rotation==1 then --x+1
|
||||||
|
if minetest.get_item_group((minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z})).name,"fluid_pipe") then --sand in pipe
|
||||||
|
local meta_up = minetest.get_meta({x=pos.x+1,y=pos.y,z=pos.z})
|
||||||
|
local fluid_name_to_send = owl_tech.get_pull_fluid_name(meta,1)
|
||||||
|
local can_do ,inde_pull =owl_tech.test_add_fluid_in_any_pulls(meta_up,fluid_name_to_send,owl_tech.get_fluid_sand_in_tick(meta_up))
|
||||||
|
local can_do2 ,inde_pull_2 , remove_amount =owl_tech.test_remove_fluid_in_any_pulls(meta,fluid_name_to_send,owl_tech.get_fluid_sand_in_tick(meta_up))
|
||||||
|
if can_do and can_do2 then
|
||||||
|
owl_tech.add_fluid_in_node_pull(meta_up,fluid_name_to_send,remove_amount,inde_pull)
|
||||||
|
local pull_curent_volume = owl_tech.get_pull_volume(meta,1)
|
||||||
|
local difer = pull_curent_volume-remove_amount
|
||||||
|
owl_tech.set_pull_volume(meta,2,difer)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
owl_tech.delit_name_fluid_if_0(meta)
|
||||||
|
meta:set_string("infotext",owl_tech.get_pull_volume(meta,1).."--"..owl_tech.get_pull_max_volume(meta,1))
|
||||||
|
timer:start(0.2)
|
||||||
|
end
|
||||||
|
})
|
||||||
|
--Crafte
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "shaped",
|
||||||
|
output = "owl_tech:"..energy_hatch_table[i][1].."_fluid_hatch_output",
|
||||||
|
recipe = {
|
||||||
|
{"owl_tech:"..energy_hatch_table[i][7].."_plate",energy_hatch_table[i][8],"owl_tech:"..energy_hatch_table[i][7].."_plate"},
|
||||||
|
{"owl_tech:"..energy_hatch_table[i][7].."_plate","owl_tech:batteri_tire_"..i,"owl_tech:"..energy_hatch_table[i][7].."_plate"},
|
||||||
|
{"owl_tech:"..energy_hatch_table[i][7].."_plate","owl_tech:batteri_tire_"..i,"owl_tech:"..energy_hatch_table[i][7].."_plate"}
|
||||||
|
}
|
||||||
|
})
|
||||||
end
|
end
|
|
@ -10,4 +10,112 @@ end
|
||||||
function owl_tech:get_active_hatch(meta)
|
function owl_tech:get_active_hatch(meta)
|
||||||
return meta:get_int("activ_hatch")
|
return meta:get_int("activ_hatch")
|
||||||
end
|
end
|
||||||
-------------------------------------------------------
|
-------------------------------------------------------
|
||||||
|
--get and set enrgy hatch pos ofset (energy_hatch,item_hatch,fluid_hatch)
|
||||||
|
function owl_tech:set_hatch_ofset(meta,number_hatch,hatch_name,x,y,z)
|
||||||
|
meta:set_int("X"..number_hatch..hatch_name,x)
|
||||||
|
meta:set_int("Y"..number_hatch..hatch_name,y)
|
||||||
|
meta:set_int("Z"..number_hatch..hatch_name,z)
|
||||||
|
end
|
||||||
|
function owl_tech:get_hatch_ofset_X(meta,number_hatch,hatch_name)
|
||||||
|
return meta:get_int("X"..number_hatch..hatch_name)
|
||||||
|
end
|
||||||
|
function owl_tech:get_hatch_ofset_Y(meta,number_hatch,hatch_name)
|
||||||
|
return meta:get_int("Y"..number_hatch..hatch_name)
|
||||||
|
end
|
||||||
|
function owl_tech:get_hatch_ofset_Z(meta,number_hatch,hatch_name)
|
||||||
|
return meta:get_int("Z"..number_hatch..hatch_name)
|
||||||
|
end
|
||||||
|
-------------------------------------------------------
|
||||||
|
--set amount hatchs
|
||||||
|
function owl_tech:set_amount_energy_hatch(meta,amount)
|
||||||
|
meta:set_int("amount_energy_hatch",amount)
|
||||||
|
end
|
||||||
|
function owl_tech:get_amount_energy_hatch(meta)
|
||||||
|
return meta:get_int("amount_energy_hatch")
|
||||||
|
end
|
||||||
|
function owl_tech:set_amount_fluid_hatch(meta,amount)
|
||||||
|
meta:set_int("amount_fluid_hatch",amount)
|
||||||
|
end
|
||||||
|
function owl_tech:get_amount_fluid_hatch(meta)
|
||||||
|
return meta:get_int("amount_fluid_hatch")
|
||||||
|
end
|
||||||
|
function owl_tech:set_amount_item_hatch(meta,amount)
|
||||||
|
meta:set_int("amount_item_hatch",amount)
|
||||||
|
end
|
||||||
|
function owl_tech:get_amount_item_hatch(meta)
|
||||||
|
return meta:get_int("amount_item_hatch")
|
||||||
|
end
|
||||||
|
------------------------------------------------------
|
||||||
|
--get and set item in hatch
|
||||||
|
function owl_tech:get_item_in_input_hatch_pos(x,y,z)
|
||||||
|
local meta = minetest.get_meta({x=x,y=y,z=z})
|
||||||
|
local inv = meta:get_inventory()
|
||||||
|
local input_stack = inv:get_stack("input_in", 1)
|
||||||
|
return input_stack
|
||||||
|
end
|
||||||
|
function owl_tech:set_item_in_input_hatch_pos(x,y,z,item_stack)
|
||||||
|
local meta = minetest.get_meta({x=x,y=y,z=z})
|
||||||
|
local inv = meta:get_inventory()
|
||||||
|
inv:set_stack("input_in", 1 ,item_stack)
|
||||||
|
end
|
||||||
|
function owl_tech:get_item_in_input_output_pos(x,y,z)
|
||||||
|
local meta = minetest.get_meta({x=x,y=y,z=z})
|
||||||
|
local inv = meta:get_inventory()
|
||||||
|
local input_stack = inv:get_stack("dst", 1)
|
||||||
|
return input_stack
|
||||||
|
end
|
||||||
|
function owl_tech:set_item_in_input_output_pos(x,y,z,item_stack)
|
||||||
|
local meta = minetest.get_meta({x=x,y=y,z=z})
|
||||||
|
local inv = meta:get_inventory()
|
||||||
|
inv:set_stack("dst", 1 ,item_stack)
|
||||||
|
end
|
||||||
|
------------------------------------------------------
|
||||||
|
--get and set energy in hatch
|
||||||
|
function owl_tech:get_charge_in_hatch_pos(x,y,z)
|
||||||
|
return owl_tech:get_charge(minetest.get_meta({x=x,y=y,z=z}))
|
||||||
|
end
|
||||||
|
function owl_tech:set_charge_in_hatch_pos(x,y,z,energy)
|
||||||
|
owl_tech:set_charge(minetest.get_meta({x=x,y=y,z=z}),energy)
|
||||||
|
end
|
||||||
|
------------------------------------------------------
|
||||||
|
--get and set max charge in hatch
|
||||||
|
function owl_tech:get_max_charge_in_hatch_pos(x,y,z)
|
||||||
|
return owl_tech:get_charge_max(minetest.get_meta({x=x,y=y,z=z}))
|
||||||
|
end
|
||||||
|
function owl_tech:set_max_charge_in_hatch_pos(x,y,z,energy)
|
||||||
|
owl_tech:set_charge_max(minetest.get_meta({x=x,y=y,z=z}),energy)
|
||||||
|
end
|
||||||
|
------------------------------------------------------
|
||||||
|
--get and set voltage hatch
|
||||||
|
function owl_tech:get_voltage_in_hatch_pos(x,y,z)
|
||||||
|
return owl_tech:get_voltage(minetest.get_meta({x=x,y=y,z=z}))
|
||||||
|
end
|
||||||
|
function owl_tech:set_voltage_in_hatch_pos(x,y,z,energy)
|
||||||
|
owl_tech:set_voltage(minetest.get_meta({x=x,y=y,z=z}),energy)
|
||||||
|
end
|
||||||
|
------------------------------------------------------
|
||||||
|
--get and set fluid amount in hatch
|
||||||
|
function owl_tech:get_volume_amount_in_hatch_pos(x,y,z)
|
||||||
|
return owl_tech.get_pull_volume(minetest:get_meta({x=x,y=y,z=z}),1)
|
||||||
|
end
|
||||||
|
function owl_tech:set_volume_amount_in_hatch_pos(x,y,z,volume)
|
||||||
|
owl_tech.set_pull_volume(minetest:get_meta({x=x,y=y,z=z}),1,volume)
|
||||||
|
end
|
||||||
|
------------------------------------------------------
|
||||||
|
--get and set max volume amount in hatch
|
||||||
|
function owl_tech:get_max_volume_in_hatch_pos(x,y,z)
|
||||||
|
return owl_tech.get_pull_max_volume(minetest:get_meta({x=x,y=y,z=z}),1)
|
||||||
|
end
|
||||||
|
function owl_tech:set_max_volume_in_hatch_pos(x,y,z,volume)
|
||||||
|
owl_tech.set_pull_max_volume(minetest:get_meta({x=x,y=y,z=z}),1,volume)
|
||||||
|
end
|
||||||
|
------------------------------------------------------
|
||||||
|
--get and set name fluid in hatch
|
||||||
|
function owl_tech:get_name_fluid_in_hatch_pos(x,y,z)
|
||||||
|
return owl_tech.get_pull_fluid_name(minetest:get_meta({x=x,y=y,z=z}),1)
|
||||||
|
end
|
||||||
|
function owl_tech:set_name_fluid_in_hatch_pos(x,y,z,name)
|
||||||
|
owl_tech.set_pull_fluid_name(minetest:get_meta({x=x,y=y,z=z}),1,name)
|
||||||
|
end
|
||||||
|
-------------------------------------------------------
|
||||||
|
|
|
@ -1,8 +1,17 @@
|
||||||
local S = minetest.get_translator(minetest.get_current_modname())
|
local S = minetest.get_translator(minetest.get_current_modname())
|
||||||
local name = minetest.get_current_modname()
|
local name = minetest.get_current_modname()
|
||||||
local path = minetest.get_modpath(name)
|
local path = minetest.get_modpath(name)
|
||||||
|
--[[
|
||||||
|
multinode = 3x4x3
|
||||||
|
frames - "owl_tech:steel_big_tiles"
|
||||||
|
entrails - "owl_tech:copper_grid"
|
||||||
|
other nodes(can replace bu hatch) - "owl_tech:tin_tiles"
|
||||||
|
need 1 input item hatch ,1 output item hatch , 1 input energy hatch , 1 output fluid hatch
|
||||||
|
]]
|
||||||
|
|
||||||
--[[local function set_formspect_wood_pyrolis(meta)
|
|
||||||
|
|
||||||
|
local function set_formspect_wood_pyrolis(meta)
|
||||||
local redines = owl_tech.get_item_redines(meta)
|
local redines = owl_tech.get_item_redines(meta)
|
||||||
local burn= meta:get_int("fuel_burn")
|
local burn= meta:get_int("fuel_burn")
|
||||||
local formspec = "size[9,8.75]"..
|
local formspec = "size[9,8.75]"..
|
||||||
|
@ -31,63 +40,587 @@ end
|
||||||
|
|
||||||
local function bronze_blast_furnanse_build_correct(pos)
|
local function bronze_blast_furnanse_build_correct(pos)
|
||||||
local retu = true
|
local retu = true
|
||||||
local centr_pos= {
|
local meta = minetest.get_meta(pos)
|
||||||
x=0,y=0,z=0
|
local rotation = minetest.get_node(pos).param2 % 32
|
||||||
}
|
|
||||||
if minetest.get_node_or_nil({x=pos.x+1,y=pos.y,z=pos.z}).name=='mcl_core:lava_source' then --x+1
|
local id_frame = minetest.get_content_id("owl_tech:steel_big_tiles")
|
||||||
centr_pos={
|
local id_entrails = minetest.get_content_id("owl_tech:copper_tiles")
|
||||||
x=pos.x+1,y=pos.y,z=pos.z
|
local id_other= minetest.get_content_id("owl_tech:tin_tiles")
|
||||||
}
|
|
||||||
elseif minetest.get_node_or_nil({x=pos.x-1,y=pos.y,z=pos.z}).name=='mcl_core:lava_source' then --x-1
|
local id_item_input_hatch = minetest.get_content_id("owl_tech:base_item_hatch_input")
|
||||||
centr_pos={
|
local id_item_output_hatch = minetest.get_content_id("owl_tech:base_item_hatch_output")
|
||||||
x=pos.x-1,y=pos.y,z=pos.z
|
local id_energy_input_hatch = minetest.get_content_id("owl_tech:base_energy_hatch_input")
|
||||||
}
|
local id_energy_output_hatch = minetest.get_content_id("owl_tech:base_energy_hatch_output")
|
||||||
elseif minetest.get_node_or_nil({x=pos.x,y=pos.y,z=pos.z+1}).name=='mcl_core:lava_source' then --z+1
|
local id_fluid_input_hatch = minetest.get_content_id("owl_tech:base_fluid_hatch_input")
|
||||||
centr_pos={
|
local id_fluid_output_hatch = minetest.get_content_id("owl_tech:base_fluid_hatch_output")
|
||||||
x=pos.x,y=pos.y,z=pos.z+1
|
|
||||||
}
|
local item_hatch_input_count = 0
|
||||||
elseif minetest.get_node_or_nil({x=pos.x,y=pos.y,z=pos.z-1}).name=='mcl_core:lava_source' then --z-1
|
local item_hatch_output_count = 0
|
||||||
centr_pos={
|
local energy_hatch_input_count = 0
|
||||||
x=pos.x,y=pos.y,z=pos.z-1
|
local fluid_hatch_output_count = 0
|
||||||
|
|
||||||
|
--check frame
|
||||||
|
if rotation==0 then --z-1
|
||||||
|
local corect =true
|
||||||
|
local vm = minetest.get_voxel_manip()
|
||||||
|
local pos1,pos2 = {x=pos.x-1,y=pos.y-1,z=pos.z},{x=pos.x+1,y=pos.y+1,z=pos.z+4}
|
||||||
|
local emin, emax = vm:read_from_map(pos1,pos2)
|
||||||
|
local a = VoxelArea:new{
|
||||||
|
MinEdge = emin,
|
||||||
|
MaxEdge = emax
|
||||||
}
|
}
|
||||||
|
local data = vm:get_data()
|
||||||
|
-- begin frames
|
||||||
|
for z = pos1.z, pos2.z do
|
||||||
|
for y = pos1.y,pos2.y,pos2.y-pos1.y do
|
||||||
|
for x = pos1.x,pos2.x,pos2.x-pos1.x do
|
||||||
|
local vi = a:index(x, y, z)
|
||||||
|
if data[vi] ~= id_frame then
|
||||||
|
minetest.chat_send_all("error"..pos1.x.."--"..pos1.y.."--"..z)
|
||||||
|
corect = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
for y = pos1.y,pos2.y,pos2.y-pos1.y do
|
||||||
|
for z = pos1.z,pos2.z,pos2.z-pos1.z do
|
||||||
|
local vi = a:index(pos.x, y, z)
|
||||||
|
if data[vi] ~= id_frame then
|
||||||
|
minetest.chat_send_all("error"..pos1.x.."--"..pos1.y.."--"..z)
|
||||||
|
corect = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
for x = pos1.x,pos2.x,pos2.x-pos1.x do
|
||||||
|
for z = pos1.z,pos2.z,pos2.z-pos1.z do
|
||||||
|
local vi = a:index(x, pos1.y+1, z)
|
||||||
|
if data[vi] ~= id_frame then
|
||||||
|
minetest.chat_send_all("error"..pos1.x.."--"..pos1.y.."--"..z)
|
||||||
|
corect = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
-- end frames -begin entrails
|
||||||
|
for z = pos1.z+1,pos2.z-1 , 1 do
|
||||||
|
local vi = a:index(pos.x, pos.y, z)
|
||||||
|
if data[vi] ~= id_entrails then
|
||||||
|
minetest.chat_send_all("error"..pos1.x.."--"..pos1.y.."--"..z)
|
||||||
|
corect = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
-- end entrails look for hatch
|
||||||
|
for x = pos1.x, pos2.x,pos2.x-pos1.x do
|
||||||
|
for z = pos1.z+1,pos2.z-1 , 1 do
|
||||||
|
local vi = a:index(x, pos.y, z)
|
||||||
|
if data[vi] == id_item_input_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"item_hatch_input",x,pos.y,z)
|
||||||
|
item_hatch_input_count = item_hatch_input_count + 1
|
||||||
|
end
|
||||||
|
if data[vi] == id_item_output_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"item_hatch_output",x,pos.y,z)
|
||||||
|
item_hatch_output_count = item_hatch_output_count + 1
|
||||||
|
end
|
||||||
|
if data[vi] == id_energy_input_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"energy_hatch_input",x,pos.y,z)
|
||||||
|
energy_hatch_input_count = energy_hatch_input_count + 1
|
||||||
|
end
|
||||||
|
if data[vi] == id_fluid_output_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"fluid_hatch_output",x,pos.y,z)
|
||||||
|
fluid_hatch_output_count = fluid_hatch_output_count + 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
for y = pos1.y, pos2.y,pos2.y-pos1.y do
|
||||||
|
for z = pos1.z+1,pos2.z-1 , 1 do
|
||||||
|
local vi = a:index(pos.x, y, z)
|
||||||
|
if data[vi] == id_item_input_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"item_hatch_input",pos.x, y, z)
|
||||||
|
item_hatch_input_count = item_hatch_input_count + 1
|
||||||
|
end
|
||||||
|
if data[vi] == id_item_output_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"item_hatch_output",pos.x, y, z)
|
||||||
|
item_hatch_output_count = item_hatch_output_count + 1
|
||||||
|
end
|
||||||
|
if data[vi] == id_energy_input_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"energy_hatch_input",pos.x, y, z)
|
||||||
|
energy_hatch_input_count = energy_hatch_input_count + 1
|
||||||
|
end
|
||||||
|
if data[vi] == id_fluid_output_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"fluid_hatch_output",pos.x, y, z)
|
||||||
|
fluid_hatch_output_count = fluid_hatch_output_count + 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if data[a:index(pos.x, pos.y, pos2.z)] == id_item_input_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"fluid_hatch_output",pos.x, pos.y, pos2.z)
|
||||||
|
fluid_hatch_output_count = fluid_hatch_output_count + 1
|
||||||
|
end
|
||||||
|
if data[a:index(pos.x, pos.y, pos2.z)] == id_item_output_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"item_hatch_output",pos.x, pos.y, pos2.z)
|
||||||
|
item_hatch_output_count = item_hatch_output_count + 1
|
||||||
|
end
|
||||||
|
if data[a:index(pos.x, pos.y, pos2.z)] == id_energy_input_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"energy_hatch_input",pos.x, pos.y, pos2.z)
|
||||||
|
energy_hatch_input_count = energy_hatch_input_count + 1
|
||||||
|
end
|
||||||
|
if data[a:index(pos.x, pos.y, pos2.z)] == id_fluid_output_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"fluid_hatch_output",pos.x, pos.y, pos2.z)
|
||||||
|
fluid_hatch_output_count = fluid_hatch_output_count + 1
|
||||||
|
end
|
||||||
|
--end look for hacth begin look for other nodes
|
||||||
|
for x = pos1.x, pos2.x,pos2.x-pos1.x do
|
||||||
|
for z = pos1.z+1,pos2.z-1 , 1 do
|
||||||
|
local vi = a:index(x, pos.y, z)
|
||||||
|
if not (data[vi] == id_other or data[vi] == id_item_input_hatch or data[vi] == id_item_output_hatch or data[vi] == id_energy_input_hatch or data[vi] == id_fluid_output_hatch) then
|
||||||
|
minetest.chat_send_all(1)
|
||||||
|
corect = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
for y = pos1.y, pos2.y,pos2.y-pos1.y do
|
||||||
|
for z = pos1.z+1,pos2.z-1 , 1 do
|
||||||
|
local vi = a:index(pos.x, y, z)
|
||||||
|
if not (data[vi] == id_other or data[vi] == id_item_input_hatch or data[vi] == id_item_output_hatch or data[vi] == id_energy_input_hatch or data[vi] == id_fluid_output_hatch) then
|
||||||
|
minetest.chat_send_all(1)
|
||||||
|
corect = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if not (data[a:index(pos.x, pos.y, pos2.z)] == id_other or data[a:index(pos.x, pos.y, pos2.z)] == id_item_input_hatch or data[a:index(pos.x, pos.y, pos2.z)] == id_item_output_hatch
|
||||||
|
or data[a:index(pos.x, pos.y, pos2.z)] == id_energy_input_hatch or data[a:index(pos.x, pos.y, pos2.z)] == id_fluid_output_hatch) then
|
||||||
|
corect = false
|
||||||
|
end
|
||||||
|
if item_hatch_input_count~=1 or item_hatch_output_count~=1 or energy_hatch_input_count~=1 or fluid_hatch_output_count~=1 then--get need count of hatchs
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
corect = false
|
||||||
|
minetest.chat_send_all(rotation.."eror!")
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"item_hatch_input",0,0,0)
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"item_hatch_output",0,0,0)
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"energy_hatch_input",0,0,0)
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"fluid_hatch_output",0,0,0)
|
||||||
|
end
|
||||||
|
return corect
|
||||||
end
|
end
|
||||||
if centr_pos.y==pos.y then
|
if rotation==2 then --z+1
|
||||||
for i = -1, 1, 1 do --check botom
|
local corect =true
|
||||||
for j = -1, 1, 1 do
|
local vm = minetest.get_voxel_manip()
|
||||||
if minetest.get_node_or_nil({x=centr_pos.x+i,y=centr_pos.y-1,z=centr_pos.z+j}).name~="owl_tech:bronze_briks" then
|
local pos1,pos2 = {x=pos.x-1,y=pos.y-1,z=pos.z-4},{x=pos.x+1,y=pos.y+1,z=pos.z}
|
||||||
retu=false
|
local emin, emax = vm:read_from_map(pos1,pos2)
|
||||||
|
local a = VoxelArea:new{
|
||||||
|
MinEdge = emin,
|
||||||
|
MaxEdge = emax
|
||||||
|
}
|
||||||
|
local data = vm:get_data()
|
||||||
|
-- begin frames
|
||||||
|
for z = pos1.z, pos2.z do
|
||||||
|
for y = pos1.y,pos2.y,pos2.y-pos1.y do
|
||||||
|
for x = pos1.x,pos2.x,pos2.x-pos1.x do
|
||||||
|
local vi = a:index(x, y, z)
|
||||||
|
if data[vi] ~= id_frame then
|
||||||
|
minetest.chat_send_all("error"..pos1.x.."--"..pos1.y.."--"..z)
|
||||||
|
corect = false
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if minetest.get_node_or_nil({x=centr_pos.x+1,y=centr_pos.y,z=centr_pos.z+1}).name~="owl_tech:bronze_briks" or
|
for y = pos1.y,pos2.y,pos2.y-pos1.y do
|
||||||
minetest.get_node_or_nil({x=centr_pos.x-1,y=centr_pos.y,z=centr_pos.z+1}).name~="owl_tech:bronze_briks" or
|
for z = pos1.z,pos2.z,pos2.z-pos1.z do
|
||||||
minetest.get_node_or_nil({x=centr_pos.x+1,y=centr_pos.y,z=centr_pos.z-1}).name~="owl_tech:bronze_briks" or
|
local vi = a:index(pos.x, y, z)
|
||||||
minetest.get_node_or_nil({x=centr_pos.x-1,y=centr_pos.y,z=centr_pos.z-1}).name~="owl_tech:bronze_briks" then
|
if data[vi] ~= id_frame then
|
||||||
retu=false
|
minetest.chat_send_all("error"..pos1.x.."--"..pos1.y.."--"..z)
|
||||||
end
|
corect = false
|
||||||
for i = -1, 1, 1 do --check +1 level
|
|
||||||
for j = -1, 1, 1 do
|
|
||||||
if minetest.get_node_or_nil({x=centr_pos.x+i,y=centr_pos.y+1,z=centr_pos.z+j}).name~="owl_tech:bronze_briks" and not(i==0 and j==0) then
|
|
||||||
retu=false
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
for i = -1, 1, 1 do --check +2 level
|
for x = pos1.x,pos2.x,pos2.x-pos1.x do
|
||||||
for j = -1, 1, 1 do
|
for z = pos1.z,pos2.z,pos2.z-pos1.z do
|
||||||
if minetest.get_node_or_nil({x=centr_pos.x+i,y=centr_pos.y+2,z=centr_pos.z+j}).name~="owl_tech:bronze_briks" and not(i==0 and j==0) then
|
local vi = a:index(x, pos1.y+1, z)
|
||||||
retu=false
|
if data[vi] ~= id_frame then
|
||||||
|
minetest.chat_send_all("error"..pos1.x.."--"..pos1.y.."--"..z)
|
||||||
|
corect = false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return retu
|
-- end frames -begin entrails
|
||||||
else
|
for z = pos1.z+1,pos2.z-1 , 1 do
|
||||||
return false
|
local vi = a:index(pos.x, pos.y, z)
|
||||||
|
if data[vi] ~= id_entrails then
|
||||||
|
minetest.chat_send_all("error"..pos1.x.."--"..pos1.y.."--"..z)
|
||||||
|
corect = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
-- end entrails look for hatch
|
||||||
|
for x = pos1.x, pos2.x,pos2.x-pos1.x do
|
||||||
|
for z = pos1.z+1,pos2.z-1 , 1 do
|
||||||
|
local vi = a:index(x, pos.y, z)
|
||||||
|
if data[vi] == id_item_input_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"item_hatch_input",x,pos.y,z)
|
||||||
|
item_hatch_input_count = item_hatch_input_count + 1
|
||||||
|
end
|
||||||
|
if data[vi] == id_item_output_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"item_hatch_output",x,pos.y,z)
|
||||||
|
item_hatch_output_count = item_hatch_output_count + 1
|
||||||
|
end
|
||||||
|
if data[vi] == id_energy_input_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"energy_hatch_input",x,pos.y,z)
|
||||||
|
energy_hatch_input_count = energy_hatch_input_count + 1
|
||||||
|
end
|
||||||
|
if data[vi] == id_fluid_output_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"fluid_hatch_output",x,pos.y,z)
|
||||||
|
fluid_hatch_output_count = fluid_hatch_output_count + 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
for y = pos1.y, pos2.y,pos2.y-pos1.y do
|
||||||
|
for z = pos1.z+1,pos2.z-1 , 1 do
|
||||||
|
local vi = a:index(pos.x, y, z)
|
||||||
|
if data[vi] == id_item_input_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"item_hatch_input",pos.x, y, z)
|
||||||
|
item_hatch_input_count = item_hatch_input_count + 1
|
||||||
|
end
|
||||||
|
if data[vi] == id_item_output_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"item_hatch_output",pos.x, y, z)
|
||||||
|
item_hatch_output_count = item_hatch_output_count + 1
|
||||||
|
end
|
||||||
|
if data[vi] == id_energy_input_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"energy_hatch_input",pos.x, y, z)
|
||||||
|
energy_hatch_input_count = energy_hatch_input_count + 1
|
||||||
|
end
|
||||||
|
if data[vi] == id_fluid_output_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"fluid_hatch_output",pos.x, y, z)
|
||||||
|
fluid_hatch_output_count = fluid_hatch_output_count + 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if data[a:index(pos.x, pos.y, pos2.z)] == id_item_input_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"fluid_hatch_output",pos.x, pos.y, pos2.z)
|
||||||
|
fluid_hatch_output_count = fluid_hatch_output_count + 1
|
||||||
|
end
|
||||||
|
if data[a:index(pos.x, pos.y, pos2.z)] == id_item_output_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"item_hatch_output",pos.x, pos.y, pos2.z)
|
||||||
|
item_hatch_output_count = item_hatch_output_count + 1
|
||||||
|
end
|
||||||
|
if data[a:index(pos.x, pos.y, pos2.z)] == id_energy_input_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"energy_hatch_input",pos.x, pos.y, pos2.z)
|
||||||
|
energy_hatch_input_count = energy_hatch_input_count + 1
|
||||||
|
end
|
||||||
|
if data[a:index(pos.x, pos.y, pos2.z)] == id_fluid_output_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"fluid_hatch_output",pos.x, pos.y, pos2.z)
|
||||||
|
fluid_hatch_output_count = fluid_hatch_output_count + 1
|
||||||
|
end
|
||||||
|
--end look for hacth begin look for other nodes
|
||||||
|
for x = pos1.x, pos2.x,pos2.x-pos1.x do
|
||||||
|
for z = pos1.z+1,pos2.z-1 , 1 do
|
||||||
|
local vi = a:index(x, pos.y, z)
|
||||||
|
if not (data[vi] == id_other or data[vi] == id_item_input_hatch or data[vi] == id_item_output_hatch or data[vi] == id_energy_input_hatch or data[vi] == id_fluid_output_hatch) then
|
||||||
|
corect = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
for y = pos1.y, pos2.y,pos2.y-pos1.y do
|
||||||
|
for z = pos1.z+1,pos2.z-1 , 1 do
|
||||||
|
local vi = a:index(pos.x, y, z)
|
||||||
|
if not (data[vi] == id_other or data[vi] == id_item_input_hatch or data[vi] == id_item_output_hatch or data[vi] == id_energy_input_hatch or data[vi] == id_fluid_output_hatch) then
|
||||||
|
corect = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if not (data[a:index(pos.x, pos.y, pos1.z)]== id_other
|
||||||
|
or data[a:index(pos.x, pos.y, pos1.z)] == id_item_input_hatch
|
||||||
|
or data[a:index(pos.x, pos.y, pos1.z)] == id_item_output_hatch
|
||||||
|
or data[a:index(pos.x, pos.y, pos1.z)] == id_energy_input_hatch
|
||||||
|
or data[a:index(pos.x, pos.y, pos1.z)] == id_fluid_output_hatch) then
|
||||||
|
corect = false
|
||||||
|
end
|
||||||
|
if item_hatch_input_count~=1 or item_hatch_output_count~=1 or energy_hatch_input_count~=1 or fluid_hatch_output_count~=1 then--get need count of hatchs
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"item_hatch_input",0,0,0)
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"item_hatch_output",0,0,0)
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"energy_hatch_input",0,0,0)
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"fluid_hatch_output",0,0,0)
|
||||||
|
end
|
||||||
|
return corect
|
||||||
|
end
|
||||||
|
if rotation==1 then --x-1
|
||||||
|
local corect =true
|
||||||
|
local vm = minetest.get_voxel_manip()
|
||||||
|
local pos1,pos2 = {x=pos.x,y=pos.y-1,z=pos.z-1},{x=pos.x+4,y=pos.y+1,z=pos.z+1}
|
||||||
|
local emin, emax = vm:read_from_map(pos1,pos2)
|
||||||
|
local a = VoxelArea:new{
|
||||||
|
MinEdge = emin,
|
||||||
|
MaxEdge = emax
|
||||||
|
}
|
||||||
|
local data = vm:get_data()
|
||||||
|
-- begin frames
|
||||||
|
for x = pos1.x, pos2.x do
|
||||||
|
for y = pos1.y,pos2.y,pos2.y-pos1.y do
|
||||||
|
for z = pos1.z,pos2.z,pos2.x-pos1.z do
|
||||||
|
local vi = a:index(x, y, z)
|
||||||
|
if data[vi] ~= id_frame then
|
||||||
|
minetest.chat_send_all("error"..pos1.x.."--"..pos1.y.."--"..z)
|
||||||
|
corect = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
for y = pos1.y,pos2.y,pos2.y-pos1.y do
|
||||||
|
for x = pos1.x,pos2.x,pos2.x-pos1.x do
|
||||||
|
local vi = a:index(x, y, pos.z)
|
||||||
|
if data[vi] ~= id_frame then
|
||||||
|
minetest.chat_send_all("error"..x.."--"..pos1.y.."--"..pos1.z)
|
||||||
|
corect = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
for z = pos1.z,pos2.z,pos2.z-pos1.z do
|
||||||
|
for x = pos1.x,pos2.x,pos2.x-pos1.x do
|
||||||
|
local vi = a:index(x, pos1.y+1, z)
|
||||||
|
if data[vi] ~= id_frame then
|
||||||
|
minetest.chat_send_all("error"..pos1.x.."--"..pos1.y.."--"..z)
|
||||||
|
corect = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
-- end frames -begin entrails
|
||||||
|
for x = pos1.x+1,pos2.x-1 , 1 do
|
||||||
|
local vi = a:index(x, pos.y, pos.z)
|
||||||
|
if data[vi] ~= id_entrails then
|
||||||
|
minetest.chat_send_all("error"..x.."--"..pos1.y.."--"..pos1.z)
|
||||||
|
corect = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
-- end entrails look for hatch
|
||||||
|
for z = pos1.z, pos2.z,pos2.z-pos1.z do
|
||||||
|
for x = pos1.x+1,pos2.x-1 , 1 do
|
||||||
|
local vi = a:index(x, pos.y, z)
|
||||||
|
if data[vi] == id_item_input_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"item_hatch_input",x,pos.y,z)
|
||||||
|
item_hatch_input_count = item_hatch_input_count + 1
|
||||||
|
end
|
||||||
|
if data[vi] == id_item_output_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"item_hatch_output",x,pos.y,z)
|
||||||
|
item_hatch_output_count = item_hatch_output_count + 1
|
||||||
|
end
|
||||||
|
if data[vi] == id_energy_input_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"energy_hatch_input",x,pos.y,z)
|
||||||
|
energy_hatch_input_count = energy_hatch_input_count + 1
|
||||||
|
end
|
||||||
|
if data[vi] == id_fluid_output_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"fluid_hatch_output",x,pos.y,z)
|
||||||
|
fluid_hatch_output_count = fluid_hatch_output_count + 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
for y = pos1.y, pos2.y,pos2.y-pos1.y do
|
||||||
|
for x = pos1.x+1,pos2.x-1 , 1 do
|
||||||
|
local vi = a:index(x, y, pos.z)
|
||||||
|
if data[vi] == id_item_input_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"item_hatch_input",x, y, pos.z)
|
||||||
|
item_hatch_input_count = item_hatch_input_count + 1
|
||||||
|
end
|
||||||
|
if data[vi] == id_item_output_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"item_hatch_output",x, y, pos.z)
|
||||||
|
item_hatch_output_count = item_hatch_output_count + 1
|
||||||
|
end
|
||||||
|
if data[vi] == id_energy_input_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"energy_hatch_input",x, y, pos.z)
|
||||||
|
energy_hatch_input_count = energy_hatch_input_count + 1
|
||||||
|
end
|
||||||
|
if data[vi] == id_fluid_output_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"fluid_hatch_output",x, y, pos.z)
|
||||||
|
fluid_hatch_output_count = fluid_hatch_output_count + 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if data[a:index(pos2.x, pos.y, pos.z)] == id_item_input_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"fluid_hatch_output",pos.x, pos.y, pos2.z)
|
||||||
|
fluid_hatch_output_count = fluid_hatch_output_count + 1
|
||||||
|
end
|
||||||
|
if data[a:index(pos2.x, pos.y, pos.z)] == id_item_output_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"item_hatch_output",pos.x, pos.y, pos2.z)
|
||||||
|
item_hatch_output_count = item_hatch_output_count + 1
|
||||||
|
end
|
||||||
|
if data[a:index(pos2.x, pos.y, pos.z)] == id_energy_input_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"energy_hatch_input",pos.x, pos.y, pos2.z)
|
||||||
|
energy_hatch_input_count = energy_hatch_input_count + 1
|
||||||
|
end
|
||||||
|
if data[a:index(pos2.x, pos.y, pos.z)] == id_fluid_output_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"fluid_hatch_output",pos.x, pos.y, pos2.z)
|
||||||
|
fluid_hatch_output_count = fluid_hatch_output_count + 1
|
||||||
|
end
|
||||||
|
--end look for hacth begin look for other nodes
|
||||||
|
for z = pos1.x, pos2.z,pos2.z-pos1.z do
|
||||||
|
for x = pos1.x+1,pos2.x-1 , 1 do
|
||||||
|
local vi = a:index(x, pos.y, z)
|
||||||
|
if not (data[vi] == id_other or data[vi] == id_item_input_hatch or data[vi] == id_item_output_hatch or data[vi] == id_energy_input_hatch or data[vi] == id_fluid_output_hatch) then
|
||||||
|
corect = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
for y = pos1.y, pos2.y,pos2.y-pos1.y do
|
||||||
|
for x = pos1.x+1,pos2.x-1 , 1 do
|
||||||
|
local vi = a:index(x, y, pos.z)
|
||||||
|
if not (data[vi] == id_other or data[vi] == id_item_input_hatch or data[vi] == id_item_output_hatch or data[vi] == id_energy_input_hatch or data[vi] == id_fluid_output_hatch) then
|
||||||
|
corect = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if not (data[a:index(pos2.x, pos.y, pos.z)] == id_other or data[a:index(pos2.x, pos.y, pos.z)] == id_item_input_hatch or data[a:index(pos2.x, pos.y, pos.z)] == id_item_output_hatch
|
||||||
|
or data[a:index(pos2.x, pos.y, pos.z)] == id_energy_input_hatch or data[a:index(pos2.x, pos.y, pos.z)] == id_fluid_output_hatch) then
|
||||||
|
corect = false
|
||||||
|
end
|
||||||
|
if item_hatch_input_count~=1 or item_hatch_output_count~=1 or energy_hatch_input_count~=1 or fluid_hatch_output_count~=1 then--get need count of hatchs
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
minetest.chat_send_all(rotation.."eror!")
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"item_hatch_input",0,0,0)
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"item_hatch_output",0,0,0)
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"energy_hatch_input",0,0,0)
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"fluid_hatch_output",0,0,0)
|
||||||
|
end
|
||||||
|
return corect
|
||||||
|
end
|
||||||
|
if rotation==3 then --x+1 dont work!
|
||||||
|
local corect =true
|
||||||
|
local vm = minetest.get_voxel_manip()
|
||||||
|
local pos1,pos2 = {x=pos.x-4,y=pos.y-1,z=pos.z-1},{x=pos.x,y=pos.y+1,z=pos.z+1}
|
||||||
|
local emin, emax = vm:read_from_map(pos1,pos2)
|
||||||
|
local a = VoxelArea:new{
|
||||||
|
MinEdge = emin,
|
||||||
|
MaxEdge = emax
|
||||||
|
}
|
||||||
|
local data = vm:get_data()
|
||||||
|
-- begin frames
|
||||||
|
for x = pos1.x, pos2.x do
|
||||||
|
for y = pos1.y,pos2.y,pos2.y-pos1.y do
|
||||||
|
for z = pos1.z,pos2.z,pos2.x-pos1.z do
|
||||||
|
local vi = a:index(x, y, z)
|
||||||
|
if data[vi] ~= id_frame then
|
||||||
|
minetest.chat_send_all("error"..pos1.x.."--"..pos1.y.."--"..z)
|
||||||
|
corect = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
for y = pos1.y,pos2.y,pos2.y-pos1.y do
|
||||||
|
for x = pos1.x,pos2.x,pos2.x-pos1.x do
|
||||||
|
local vi = a:index(x, y, pos.z)
|
||||||
|
if data[vi] ~= id_frame then
|
||||||
|
minetest.chat_send_all("error"..x.."--"..pos1.y.."--"..pos1.z)
|
||||||
|
corect = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
for z = pos1.z,pos2.z,pos2.z-pos1.z do
|
||||||
|
for x = pos1.x,pos2.x,pos2.x-pos1.x do
|
||||||
|
local vi = a:index(x, pos1.y+1, z)
|
||||||
|
if data[vi] ~= id_frame then
|
||||||
|
minetest.chat_send_all("error"..pos1.x.."--"..pos1.y.."--"..z)
|
||||||
|
corect = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
-- end frames -begin entrails
|
||||||
|
for x = pos1.x+1,pos2.x-1 , 1 do
|
||||||
|
local vi = a:index(x, pos.y, pos.z)
|
||||||
|
if data[vi] ~= id_entrails then
|
||||||
|
minetest.chat_send_all("error"..x.."--"..pos1.y.."--"..pos1.z)
|
||||||
|
corect = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
-- end entrails look for hatch
|
||||||
|
for z = pos1.z, pos2.z,pos2.z-pos1.z do
|
||||||
|
for x = pos1.x+1,pos2.x-1 , 1 do
|
||||||
|
local vi = a:index(x, pos.y, z)
|
||||||
|
if data[vi] == id_item_input_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"item_hatch_input",x,pos.y,z)
|
||||||
|
item_hatch_input_count = item_hatch_input_count + 1
|
||||||
|
end
|
||||||
|
if data[vi] == id_item_output_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"item_hatch_output",x,pos.y,z)
|
||||||
|
item_hatch_output_count = item_hatch_output_count + 1
|
||||||
|
end
|
||||||
|
if data[vi] == id_energy_input_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"energy_hatch_input",x,pos.y,z)
|
||||||
|
energy_hatch_input_count = energy_hatch_input_count + 1
|
||||||
|
end
|
||||||
|
if data[vi] == id_fluid_output_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"fluid_hatch_output",x,pos.y,z)
|
||||||
|
fluid_hatch_output_count = fluid_hatch_output_count + 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
for y = pos1.y, pos2.y,pos2.y-pos1.y do
|
||||||
|
for x = pos1.x+1,pos2.x-1 , 1 do
|
||||||
|
local vi = a:index(x, y, pos.z)
|
||||||
|
if data[vi] == id_item_input_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"item_hatch_input",x, y, pos.z)
|
||||||
|
item_hatch_input_count = item_hatch_input_count + 1
|
||||||
|
end
|
||||||
|
if data[vi] == id_item_output_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"item_hatch_output",x, y, pos.z)
|
||||||
|
item_hatch_output_count = item_hatch_output_count + 1
|
||||||
|
end
|
||||||
|
if data[vi] == id_energy_input_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"energy_hatch_input",x, y, pos.z)
|
||||||
|
energy_hatch_input_count = energy_hatch_input_count + 1
|
||||||
|
end
|
||||||
|
if data[vi] == id_fluid_output_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"fluid_hatch_output",x, y, pos.z)
|
||||||
|
fluid_hatch_output_count = fluid_hatch_output_count + 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if data[a:index(pos2.x, pos.y, pos.z)] == id_item_input_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"fluid_hatch_output",pos.x, pos.y, pos2.z)
|
||||||
|
fluid_hatch_output_count = fluid_hatch_output_count + 1
|
||||||
|
end
|
||||||
|
if data[a:index(pos2.x, pos.y, pos.z)] == id_item_output_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"item_hatch_output",pos.x, pos.y, pos2.z)
|
||||||
|
item_hatch_output_count = item_hatch_output_count + 1
|
||||||
|
end
|
||||||
|
if data[a:index(pos2.x, pos.y, pos.z)] == id_energy_input_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"energy_hatch_input",pos.x, pos.y, pos2.z)
|
||||||
|
energy_hatch_input_count = energy_hatch_input_count + 1
|
||||||
|
end
|
||||||
|
if data[a:index(pos2.x, pos.y, pos.z)] == id_fluid_output_hatch then
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"fluid_hatch_output",pos.x, pos.y, pos2.z)
|
||||||
|
fluid_hatch_output_count = fluid_hatch_output_count + 1
|
||||||
|
end
|
||||||
|
--end look for hacth begin look for other nodes
|
||||||
|
for z = pos1.x, pos2.z,pos2.z-pos1.z do
|
||||||
|
for x = pos1.x+1,pos2.x-1 , 1 do
|
||||||
|
local vi = a:index(x, pos.y, z)
|
||||||
|
if not (data[vi] == id_other or data[vi] == id_item_input_hatch or data[vi] == id_item_output_hatch or data[vi] == id_energy_input_hatch or data[vi] == id_fluid_output_hatch) then
|
||||||
|
corect = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
for y = pos1.y, pos2.y,pos2.y-pos1.y do
|
||||||
|
for x = pos1.x+1,pos2.x-1 , 1 do
|
||||||
|
local vi = a:index(x, y, pos.z)
|
||||||
|
if not (data[vi] == id_other or data[vi] == id_item_input_hatch or data[vi] == id_item_output_hatch or data[vi] == id_energy_input_hatch or data[vi] == id_fluid_output_hatch) then
|
||||||
|
corect = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if not (data[a:index(pos1.x, pos.y, pos.z)] == id_other or data[a:index(pos1.x, pos.y, pos.z)] == id_item_input_hatch or data[a:index(pos1.x, pos.y, pos.z)] == id_item_output_hatch
|
||||||
|
or data[a:index(pos1.x, pos.y, pos.z)] == id_energy_input_hatch or data[a:index(pos1.x, pos.y, pos.z)] == id_fluid_output_hatch) then
|
||||||
|
corect = false
|
||||||
|
end
|
||||||
|
if item_hatch_input_count~=1 or item_hatch_output_count~=1 or energy_hatch_input_count~=1 or fluid_hatch_output_count~=1 then--get need count of hatchs
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
minetest.chat_send_all(rotation.."eror!")
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"item_hatch_input",0,0,0)
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"item_hatch_output",0,0,0)
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"energy_hatch_input",0,0,0)
|
||||||
|
owl_tech:set_hatch_ofset(meta,1,"fluid_hatch_output",0,0,0)
|
||||||
|
end
|
||||||
|
return corect
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
--wood pyrolyze controller
|
||||||
--bronze_blast furnance
|
|
||||||
minetest.register_node("owl_tech:wood_pyrolis", {
|
minetest.register_node("owl_tech:wood_pyrolis", {
|
||||||
description = S("WIP Wood pyrolis controller"),
|
description = S("Wood pyrolis controller"),
|
||||||
_doc_items_longdesc = S("A more efficient way to turn wood into coal"),
|
_doc_items_longdesc = S("A more efficient way to turn wood into coal"),
|
||||||
tiles = {
|
tiles = {
|
||||||
"(owl_tech_base_meshanism_side.png^[colorize:#575757:128)",
|
"(owl_tech_base_meshanism_side.png^[colorize:#575757:128)",
|
||||||
|
@ -95,11 +628,11 @@ minetest.register_node("owl_tech:wood_pyrolis", {
|
||||||
"owl_tech_base_meshanism_side.png^[colorize:#575757:128",
|
"owl_tech_base_meshanism_side.png^[colorize:#575757:128",
|
||||||
"owl_tech_base_meshanism_side.png^[colorize:#575757:128",
|
"owl_tech_base_meshanism_side.png^[colorize:#575757:128",
|
||||||
"owl_tech_base_meshanism_side.png^[colorize:#575757:128",
|
"owl_tech_base_meshanism_side.png^[colorize:#575757:128",
|
||||||
"(owl_tech_base_meshanism_side.png^[colorize:#575757:128)^owl_tech_smelter_face.png",
|
"(owl_tech_base_meshanism_side.png^[colorize:#575757:128)^owl_tech_macerator_face.png",
|
||||||
},
|
},
|
||||||
is_ground_content = false,
|
is_ground_content = false,
|
||||||
stack_max = 64,
|
stack_max = 64,
|
||||||
groups = {pickaxey=2, owl_tech_machine=1},
|
groups = {pickaxey=2, owl_tech_machine=1,controller_node=1},
|
||||||
sounds = mcl_sounds.node_sound_metal_defaults(),
|
sounds = mcl_sounds.node_sound_metal_defaults(),
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
_mcl_blast_resistance = 6,
|
_mcl_blast_resistance = 6,
|
||||||
|
@ -108,58 +641,79 @@ minetest.register_node("owl_tech:wood_pyrolis", {
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
owl_tech.set_mashine_tire(meta,2) --all steam mishine has 1 tire
|
owl_tech.set_mashine_tire(meta,2) --all steam mishine has 1 tire
|
||||||
owl_tech.reset_item_redines(meta)
|
owl_tech.reset_item_redines(meta)
|
||||||
set_formspect_wood_pyrolis(meta)
|
|
||||||
local timer =minetest.get_node_timer(pos)
|
local timer =minetest.get_node_timer(pos)
|
||||||
local inv = meta:get_inventory()
|
|
||||||
meta:set_int("fuel_burn",0)
|
|
||||||
inv:set_size("input_in", 1)
|
|
||||||
inv:set_size("input_in_add", 1)
|
|
||||||
inv:set_size("dst", 1)
|
|
||||||
timer:start(0.2)
|
timer:start(0.2)
|
||||||
end,
|
end,
|
||||||
on_timer = function(pos, elapsed)
|
on_timer = function(pos, elapsed)
|
||||||
local timer = minetest.get_node_timer(pos)
|
local timer = minetest.get_node_timer(pos)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
local inv = meta:get_inventory()
|
if bronze_blast_furnanse_build_correct(pos) then
|
||||||
local input_its = inv:get_stack('input_in', 1)
|
local input_stack = owl_tech:get_item_in_input_hatch_pos(
|
||||||
local input_its_add = inv:get_stack('input_in_add', 1)
|
owl_tech:get_hatch_ofset_X(meta,1,"item_hatch_input"),
|
||||||
local dst_its = inv:get_stack('dst', 1)
|
owl_tech:get_hatch_ofset_Y(meta,1,"item_hatch_input"),
|
||||||
if bronze_blast_furnanse_build_correct(pos) then
|
owl_tech:get_hatch_ofset_Z(meta,1,"item_hatch_input")
|
||||||
if meta:get_int("fuel_burn")~=0 and input_its:get_name() ~= "owl_tech:iron_ingot" then
|
)
|
||||||
meta:set_int("fuel_burn",0)
|
local output_stack = owl_tech:get_item_in_input_output_pos(
|
||||||
end
|
owl_tech:get_hatch_ofset_X(meta,1,"item_hatch_output"),
|
||||||
if meta:get_int("fuel_burn")==0 and input_its_add:get_name() =='owl_tech:coal' and input_its:get_name() == "owl_tech:iron_ingot" then
|
owl_tech:get_hatch_ofset_Y(meta,1,"item_hatch_output"),
|
||||||
meta:set_int("fuel_burn",50)
|
owl_tech:get_hatch_ofset_Z(meta,1,"item_hatch_output")
|
||||||
input_its_add:set_count(input_its_add:get_count()-1)
|
)
|
||||||
inv:set_stack('input_in_add', 1,input_its_add)
|
local input_energy = owl_tech:get_charge_in_hatch_pos(
|
||||||
end
|
owl_tech:get_hatch_ofset_X(meta,1,"energy_hatch_input"),
|
||||||
if input_its:get_name()== "owl_tech:iron_ingot" and meta:get_int("fuel_burn")>0 then -- chek for item in slots
|
owl_tech:get_hatch_ofset_Y(meta,1,"energy_hatch_input"),
|
||||||
local name1 =input_its:get_name() -- for metal
|
owl_tech:get_hatch_ofset_Z(meta,1,"energy_hatch_input")
|
||||||
if name1=="owl_tech:iron_ingot" and owl_tech.get_item_redines(meta)>-1 and owl_tech.get_item_redines(meta)<100 then --recipt real
|
)
|
||||||
owl_tech.add_item_redines(meta,1)
|
local fluid_output = owl_tech:get_volume_amount_in_hatch_pos(
|
||||||
meta:set_int("fuel_burn",meta:get_int("fuel_burn")-1)
|
owl_tech:get_hatch_ofset_X(meta,1,"fluid_hatch_output"),
|
||||||
elseif name1=="owl_tech:iron_ingot" and owl_tech.get_item_redines(meta)>=100 then
|
owl_tech:get_hatch_ofset_Y(meta,1,"fluid_hatch_output"),
|
||||||
input_its:set_count(input_its:get_count()-1) --Remove item from input slot
|
owl_tech:get_hatch_ofset_Z(meta,1,"fluid_hatch_output")
|
||||||
inv:set_stack('input_in', 1, input_its)
|
)
|
||||||
if not dst_its:is_empty() then-- Add main output
|
if owl_tech.get_item_redines(meta)>0 and owl_tech.get_item_redines(meta)<100 then
|
||||||
dst_its:set_count(dst_its:get_count()+1)
|
if owl_tech.get_item_redines(meta)==0 and input_stack:get_count()>=4 and output_stack:get_free_space()>=6
|
||||||
inv:set_stack('dst', 1, dst_its)
|
and minetest.get_item_group(input_stack:get_name(),"tree" and (output_stack:get_name()=="mcl_core:charcoal_lump" or output_stack:is_empty()) )
|
||||||
else
|
and owl_tech:get_max_volume_in_hatch_pos(owl_tech:get_hatch_ofset_X(meta,1,"fluid_hatch_output"),owl_tech:get_hatch_ofset_Y(meta,1,"fluid_hatch_output"),owl_tech:get_hatch_ofset_Z(meta,1,"fluid_hatch_output"))-fluid_output>=250 then --has bonus coal
|
||||||
local item ={name="owl_tech:steel_ingot", count=1, wear=0, metadata=""}
|
owl_tech.add_item_redines(meta,10)
|
||||||
dst_its:add_item(item)
|
owl_tech:set_charge_in_hatch_pos(owl_tech:get_hatch_ofset_X(meta,1,"energy_hatch_input"),owl_tech:get_hatch_ofset_Y(meta,1,"energy_hatch_input"),owl_tech:get_hatch_ofset_Z(meta,1,"energy_hatch_input")
|
||||||
inv:set_stack('dst', 1, dst_its)
|
,input_energy-10)
|
||||||
end
|
|
||||||
local steam_new =owl_tech.get_pull_volume(meta,1)-25
|
|
||||||
owl_tech.set_pull_volume(meta,1,steam_new)
|
|
||||||
owl_tech.reset_item_redines(meta)
|
|
||||||
end
|
end
|
||||||
else
|
|
||||||
end
|
end
|
||||||
else
|
if owl_tech.get_item_redines(meta)==0 and input_stack:get_count()>=4 and output_stack:get_free_space()>=6
|
||||||
owl_tech.reset_item_redines(meta)
|
and minetest.get_item_group(input_stack:get_name(),"tree" and (output_stack:get_name()=="mcl_core:charcoal_lump" or output_stack:is_empty()) )
|
||||||
meta:set_int("fuel_burn",0)
|
and input_energy>=100
|
||||||
|
and owl_tech:get_max_volume_in_hatch_pos(owl_tech:get_hatch_ofset_X(meta,1,"fluid_hatch_output"),owl_tech:get_hatch_ofset_Y(meta,1,"fluid_hatch_output"),owl_tech:get_hatch_ofset_Z(meta,1,"fluid_hatch_output"))-fluid_output>=250 then --has bonus coal
|
||||||
|
owl_tech.add_item_redines(meta,10)
|
||||||
|
owl_tech:set_charge_in_hatch_pos(owl_tech:get_hatch_ofset_X(meta,1,"energy_hatch_input"),owl_tech:get_hatch_ofset_Y(meta,1,"energy_hatch_input"),owl_tech:get_hatch_ofset_Z(meta,1,"energy_hatch_input")
|
||||||
|
,input_energy-10)
|
||||||
|
end
|
||||||
|
if owl_tech.get_item_redines(meta)>=100 then
|
||||||
|
if not output_stack:is_empty() then-- Add main output
|
||||||
|
output_stack:set_count(output_stack:get_count()+6)
|
||||||
|
owl_tech:set_item_in_input_output_pos(
|
||||||
|
owl_tech:get_hatch_ofset_X(meta,1,"item_hatch_output"),
|
||||||
|
owl_tech:get_hatch_ofset_Y(meta,1,"item_hatch_output"),
|
||||||
|
owl_tech:get_hatch_ofset_Z(meta,1,"item_hatch_output"),output_stack
|
||||||
|
)
|
||||||
|
else
|
||||||
|
local item ={name="mcl_core:charcoal_lump", count=6, wear=0, metadata=""}
|
||||||
|
output_stack:add_item(item)
|
||||||
|
owl_tech:set_item_in_input_output_pos(
|
||||||
|
owl_tech:get_hatch_ofset_X(meta,1,"item_hatch_output"),
|
||||||
|
owl_tech:get_hatch_ofset_Y(meta,1,"item_hatch_output"),
|
||||||
|
owl_tech:get_hatch_ofset_Z(meta,1,"item_hatch_output"),output_stack
|
||||||
|
)
|
||||||
|
end
|
||||||
|
input_stack:set_count(input_stack:get_count()-4)
|
||||||
|
owl_tech:set_item_in_input_hatch_pos(
|
||||||
|
owl_tech:get_hatch_ofset_X(meta,1,"item_hatch_input"),
|
||||||
|
owl_tech:get_hatch_ofset_Y(meta,1,"item_hatch_input"),
|
||||||
|
owl_tech:get_hatch_ofset_Z(meta,1,"item_hatch_input"),input_stack
|
||||||
|
)
|
||||||
|
if fluid_output==0 then ---Dont forget add fluid TODO
|
||||||
|
|
||||||
|
end
|
||||||
|
owl_tech.reset_item_redines(meta)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
owl_tech.delit_name_fluid_if_0(meta)
|
|
||||||
set_formspect_wood_pyrolis(meta)
|
set_formspect_wood_pyrolis(meta)
|
||||||
timer:start(0.2)
|
timer:start(0.2)
|
||||||
end
|
end
|
||||||
|
@ -167,10 +721,10 @@ minetest.register_node("owl_tech:wood_pyrolis", {
|
||||||
--Crafte controller
|
--Crafte controller
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "shaped",
|
type = "shaped",
|
||||||
output = "owl_tech:bronze_blast_furnace_controller",
|
output = "owl_tech:wood_pyrolis",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"mcl_furnaces:furnace","owl_tech:bronze_plate","mcl_furnaces:furnace"},
|
{"mcl_furnaces:furnace","owl_tech:bronze_plate","mcl_furnaces:furnace"},
|
||||||
{"owl_tech:bronze_plate","mcl_furnaces:furnace","owl_tech:bronze_plate"},
|
{"owl_tech:bronze_plate","mcl_furnaces:furnace","owl_tech:bronze_plate"},
|
||||||
{"owl_tech:bronze_plate","owl_tech:bronze_plate","owl_tech:bronze_plate"}
|
{"owl_tech:bronze_plate","owl_tech:bronze_plate","owl_tech:bronze_plate"}
|
||||||
}
|
}
|
||||||
})]]
|
})
|
|
@ -1,8 +1,29 @@
|
||||||
local S = minetest.get_translator(minetest.get_current_modname())
|
local S = minetest.get_translator(minetest.get_current_modname())
|
||||||
local name = minetest.get_current_modname()
|
local name = minetest.get_current_modname()
|
||||||
local path = minetest.get_modpath(name)
|
local path = minetest.get_modpath(name)
|
||||||
|
local use_select_box = minetest.settings:get_bool("mcl_buckets_use_select_box", false)
|
||||||
---- This crutch was suggested by the developers of Mineclone 2 - they made the functions of their shovels and hoes local
|
---- This crutch was suggested by the developers of Mineclone 2 - they made the functions of their shovels and hoes local
|
||||||
|
|
||||||
|
local mod_doc = minetest.get_modpath("doc")
|
||||||
|
local mod_mcl_core = minetest.get_modpath("mcl_core")
|
||||||
|
--local mod_mclx_core = minetest.get_modpath("mclx_core")
|
||||||
|
|
||||||
|
-- Localize some functions for faster access
|
||||||
|
local vector = vector
|
||||||
|
local math = math
|
||||||
|
local string = string
|
||||||
|
|
||||||
|
local raycast = minetest.raycast
|
||||||
|
local get_node = minetest.get_node
|
||||||
|
local set_node = minetest.set_node
|
||||||
|
local add_node = minetest.add_node
|
||||||
|
local add_item = minetest.add_item
|
||||||
|
|
||||||
|
local registered_nodes = minetest.registered_nodes
|
||||||
|
local get_item_group = minetest.get_item_group
|
||||||
|
local is_creative_enabled = minetest.is_creative_enabled
|
||||||
|
local is_protected = minetest.is_protected
|
||||||
|
local record_protection_violation = minetest.record_protection_violation
|
||||||
|
|
||||||
local function create_soil(pos, inv)
|
local function create_soil(pos, inv)
|
||||||
if pos == nil then
|
if pos == nil then
|
||||||
|
@ -925,7 +946,146 @@ for i, value in ipairs(gems_orew_array) do
|
||||||
_mcl_hardness = 5,
|
_mcl_hardness = 5,
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
local fluid_array ={
|
||||||
|
{"tar","Tar","owl_tech_tar_flowing_animated.png","owl_tech_tar_source_animated.png","owl_tech_tar_bucket.png","owl_tech_tar_for_sell.png"}--#8d4a00
|
||||||
|
}
|
||||||
|
for i, value in ipairs(fluid_array) do
|
||||||
|
minetest.register_node("owl_tech:"..fluid_array[i][1].."_flowing", {
|
||||||
|
description = S(fluid_array[i][2].." Water"),
|
||||||
|
_doc_items_create_entry = false,
|
||||||
|
wield_image = fluid_array[i][3].."^[verticalframe:64:0",
|
||||||
|
drawtype = "flowingliquid",
|
||||||
|
tiles = {fluid_array[i][3].."^[verticalframe:64:0"},
|
||||||
|
special_tiles = {
|
||||||
|
{
|
||||||
|
image="("..fluid_array[i][3]..")",
|
||||||
|
backface_culling=false,
|
||||||
|
animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=4.0}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
image="("..fluid_array[i][3]..")",
|
||||||
|
backface_culling=false,
|
||||||
|
animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=4.0}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
sounds = mcl_sounds.node_sound_water_defaults(),
|
||||||
|
is_ground_content = false,
|
||||||
|
use_texture_alpha = USE_TEXTURE_ALPHA,
|
||||||
|
paramtype = "light",
|
||||||
|
paramtype2 = "flowingliquid",
|
||||||
|
walkable = false,
|
||||||
|
pointable = false,
|
||||||
|
diggable = false,
|
||||||
|
buildable_to = true,
|
||||||
|
drop = "",
|
||||||
|
drowning = 4,
|
||||||
|
liquidtype = "flowing",
|
||||||
|
liquid_alternative_flowing = "owl_tech:"..fluid_array[i][1].."_flowing",
|
||||||
|
liquid_alternative_source = "owl_tech:"..fluid_array[i][1].."_source",
|
||||||
|
liquid_viscosity = WATER_VISC,
|
||||||
|
liquid_range = 7,
|
||||||
|
waving = 3,
|
||||||
|
post_effect_color = {a=20, r=0x03, g=0x3C, b=0x5C},
|
||||||
|
groups = { water=3, liquid=3, puts_out_fire=1, melt_around=1, dig_by_piston=1, not_in_creative_inventory=1,},--not_in_creative_inventory=1,
|
||||||
|
_mcl_blast_resistance = 100,
|
||||||
|
-- Hardness intentionally set to infinite instead of 100 (Minecraft value) to avoid problems in creative mode
|
||||||
|
_mcl_hardness = -1,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("owl_tech:"..fluid_array[i][1].."_source", {
|
||||||
|
description = S("Water Source"),
|
||||||
|
_doc_items_entry_name = S("Water"),
|
||||||
|
_doc_items_longdesc =
|
||||||
|
S("Сompounds from cyclic, highly volatile and non-volatile compounds, which are presented in a spectrum: from methyl esters to combustion of alcohols, acids, phenols and light compounds.").."\n\n",
|
||||||
|
_doc_items_hidden = false,
|
||||||
|
drawtype = "liquid",
|
||||||
|
waving = 3,
|
||||||
|
tiles = {
|
||||||
|
{name=fluid_array[i][4], animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=5.0}}
|
||||||
|
},
|
||||||
|
special_tiles = {
|
||||||
|
-- New-style water source material (mostly unused)
|
||||||
|
{
|
||||||
|
name=fluid_array[i][4],
|
||||||
|
animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=5.0},
|
||||||
|
backface_culling = false,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
sounds = mcl_sounds.node_sound_water_defaults(),
|
||||||
|
is_ground_content = false,
|
||||||
|
use_texture_alpha = USE_TEXTURE_ALPHA,
|
||||||
|
paramtype = "light",
|
||||||
|
walkable = false,
|
||||||
|
pointable = false,
|
||||||
|
diggable = false,
|
||||||
|
buildable_to = true,
|
||||||
|
drop = "",
|
||||||
|
drowning = 4,
|
||||||
|
liquidtype = "source",
|
||||||
|
liquid_alternative_flowing = "owl_tech:"..fluid_array[i][1].."_flowing",
|
||||||
|
liquid_alternative_source = "owl_tech:"..fluid_array[i][1].."_source",
|
||||||
|
liquid_viscosity = WATER_VISC,
|
||||||
|
liquid_range = 7,
|
||||||
|
post_effect_color = {a=90, r=0x03, g=0x3C, b=0x5C},
|
||||||
|
stack_max = 64,
|
||||||
|
groups = { water=3, liquid=3, puts_out_fire=1, not_in_creative_inventory=1, dig_by_piston=1},
|
||||||
|
_mcl_blast_resistance = 100,
|
||||||
|
-- Hardness intentionally set to infinite instead of 100 (Minecraft value) to avoid problems in creative mode
|
||||||
|
_mcl_hardness = -1,
|
||||||
|
})
|
||||||
|
--capsuls
|
||||||
|
minetest.register_craftitem("owl_tech:"..fluid_array[i][1].."sell_tire_1", {
|
||||||
|
description = S("Get 1000 of "..fluid_array[i][1]),
|
||||||
|
_doc_items_longdesc = S("Contein "..fluid_array[i][1]),
|
||||||
|
inventory_image = "owl_tech_empty_sell.png^"..fluid_array[i][6],
|
||||||
|
stack_max = 64,
|
||||||
|
groups = { craftitem=1 },
|
||||||
|
on_place = function(itemstack, placer, pointed_thing)
|
||||||
|
if pointed_thing.type == "node" then
|
||||||
|
minetest.place_node(pointed_thing.above,{name="owl_tech:"..fluid_array[i][1].."_source"})
|
||||||
|
itemstack:set_count(itemstack:get_count()-1)
|
||||||
|
return itemstack
|
||||||
|
end
|
||||||
|
end
|
||||||
|
})
|
||||||
|
end
|
||||||
|
--empty sell
|
||||||
|
minetest.register_craftitem("owl_tech:empty_sell_tire_1", {
|
||||||
|
description = S("Sell tire 1"),
|
||||||
|
_doc_items_longdesc = S("Simple sell for fluids"),
|
||||||
|
inventory_image = "owl_tech_empty_sell.png",
|
||||||
|
stack_max = 64,
|
||||||
|
groups = { craftitem=1 },
|
||||||
|
})
|
||||||
|
-- water and lava sell owl_tech_lava_for_sell.png
|
||||||
|
minetest.register_craftitem("owl_tech:water_sell_tire_1", {
|
||||||
|
description = S("Get 1000 of water"),
|
||||||
|
_doc_items_longdesc = S("Contein water"),
|
||||||
|
inventory_image = "owl_tech_empty_sell.png^owl_tech_water_for_sell.png",
|
||||||
|
stack_max = 64,
|
||||||
|
groups = { craftitem=1 },
|
||||||
|
on_place = function(itemstack, placer, pointed_thing)
|
||||||
|
if pointed_thing.type == "node" then
|
||||||
|
minetest.place_node(pointed_thing.above,{name="owl_tech:water_source"})
|
||||||
|
itemstack:set_count(itemstack:get_count()-1)
|
||||||
|
return itemstack
|
||||||
|
end
|
||||||
|
end
|
||||||
|
})
|
||||||
|
minetest.register_craftitem("owl_tech:lava_sell_tire_1", {
|
||||||
|
description = S("Get 1000 of lava"),
|
||||||
|
_doc_items_longdesc = S("Contein lava"),
|
||||||
|
inventory_image = "owl_tech_empty_sell.png^owl_tech_lava_for_sell.png",
|
||||||
|
stack_max = 64,
|
||||||
|
groups = { craftitem=1 },
|
||||||
|
on_place = function(itemstack, placer, pointed_thing)
|
||||||
|
if pointed_thing.type == "node" then
|
||||||
|
minetest.place_node(pointed_thing.above,{name="owl_tech:lava_source"})
|
||||||
|
itemstack:set_count(itemstack:get_count()-1)
|
||||||
|
return itemstack
|
||||||
|
end
|
||||||
|
end
|
||||||
|
})
|
||||||
-----------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------
|
||||||
--Some custom recips
|
--Some custom recips
|
||||||
--Crafte bronze dust from copper and tin
|
--Crafte bronze dust from copper and tin
|
||||||
|
|
|
@ -27,7 +27,7 @@ minetest.register_node("owl_tech:bronze_tank", {
|
||||||
owl_tech.update_fluid_pipe_around(pos)
|
owl_tech.update_fluid_pipe_around(pos)
|
||||||
owl_tech.set_fluid_sand_in_tick(meta,60)
|
owl_tech.set_fluid_sand_in_tick(meta,60)
|
||||||
local timer =minetest.get_node_timer(pos)
|
local timer =minetest.get_node_timer(pos)
|
||||||
meta:set_string("infotext",owl_tech.get_pull_volume(meta,1))
|
meta:set_string("infotext",owl_tech.get_pull_volume(meta,1).."--"..owl_tech.get_pull_max_volume(meta,1))
|
||||||
timer:start(0.2)
|
timer:start(0.2)
|
||||||
end,
|
end,
|
||||||
on_timer = function(pos, elapsed)
|
on_timer = function(pos, elapsed)
|
||||||
|
@ -56,7 +56,7 @@ minetest.register_node("owl_tech:bronze_tank", {
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
owl_tech.delit_name_fluid_if_0(meta)
|
owl_tech.delit_name_fluid_if_0(meta)
|
||||||
meta:set_string("infotext",owl_tech.get_pull_volume(meta,1))
|
meta:set_string("infotext",owl_tech.get_pull_volume(meta,1).."--"..owl_tech.get_pull_max_volume(meta,1))
|
||||||
timer:start(0.2)
|
timer:start(0.2)
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
After Width: | Height: | Size: 766 B |
After Width: | Height: | Size: 623 B |
After Width: | Height: | Size: 4.9 KiB |
After Width: | Height: | Size: 5.5 KiB |
After Width: | Height: | Size: 6.8 KiB |
After Width: | Height: | Size: 627 B |
After Width: | Height: | Size: 6.1 KiB |
After Width: | Height: | Size: 4.9 KiB |