forked from mrkubax10/industrialtest
Register Compressor and Miner as machines which can interact with Pump
This commit is contained in:
@@ -166,6 +166,8 @@ function industrialtest.Miner.onConstruct(self,pos)
|
||||
inv:set_size("powerStorage",1)
|
||||
inv:set_size("upgrades",1)
|
||||
meta:set_int("level",pos.y-1)
|
||||
-- Keep last fluid node here so pump has more time to access it
|
||||
meta:set_string("lastFluidNode","")
|
||||
industrialtest.ElectricMachine.onConstruct(self,pos)
|
||||
end
|
||||
|
||||
@@ -283,6 +285,14 @@ function industrialtest.Miner.update(self,pos,elapsed,meta,inv)
|
||||
srcSlot:take_item(1)
|
||||
inv:set_stack("src",1,srcSlot)
|
||||
local targetPos=vector.new(pos.x,level,pos.z)
|
||||
|
||||
-- Check if target node is fluid so pump, if attached, can get it
|
||||
local targetNode=minetest.get_node(targetPos)
|
||||
local targetFluid=industrialtest.api.getPumpFluid(targetNode.name)
|
||||
if targetFluid then
|
||||
meta:set_string("lastFluidNode",targetNode.name)
|
||||
end
|
||||
|
||||
local drop=self.getNodeDrop(targetPos)
|
||||
self.placeMiningPipe(pos,targetPos)
|
||||
inv:add_item("dst",drop)
|
||||
@@ -375,8 +385,27 @@ function industrialtest.Miner.placeMiningPipe(minerPos,pos)
|
||||
meta:set_string("miner",minetest.serialize(minerPos))
|
||||
end
|
||||
|
||||
function industrialtest.Miner.pullFluid(self,pos,amount)
|
||||
local meta=minetest.get_meta(pos)
|
||||
local lastFluidNode=meta:get_string("lastFluidNode")
|
||||
if lastFluidNode~="" then
|
||||
local result={
|
||||
fluidType=lastFluidNode
|
||||
}
|
||||
result.remaining=industrialtest.api.nodeFluidCapacity
|
||||
-- If everything was pulled then change to empty
|
||||
if amount>=industrialtest.api.nodeFluidCapacity then
|
||||
meta:set_string("lastFluidNode","")
|
||||
end
|
||||
return result
|
||||
end
|
||||
return nil
|
||||
end
|
||||
|
||||
industrialtest.Miner:register()
|
||||
|
||||
industrialtest.api.registerPumpTarget("industrialtest:miner","i")
|
||||
|
||||
minetest.register_craft({
|
||||
type="shaped",
|
||||
output="industrialtest:miner",
|
||||
|
||||
Reference in New Issue
Block a user