From f42afe756a9c2d13b0b805630ff163f84d81c791 Mon Sep 17 00:00:00 2001 From: Wyrrrd Date: Sun, 28 Mar 2021 15:36:13 +0200 Subject: [PATCH] Added car ammo alerts --- changelog.txt | 8 ++++++++ control.lua | 31 ++++++++++++++++++++++++++----- info.json | 6 +++--- locale/de/config.cfg | 9 +++++++++ locale/en/config.cfg | 8 +++++--- settings.lua | 6 ++++++ 6 files changed, 57 insertions(+), 11 deletions(-) create mode 100644 locale/de/config.cfg diff --git a/changelog.txt b/changelog.txt index 2dff917..cdf48e5 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,12 @@ --------------------------------------------------------------------------------------------------- +Version: 1.1.1 +Date: 2021-03-28 + Changes: + - Added car ammo alerts, if car has guns (this should apply to modded cars and tanks) + - Added config options to display/hide car and/or turret ammo alerts + - Added german locale + - Mod display name is now less focused on turrets +--------------------------------------------------------------------------------------------------- Version: 1.1.0 Date: 2020-12-02 Changes: diff --git a/control.lua b/control.lua index d8c2a32..2e043d8 100644 --- a/control.lua +++ b/control.lua @@ -1,27 +1,31 @@ --control.lua ---This mod scans the map for gun-turrets and places alerts when turrets are low. +--This mod scans the map for cars and gun-turrets and places alerts when they are low. script.on_init(function (event) -- turret index init global.turret_entities = {} + global.car_entities = {} end) script.on_nth_tick(3600, function (event) - --Every minute the surface is rescanned for ammo-turret type entities. This is stored in the global table. + --Every minute the surface is rescanned for car and ammo-turret type entities. This is stored in two global tables. for index,surface in pairs(game.surfaces) do global.turret_entities[index] = surface.find_entities_filtered{type = "ammo-turret"} + global.car_entities[index] = surface.find_entities_filtered{type = "car"} end end) script.on_nth_tick(600, function (event) - --Every 10 seconds recheck and give alerts to players for ammo-turret entities on the same force as them. + --Every 10 seconds recheck and give alerts to players for car and ammo-turret entities on the same force as them. for _,player in pairs(game.connected_players) do - GTA_enabled = player.mod_settings["gun-turret-alerts-enabled"].value + GTA_turret_enabled = player.mod_settings["gun-turret-alerts-enabled"].value + GTA_car_enabled = player.mod_settings["gun-turret-alerts-car-enabled"].value player_threshold = player.mod_settings["gun-turret-alerts-threshold"].value turret_entities = global.turret_entities[player.surface.name] + car_entities = global.car_entities[player.surface.name] - if GTA_enabled and turret_entities then + if GTA_turret_enabled and turret_entities then for _,turret_entity in pairs(turret_entities) do if turret_entity.valid and turret_entity.force == player.force then inv_var = turret_entity.get_inventory(defines.inventory.turret_ammo) @@ -35,5 +39,22 @@ script.on_nth_tick(600, function (event) end end end + + + if GTA_car_enabled and car_entities then + for _,car_entity in pairs(car_entities) do + -- extra check if car has gun + if car_entity.valid and car_entity.force == player.force and car_entity.selected_gun_index then + inv_var = car_entity.get_inventory(defines.inventory.car_ammo) + if inv_var.is_empty() then + -- no ammo alert + player.add_custom_alert(car_entity, {type = "item", name = "piercing-rounds-magazine"}, "Out of ammo", true) + elseif inv_var[1].count < player_threshold then + -- low ammo alert + player.add_custom_alert(car_entity, {type = "item", name = "firearm-magazine"}, "Ammo low", true) + end + end + end + end end end) \ No newline at end of file diff --git a/info.json b/info.json index 3062578..e8c1ae6 100644 --- a/info.json +++ b/info.json @@ -1,9 +1,9 @@ { "name": "Gun_Turret_Alerts", - "version": "1.1.0", - "title": "Gun_Turret_Alerts", + "version": "1.1.1", + "title": "Ammo Alerts", "author": "Wyrrrd", "factorio_version": "1.1", "dependencies": ["base >= 1.1.0"], - "description": "Adds map alerts for players when a turret is either out of ammo or has low ammo" + "description": "Adds map alerts for players when a turret or car is either out of ammo or has low ammo" } \ No newline at end of file diff --git a/locale/de/config.cfg b/locale/de/config.cfg new file mode 100644 index 0000000..19ebd24 --- /dev/null +++ b/locale/de/config.cfg @@ -0,0 +1,9 @@ +[mod-setting-name] +gun-turret-alerts-enabled=Alarme für Geschützturmmunition aktiviert +gun-turret-alerts-car-enabled=Alarme für Fahrzeugmunition aktiviert +gun-turret-alerts-threshold=Grenze für wenig Munition + +[mod-setting-description] +gun-turret-alerts-enabled=Aktiviert Alarme für Geschützturmmunition für deinen Spieler +gun-turret-alerts-car-enabled=Aktiviert Alarme für Fahrzeugmunition für deinen Spieler +gun-turret-alerts-threshold=Wenn ein Fahrzeug oder Geschützturm weniger als diese Anzahl Munition hat, wird ein Alarm zu deinem Spieler hinzugefügt \ No newline at end of file diff --git a/locale/en/config.cfg b/locale/en/config.cfg index 89d3274..4ecfe48 100644 --- a/locale/en/config.cfg +++ b/locale/en/config.cfg @@ -1,7 +1,9 @@ [mod-setting-name] -gun-turret-alerts-enabled=Gun turret alerts enabled +gun-turret-alerts-enabled=Turret ammo alerts enabled +gun-turret-alerts-car-enabled=Car ammo 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 +gun-turret-alerts-enabled=Enables turret ammo alerts to be added to your player +gun-turret-alerts-car-enabled=Enables car ammo alerts to be added to your player +gun-turret-alerts-threshold=If a car or 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 index 1c40d18..9e7fcb8 100644 --- a/settings.lua +++ b/settings.lua @@ -7,6 +7,12 @@ data:extend({ name = "gun-turret-alerts-enabled", setting_type = "runtime-per-user", default_value = true + }, + { + type = "bool-setting", + name = "gun-turret-alerts-car-enabled", + setting_type = "runtime-per-user", + default_value = true }, { type = "int-setting",