Compare commits
2 Commits
acdbad46c6
...
25680ace72
Author | SHA1 | Date | |
---|---|---|---|
25680ace72 | |||
c57efcdd5c |
@ -41,7 +41,10 @@ local function addPipeworksCompatibility(name,sides,inputInventory)
|
|||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
local result=inv:add_item(listname,stack)
|
local result=inv:add_item(listname,stack)
|
||||||
minetest.get_node_timer(pos):start(industrialtest.updateDelay)
|
local def=minetest.registered_nodes[node.name]
|
||||||
|
if def and def._industrialtest_self then
|
||||||
|
def._industrialtest_self:triggerIfNeeded(pos)
|
||||||
|
end
|
||||||
return result
|
return result
|
||||||
end,
|
end,
|
||||||
can_insert=function(pos,node,stack,direction)
|
can_insert=function(pos,node,stack,direction)
|
||||||
@ -53,6 +56,16 @@ local function addPipeworksCompatibility(name,sides,inputInventory)
|
|||||||
end
|
end
|
||||||
return inv:room_for_item(listname,stack)
|
return inv:room_for_item(listname,stack)
|
||||||
end,
|
end,
|
||||||
|
remove_items=function(pos,node,stack,direction,count,listname)
|
||||||
|
local meta=minetest.get_meta(pos)
|
||||||
|
local inv=meta:get_inventory()
|
||||||
|
inv:remove_item(listname,stack)
|
||||||
|
local def=minetest.registered_nodes[node.name]
|
||||||
|
if def and def._industrialtest_self then
|
||||||
|
def._industrialtest_self:triggerIfNeeded(pos)
|
||||||
|
end
|
||||||
|
return stack
|
||||||
|
end,
|
||||||
input_inventory=inputInventory,
|
input_inventory=inputInventory,
|
||||||
connect_sides={
|
connect_sides={
|
||||||
left=1,
|
left=1,
|
||||||
@ -157,7 +170,8 @@ local override={
|
|||||||
local meta=minetest.get_meta(pos)
|
local meta=minetest.get_meta(pos)
|
||||||
local inv=meta:get_inventory()
|
local inv=meta:get_inventory()
|
||||||
local result=inv:add_item(listname,stack)
|
local result=inv:add_item(listname,stack)
|
||||||
minetest.registered_nodes["industrialtest:nuclear_reactor"].on_metadata_inventory_put(pos)
|
industrialtest.Reactor.synchronizeChambers(pos)
|
||||||
|
industrialtest.Reactor:triggerIfNeeded(pos)
|
||||||
return result
|
return result
|
||||||
end,
|
end,
|
||||||
can_insert=function(pos,node,stack,direction)
|
can_insert=function(pos,node,stack,direction)
|
||||||
@ -171,6 +185,14 @@ local override={
|
|||||||
local inv=meta:get_inventory()
|
local inv=meta:get_inventory()
|
||||||
return inv:room_for_item(listname,stack)
|
return inv:room_for_item(listname,stack)
|
||||||
end,
|
end,
|
||||||
|
remove_items=function(pos,node,stack,direction,count,listname)
|
||||||
|
local meta=minetest.get_meta(pos)
|
||||||
|
local inv=meta:get_inventory()
|
||||||
|
inv:remove_item(listname,stack)
|
||||||
|
industrialtest.Reactor.synchronizeChambers(pos)
|
||||||
|
industrialtest.Reactor:triggerIfNeeded(pos)
|
||||||
|
return stack
|
||||||
|
end,
|
||||||
input_inventory="fuel",
|
input_inventory="fuel",
|
||||||
connect_sides={
|
connect_sides={
|
||||||
left=1,
|
left=1,
|
||||||
@ -207,10 +229,22 @@ override.tube.insert_object=function(pos,node,stack,direction)
|
|||||||
local meta=minetest.get_meta(pos)
|
local meta=minetest.get_meta(pos)
|
||||||
local inv=meta:get_inventory()
|
local inv=meta:get_inventory()
|
||||||
local result=inv:add_item(listname,stack)
|
local result=inv:add_item(listname,stack)
|
||||||
minetest.registered_nodes["industrialtest:nuclear_reactor_chamber"].on_metadata_inventory_put(pos)
|
industrialtest.Reactor:synchronizeToChamber(pos)
|
||||||
|
local reactorPos=minetest.deserialize(meta:get_string("reactor"))
|
||||||
|
industrialtest.Reactor:triggerIfNeeded(reactorPos)
|
||||||
return result
|
return result
|
||||||
end
|
end
|
||||||
|
|
||||||
|
override.tube.remove_items=function(pos,node,stack,direction,count,listname)
|
||||||
|
local meta=minetest.get_meta(pos)
|
||||||
|
local inv=meta:get_inventory()
|
||||||
|
inv:remove_item(listname,stack)
|
||||||
|
industrialtest.Reactor:synchronizeToChamber(pos)
|
||||||
|
local reactorPos=minetest.deserialize(meta:get_string("reactor"))
|
||||||
|
industrialtest.Reactor:triggerIfNeeded(reactorPos)
|
||||||
|
return stack
|
||||||
|
end
|
||||||
|
|
||||||
override.after_place_node_old=def.after_place_node
|
override.after_place_node_old=def.after_place_node
|
||||||
override.after_place_node=function(pos)
|
override.after_place_node=function(pos)
|
||||||
minetest.registered_nodes["industrialtest:nuclear_reactor_chamber"].after_place_node_old(pos)
|
minetest.registered_nodes["industrialtest:nuclear_reactor_chamber"].after_place_node_old(pos)
|
||||||
@ -269,14 +303,14 @@ override={
|
|||||||
if direction.y==1 then
|
if direction.y==1 then
|
||||||
listname="powerStorage"
|
listname="powerStorage"
|
||||||
elseif direction.y==-1 then
|
elseif direction.y==-1 then
|
||||||
listname="fuel"
|
listname="src"
|
||||||
else
|
else
|
||||||
listname="target"
|
listname="dst"
|
||||||
end
|
end
|
||||||
local def=stack:get_definition()
|
local def=stack:get_definition()
|
||||||
if (listname=="powerStorage" and not industrialtest.api.hasPowerStorage(stack:get_meta())) or
|
if (listname=="powerStorage" and not industrialtest.api.hasPowerStorage(stack:get_meta())) or
|
||||||
(listname=="fuel" and (not def.groups or not def.groups._industrialtest_fuel)) or
|
(listname=="src" and (not def.groups or not def.groups._industrialtest_fuel)) or
|
||||||
(listname=="target" and (not def.groups or not def.groups._industrialtest_fueled)) then
|
(listname=="dst" and (not def.groups or not def.groups._industrialtest_fueled)) then
|
||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
local meta=minetest.get_meta(pos)
|
local meta=minetest.get_meta(pos)
|
||||||
@ -290,21 +324,28 @@ override={
|
|||||||
if direction.y==1 then
|
if direction.y==1 then
|
||||||
listname="powerStorage"
|
listname="powerStorage"
|
||||||
elseif direction.y==-1 then
|
elseif direction.y==-1 then
|
||||||
listname="fuel"
|
listname="src"
|
||||||
else
|
else
|
||||||
listname="target"
|
listname="dst"
|
||||||
end
|
end
|
||||||
local def=stack:get_definition()
|
local def=stack:get_definition()
|
||||||
if (listname=="powerStorage" and not industrialtest.api.hasPowerStorage(stack:get_meta())) or
|
if (listname=="powerStorage" and not industrialtest.api.hasPowerStorage(stack:get_meta())) or
|
||||||
(listname=="fuel" and (not def.groups or not def.groups._industrialtest_fuel)) or
|
(listname=="src" and (not def.groups or not def.groups._industrialtest_fuel)) or
|
||||||
(listname=="target" and (not def.groups or not def.groups._industrialtest_fueled)) then
|
(listname=="dst" and (not def.groups or not def.groups._industrialtest_fueled)) then
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
local meta=minetest.get_meta(pos)
|
local meta=minetest.get_meta(pos)
|
||||||
local inv=meta:get_inventory()
|
local inv=meta:get_inventory()
|
||||||
return inv:room_for_item(listname,stack)
|
return inv:room_for_item(listname,stack)
|
||||||
end,
|
end,
|
||||||
input_inventory="target",
|
remove_items=function(pos,node,stack,direction,count,listname)
|
||||||
|
local meta=minetest.get_meta(pos)
|
||||||
|
local inv=meta:get_inventory()
|
||||||
|
inv:remove_item(listname,stack)
|
||||||
|
industrialtest.CanningMachine:triggerIfNeeded(pos)
|
||||||
|
return stack
|
||||||
|
end,
|
||||||
|
input_inventory="dst",
|
||||||
connect_sides={
|
connect_sides={
|
||||||
left=1,
|
left=1,
|
||||||
right=1,
|
right=1,
|
||||||
|
@ -99,7 +99,7 @@ function industrialtest.CanningMachine.getFormspec(self,pos)
|
|||||||
return parentFormspec..table.concat(formspec,"")
|
return parentFormspec..table.concat(formspec,"")
|
||||||
end
|
end
|
||||||
|
|
||||||
function industrialtest.CanningMachine.allowMetadataInventoryMove(self,pos,fromList,fromIndex,toList,count)
|
function industrialtest.CanningMachine.allowMetadataInventoryMove(self,pos,fromList,fromIndex,toList,toIndex,count)
|
||||||
if toList=="src" then
|
if toList=="src" then
|
||||||
local inv=minetest.get_meta(pos):get_inventory()
|
local inv=minetest.get_meta(pos):get_inventory()
|
||||||
local itemstack=inv:get_stack(fromList,fromIndex)
|
local itemstack=inv:get_stack(fromList,fromIndex)
|
||||||
@ -112,10 +112,13 @@ function industrialtest.CanningMachine.allowMetadataInventoryMove(self,pos,fromL
|
|||||||
local def=itemstack:get_definition()
|
local def=itemstack:get_definition()
|
||||||
return (def.groups and def.groups._industrialtest_fueled) and count or 0
|
return (def.groups and def.groups._industrialtest_fueled) and count or 0
|
||||||
end
|
end
|
||||||
return math.min(count,industrialtest.ActivatedElectricMachine.allowMetadataInventoryMove(self,pos,fromList,fromIndex,toList,count))
|
if toList=="leftover" then
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
return math.min(count,industrialtest.ActivatedElectricMachine.allowMetadataInventoryMove(self,pos,fromList,fromIndex,toList,toIndex,count))
|
||||||
end
|
end
|
||||||
|
|
||||||
function industrialtest.CanningMachine.allowMetadataInventoryPut(self,pos,listname,index,stack)
|
function industrialtest.CanningMachine.allowMetadataInventoryPut(self,pos,listname,index,stack,player)
|
||||||
if listname=="src" then
|
if listname=="src" then
|
||||||
local def=stack:get_definition()
|
local def=stack:get_definition()
|
||||||
return (def.groups and def.groups._industrialtest_fuel) and stack:get_count() or 0
|
return (def.groups and def.groups._industrialtest_fuel) and stack:get_count() or 0
|
||||||
@ -124,10 +127,13 @@ function industrialtest.CanningMachine.allowMetadataInventoryPut(self,pos,listna
|
|||||||
local def=stack:get_definition()
|
local def=stack:get_definition()
|
||||||
return (def.groups and def.groups._industrialtest_fueled) and stack:get_count() or 0
|
return (def.groups and def.groups._industrialtest_fueled) and stack:get_count() or 0
|
||||||
end
|
end
|
||||||
return math.min(stack:get_count(),industrialtest.ActivatedElectricMachine.allowMetadataInventoryPut(self,pos,listname,index,stack))
|
if listname=="leftover" then
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
return math.min(stack:get_count(),industrialtest.ActivatedElectricMachine.allowMetadataInventoryPut(self,pos,listname,index,stack,player))
|
||||||
end
|
end
|
||||||
|
|
||||||
function industrialtest.CanningMachine.allowMetadataInventoryTake(self,pos,listname,index,stack)
|
function industrialtest.CanningMachine.allowMetadataInventoryTake(self,pos,listname,index,stack,player)
|
||||||
local meta=minetest.get_meta(pos)
|
local meta=minetest.get_meta(pos)
|
||||||
local inv=meta:get_inventory()
|
local inv=meta:get_inventory()
|
||||||
local fuelSlot=inv:get_stack("src",1)
|
local fuelSlot=inv:get_stack("src",1)
|
||||||
@ -136,7 +142,7 @@ function industrialtest.CanningMachine.allowMetadataInventoryTake(self,pos,listn
|
|||||||
meta:set_float("srcTime",0)
|
meta:set_float("srcTime",0)
|
||||||
minetest.get_node_timer(pos):start(industrialtest.updateDelay)
|
minetest.get_node_timer(pos):start(industrialtest.updateDelay)
|
||||||
end
|
end
|
||||||
return industrialtest.ActivatedElectricMachine.allowMetadataInventoryTake(self,pos,listname,index,stack)
|
return industrialtest.ActivatedElectricMachine.allowMetadataInventoryTake(self,pos,listname,index,stack,player)
|
||||||
end
|
end
|
||||||
|
|
||||||
function industrialtest.CanningMachine.onMetadataInventoryMove(self,pos,fromList,fromIndex,toList,toIndex,count)
|
function industrialtest.CanningMachine.onMetadataInventoryMove(self,pos,fromList,fromIndex,toList,toIndex,count)
|
||||||
@ -151,7 +157,7 @@ function industrialtest.CanningMachine.onMetadataInventoryMove(self,pos,fromList
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function industrialtest.CanningMachine.onMetadataInventoryPut(self,pos)
|
function industrialtest.CanningMachine.onMetadataInventoryPut(self,pos,listname,index,stack)
|
||||||
minetest.get_node_timer(pos):start(industrialtest.updateDelay)
|
minetest.get_node_timer(pos):start(industrialtest.updateDelay)
|
||||||
industrialtest.ActivatedElectricMachine.onMetadataInventoryPut(self,pos,listname,index,stack)
|
industrialtest.ActivatedElectricMachine.onMetadataInventoryPut(self,pos,listname,index,stack)
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user