require "defines" require "util" game.on_event(defines.events.on_tick, function(event) if (game.tick % 5) == 0 then check_generators() end end) game.on_event(defines.events.on_built_entity, function(event) if event.created_entity.name == "burner-generator" then local burner_generator = event.created_entity if global.burner_generator == nil then global.burner_generator = {} end table.insert(global.burner_generator, burner_generator) --burner_generator.insert{name="coal", count=1} burner_generator.fluidbox[1] = {type="water", amount=10, temperature = 98} game.players[1].surface.create_entity{name = "burner-generator-power", position = {burner_generator.position.x , burner_generator.position.y -1 }, force=game.forces.neutral} if global.remote_called == nil then autofill_call() global.remote_called = 0 end end end) game.on_event(defines.events.on_robot_built_entity, function(event) if event.created_entity.name == "burner-generator" then local burner_generator = event.created_entity if global.burner_generator == nil then global.burner_generator = {} end table.insert(global.burner_generator, burner_generator) --burner_generator.insert{name="coal", count=1} burner_generator.fluidbox[1] = {type="water", amount=10, temperature = 98} game.players[1].surface.create_entity{name = "burner-generator-power", position = {burner_generator.position.x , burner_generator.position.y - 1 }, force=game.forces.neutral} if global.remote_called == nil then autofill_call() global.remote_called = 0 end end end) function autofill_call() remote.call("af", "insertset", "", "burner-generator", {priority=1, {"coal","raw-wood","solid-fuel"}}) end function check_generators() if global.burner_generator ~= nil then for k,burner_generator in pairs(global.burner_generator) do if burner_generator.valid then if burner_generator.fluidbox[1] ~= nil then local pot = burner_generator.fluidbox[1] if burner_generator.energy > 0 then if pot["amount"] < 0.1 then pot["amount"] = 10 pot["temperature"] = 98 burner_generator.fluidbox[1] = pot end end if pot["temperature"] == 100 then if pot["amount"] < 9.9 then pot["amount"] = 10 potheat = 98 pot["temperature"] = potheat burner_generator.fluidbox[1] = pot end end if burner_generator.energy == 0 then pot["amount"] = 0.1 pot["temperature"] = 1 burner_generator.fluidbox[1] = pot end end end end end end game.on_event(defines.events.on_preplayer_mined_item , function(event) if event.entity.name == "burner-generator" then local X = event.entity.position.x local Y = event.entity.position.y - 1 local power = {} panels = game.players[1].surface.find_entities_filtered{area = {{X -0.2, Y - 0.2 }, {X + 0.2 , Y +0.2 }}, name= "burner-generator-power"} if panels[1] ~= nil then panels[1].destroy() end end end) game.on_event(defines.events.on_entity_died , function(event) if event.entity.name == "burner-generator" then local X = event.entity.position.x local Y = event.entity.position.y - 1 local power = {} panels = game.players[1].surface.find_entities_filtered{area = {{X -0.2, Y - 0.2 }, {X + 0.2 , Y +0.2 }}, name= "burner-generator-power"} if panels[1] ~= nil then panels[1].destroy() end end end) game.on_event(defines.events.on_robot_pre_mined , function(event) if event.entity.name == "burner-generator" then local X = event.entity.position.x local Y = event.entity.position.y - 1 local power = {} panels = game.players[1].surface.find_entities_filtered{area = {{X -0.2, Y - 0.2 }, {X + 0.2 , Y +0.2 }}, name= "burner-generator-power"} if panels[1] ~= nil then panels[1].destroy() end end end)