From a8b625f782e4d146fabe656c47f4984e1962e805 Mon Sep 17 00:00:00 2001 From: mrkubax10 Date: Thu, 29 Feb 2024 20:39:26 +0100 Subject: [PATCH] Pipeworks compatibility: Nuclear Reactor --- compat/pipeworks.lua | 49 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/compat/pipeworks.lua b/compat/pipeworks.lua index 07dc1b4..c55d257 100644 --- a/compat/pipeworks.lua +++ b/compat/pipeworks.lua @@ -222,3 +222,52 @@ minetest.override_item("industrialtest:solar_panel",override) minetest.override_item("industrialtest:lv_solar_array",override) minetest.override_item("industrialtest:mv_solar_array",override) minetest.override_item("industrialtest:hv_solar_array",override) + +-- Nuclear Reactor +def=table.copy(minetest.registered_nodes["industrialtest:nuclear_reactor"]) + +def.groups.tubedevice=1 +def.groups.tubedevice_receiver=1 + +override={ + groups=def.groups, + tube={ + insert_object=function(pos,node,stack,direction) + local listname=direction.y==0 and "charged" or "fuel" + local def=stack:get_definition() + if (listname=="charged" and not industrialtest.api.hasPowerStorage(stack:get_meta())) or + (listname=="fuel" and (not def.groups or not def.groups._industrialtest_placedInNuclearReactor)) then + return nil + end + local meta=minetest.get_meta(pos) + local inv=meta:get_inventory() + local result=inv:add_item(listname,stack) + return result + end, + can_insert=function(pos,node,stack,direction) + local listname=direction.y==0 and "charged" or "fuel" + local def=stack:get_definition() + if (listname=="charged" and not industrialtest.api.hasPowerStorage(stack:get_meta())) or + (listname=="fuel" and (not def.groups or not def.groups._industrialtest_placedInNuclearReactor)) then + return false + end + local meta=minetest.get_meta(pos) + local inv=meta:get_inventory() + return inv:room_for_item(listname,stack) + end, + input_inventory="fuel", + connect_sides={ + left=1, + right=1, + back=1, + bottom=1, + top=1 + } + }, + after_place_node=pipeworks.after_place, + after_dig_node=pipeworks.after_dig, + on_rotate=pipeworks.on_rotate +} + +minetest.override_item("industrialtest:nuclear_reactor",override) +minetest.override_item("industrialtest:nuclear_reactor_active",override)