But turrets still fire without electricity.
Can anyone tell me what to do for this?
Here is the code from data-fixed.lua:
Code: Select all
for _, v in pairs(data.raw["ammo-turret"]) do
    if not string.match(v.name, "unpowered-")  then
        -- local e = 160*v.speed*um*10
        local x = table.deepcopy(v)
        x.name = "unpowered-"..x.name
        x.speed = 1e-308
        x.localised_name = {"entity-name." .. v.name}
        x.localised_description = {"entity-description." .. v.name}
        data:extend({x,
            {
                type = "electric-energy-interface",
                name = v.name.."-power",
                icon = v.icon,
                icon_size = v.icon_size, icon_mipmaps = v.icon_mipmaps,
                flags = {"player-creation", "not-deconstructable","not-blueprintable"},
                max_health = 1,
                resistances = resistances_immune,
                collision_box = v.collision_box,
                selection_box = v.selection_box,
                drawing_box = v.drawing_box,
                selectable_in_game = false,
                energy_source =
                {
                    type = "electric",
		    buffer_capacity = "800kJ", 
		    input_flow_limit = "100kW",  
		    usage_priority = "primary-input",
		    drain = "10kW",  
		    energy_per_shot = "8kJ"
                },
                energy_production = "0W",
                energy_usage = "60kW",
            }
        })
    end
endCode: Select all
---- INIT ----
script.on_init(function()
	storage.entities = {}
	storage.power_entities = {}
end)
---- ON EVENT ----
script.on_event({defines.events.on_robot_built_entity, defines.events.on_built_entity}, function(event)
	if event.entity.type == "transport-belt" or event.entity.type == "underground-belt" or event.entity.type == "splitter" or event.entity.type == "loader-1x1" or event.entity.type == "loader" or event.entity.type == "ammo-turret" or event.entity.type == "fluid-turret" or event.entity.type == "artillery-turret" then
		local pos = event.entity.position.x .. " " .. event.entity.position.y
		--game.print(event.entity.name)
		--game.print(string.gsub(event.entity.name, "unpowered-", ""))
		storage.power_entities[pos] = event.entity.surface.create_entity{
			name = event.entity.name.."-power",
			position = event.entity.position,
			force = event.entity.force,
			direction = event.entity.direction,
			destructible = false
		}
		storage.entities[pos] = event.entity
	end
end)
script.on_event({defines.events.on_entity_died, defines.events.on_robot_pre_mined, defines.events.on_pre_player_mined_item}, function(event)
	local pos = event.entity.position.x .. " " .. event.entity.position.y
    if storage.entities[pos] ~= nil then
		storage.power_entities[pos].destroy()
		storage.entities[pos] = nil
		storage.power_entities[pos] = nil
    end
end)

