diff --git a/README.md b/README.md index aac4346..a3996c5 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,10 @@ # Gun_Turret_Alerts - +![mod thumbnail](https://raw.githubusercontent.com/Wyrrrd/Gun_Turret_Alerts/master/thumbnail.png) + +(Please note: This is a quick and dirty port to 0.18. As soon as the original is ported to 0.18, this will be removed.) + +Description +- Adds alerts when a gun turret is out of ammo or has low ammo. + +Credit: +- Thanks to [unhott](https://mods.factorio.com/user/unhott) for the [original mod](https://mods.factorio.com/mod/GunTurretAlerts). \ No newline at end of file diff --git a/control.lua b/control.lua new file mode 100644 index 0000000..99f7780 --- /dev/null +++ b/control.lua @@ -0,0 +1,44 @@ +--control.lua +--This mod scans the map for gun-turrets and places alerts when turrets are low. + + +script.on_event({defines.events.on_tick}, function (event) + --Every minute the surface is rescanned for ammo-turret type entities. This is stored in the global table. + if event.tick%3600 == 0 or global.turret_entities == nil then + local planet = game.surfaces + for index,value in pairs(planet) do + global.turret_entities = planet[index].find_entities_filtered{type = "ammo-turret"} + end + end + + if event.tick%600 == 0 then + --Every 10 seconds recheck and give alerts to players for ammo-turret entities on the same force as them. + for index,player in pairs(game.connected_players) do + + GTA_enabled = player.mod_settings["gun-turret-alerts-enabled"].value + player_threshold = player.mod_settings["gun-turret-alerts-threshold"].value + if GTA_enabled then + for index2, turret_entity in pairs(global.turret_entities) do + if turret_entity.valid then + inv_var = turret_entity.get_inventory(defines.inventory.turret_ammo) + if inv_var.is_empty() then + ammo_left = 0 + else + ammo_left = inv_var[1].count + end + if turret_entity.force == player.force then + if ammo_left == 0 then + player.add_custom_alert(turret_entity, {type = "item", name = "piercing-rounds-magazine"}, "Out of ammo", true) + elseif ammo_left < player_threshold then + player.add_custom_alert(turret_entity, {type = "item", name = "firearm-magazine"}, "Ammo low", true) + end + end + end + end + end + end + end +end) + + + diff --git a/data.lua b/data.lua new file mode 100644 index 0000000..bcc4f19 --- /dev/null +++ b/data.lua @@ -0,0 +1 @@ +--data.lua diff --git a/info.json b/info.json new file mode 100644 index 0000000..8fe6f43 --- /dev/null +++ b/info.json @@ -0,0 +1,10 @@ +{ + "name": "Gun_Turret_Alerts", + "version": "0.18.0", + "title": "Gun_Turret_Alerts", + "author": "Wyrrrd", + "homepage": "", + "factorio_version": "0.18", + "dependencies": ["base >= 0.16"], + "description": "Adds map alerts for players when a turret is either out of ammo or has low ammo" +} \ No newline at end of file diff --git a/locale/en/config.cfg b/locale/en/config.cfg new file mode 100644 index 0000000..89d3274 --- /dev/null +++ b/locale/en/config.cfg @@ -0,0 +1,7 @@ +[mod-setting-name] +gun-turret-alerts-enabled=Gun turret alerts enabled +gun-turret-alerts-threshold=Low ammo threshold + +[mod-setting-description] +gun-turret-alerts-enabled=Enables alerts to be added to your player +gun-turret-alerts-threshold=If a turret has less than this much ammo an alert will be added to your player \ No newline at end of file diff --git a/settings.lua b/settings.lua new file mode 100644 index 0000000..1c40d18 --- /dev/null +++ b/settings.lua @@ -0,0 +1,20 @@ +--settings.lua + + +data:extend({ + { + type = "bool-setting", + name = "gun-turret-alerts-enabled", + setting_type = "runtime-per-user", + default_value = true + }, + { + type = "int-setting", + name = "gun-turret-alerts-threshold", + setting_type = "runtime-per-user", + default_value = 8, + minimum_value = 0 + + } + +}) \ No newline at end of file diff --git a/thumbnail.png b/thumbnail.png new file mode 100644 index 0000000..9061d76 Binary files /dev/null and b/thumbnail.png differ