From 95ba24d2f99de2bf63dcd91cd96d9c7cc70a6e53 Mon Sep 17 00:00:00 2001 From: Wyrrrd Date: Sun, 27 Oct 2024 22:24:16 +0100 Subject: [PATCH] Migration to 2.0 - Renamed car group to vehicle group in all languages - Added spidertrons to vehicle group --- changelog.txt | 13 +++++++++++++ control.lua | 44 +++++++++++++++++++++--------------------- data.lua | 18 +++++++++++++++-- info.json | 6 +++--- locale/de/config.cfg | 8 ++++---- locale/en/config.cfg | 6 +++--- migrations/1.1.5.lua | 2 -- prototypes/signals.lua | 14 -------------- 8 files changed, 61 insertions(+), 50 deletions(-) delete mode 100644 migrations/1.1.5.lua delete mode 100644 prototypes/signals.lua diff --git a/changelog.txt b/changelog.txt index 8a6d4cb..27f1bee 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,17 @@ --------------------------------------------------------------------------------------------------- +Version: 2.0.0 +Date: 2024-10-27 + Changes: + - Migration to base game 2.0 + Locale: + - Renamed car group to vehicle group in all languages + Features: + - Added spidertrons to vehicle group + Info: + - Planned: Switch from surface names to surface indexes (as names can change) + - Planned: Cleanup tracking table on surface deletion (may happen with space platforms) + - Planned: Add settings to allow players to view alerts for current or multiple/all surfaces +--------------------------------------------------------------------------------------------------- Version: 1.1.11 Date: 2023-03-12 Bugfixes: diff --git a/control.lua b/control.lua index 04d1e2f..dd3e345 100644 --- a/control.lua +++ b/control.lua @@ -1,5 +1,5 @@ --control.lua ---This mod scans the map for cars and gun-turrets and places alerts when they are low on ammo. +--This mod scans the map for gun-turrets, vehicles and artillery and places alerts when they are low on ammo. --util functions @@ -67,18 +67,18 @@ local function add_entity_to_list(event) --Whenever an ammo-turret, car or artillery type entity is built, add it to the global table. local entity = event.created_entity or event.entity local index = entity.surface.name.."_"..entity.force.name - if global.ammo_entities[index] then - table.insert(global.ammo_entities[index], entity) + if storage.ammo_entities[index] then + table.insert(storage.ammo_entities[index], entity) end end local function remove_entity_from_list(event) --Whenever an ammo-turret, car or artillery type entity dies / is mined, remove it from the global table. local index = event.entity.surface.name.."_"..event.entity.force.name - if global.ammo_entities[index] then - for i,entity in pairs(global.ammo_entities[index]) do + if storage.ammo_entities[index] then + for i,entity in pairs(storage.ammo_entities[index]) do if (entity == event.entity) then - table.remove(global.ammo_entities[index], i) + table.remove(storage.ammo_entities[index], i) break end end @@ -98,9 +98,9 @@ local function add_force_to_list(event) end end - if player and force and not global.ammo_entities[player.surface.name.."_"..force.name] then + if player and force and not storage.ammo_entities[player.surface.name.."_"..force.name] then for _,surface in pairs(game.surfaces) do - global.ammo_entities[surface.name.."_"..force.name] = surface.find_entities_filtered{type = {"ammo-turret","car","artillery-turret","artillery-wagon"}, force = force, to_be_deconstructed = false} + storage.ammo_entities[surface.name.."_"..force.name] = surface.find_entities_filtered{type = {"ammo-turret","car","artillery-turret","artillery-wagon","spider-vehicle"}, force = force, to_be_deconstructed = false} end end end @@ -125,14 +125,14 @@ local function remove_force_from_list(event) if force and not force.connected_players then for surface_name,_ in pairs(game.surfaces) do - global.ammo_entities[surface_name.."_"..force.name] = nil + storage.ammo_entities[surface_name.."_"..force.name] = nil end end end local function init_list() -- index init - global.ammo_entities = {} + storage.ammo_entities = {} local param = {} for _,force in pairs(game.forces) do param.force = force @@ -141,7 +141,7 @@ local function init_list() end local function generate_alerts() - --Every 10 seconds recheck and give alerts to players for ammo-turret, car or artillery type entities on the same force as them. + --Every 10 seconds recheck and give alerts to players for ammo-turret, car, spidertron or artillery type entities on the same force as them. for _,player in pairs(game.connected_players) do local turret_enabled = player.mod_settings["gun-turret-alerts-enabled"].value @@ -149,7 +149,7 @@ local function generate_alerts() local artillery_enabled = player.mod_settings["gun-turret-alerts-artillery-enabled"].value local mode = player.mod_settings["gun-turret-alerts-mode"].value local player_threshold = player.mod_settings["gun-turret-alerts-threshold"].value - local ammo_entities = global.ammo_entities[player.surface.name.."_"..player.force.name] + local ammo_entities = storage.ammo_entities[player.surface.name.."_"..player.force.name] if ammo_entities then for _,entity in pairs(ammo_entities) do @@ -159,7 +159,7 @@ local function generate_alerts() local inventory if turret_enabled and entity.type == "ammo-turret" then inventory = entity.get_inventory(defines.inventory.turret_ammo) - elseif car_enabled and entity.type == "car" and not table_is_empty(entity.prototype.guns) then + elseif car_enabled and (entity.type == "car" or entity.type == "spider-vehicle") and not table_is_empty(entity.prototype.guns) then inventory = entity.get_inventory(defines.inventory.car_ammo) elseif artillery_enabled then if entity.type == "artillery-turret" then @@ -179,7 +179,7 @@ local function generate_alerts() ammo_flag = get_ammo_flag[mode](inventory, entity.prototype.automated_ammo_count) end end - elseif entity.type == "car" then + elseif entity.type == "car" or entity.type == "spider-vehicle" then ammo_flag = get_ammo_flag[mode](inventory, player_threshold, entity.selected_gun_index) end end @@ -211,14 +211,14 @@ script.on_event(defines.events.on_player_changed_force, remove_force_from_list) script.on_event(defines.events.on_force_created, add_force_to_list) script.on_event(defines.events.on_forces_merged, remove_force_from_list) -script.on_event(defines.events.on_built_entity, add_entity_to_list, {{filter="type", type = "ammo-turret"},{filter="type", type = "car"},{filter="type", type = "artillery-turret"},{filter="type", type = "artillery-wagon"}}) -script.on_event(defines.events.on_robot_built_entity, add_entity_to_list, {{filter="type", type = "ammo-turret"},{filter="type", type = "car"},{filter="type", type = "artillery-turret"},{filter="type", type = "artillery-wagon"}}) -script.on_event(defines.events.script_raised_built, add_entity_to_list, {{filter="type", type = "ammo-turret"},{filter="type", type = "car"},{filter="type", type = "artillery-turret"},{filter="type", type = "artillery-wagon"}}) -script.on_event(defines.events.script_raised_revive, add_entity_to_list, {{filter="type", type = "ammo-turret"},{filter="type", type = "car"},{filter="type", type = "artillery-turret"},{filter="type", type = "artillery-wagon"}}) +script.on_event(defines.events.on_built_entity, add_entity_to_list, {{filter="type", type = "ammo-turret"},{filter="type", type = "car"},{filter="type", type = "spider-vehicle"},{filter="type", type = "artillery-turret"},{filter="type", type = "artillery-wagon"}}) +script.on_event(defines.events.on_robot_built_entity, add_entity_to_list, {{filter="type", type = "ammo-turret"},{filter="type", type = "car"},{filter="type", type = "spider-vehicle"},{filter="type", type = "artillery-turret"},{filter="type", type = "artillery-wagon"}}) +script.on_event(defines.events.script_raised_built, add_entity_to_list, {{filter="type", type = "ammo-turret"},{filter="type", type = "car"},{filter="type", type = "spider-vehicle"},{filter="type", type = "artillery-turret"},{filter="type", type = "artillery-wagon"}}) +script.on_event(defines.events.script_raised_revive, add_entity_to_list, {{filter="type", type = "ammo-turret"},{filter="type", type = "car"},{filter="type", type = "spider-vehicle"},{filter="type", type = "artillery-turret"},{filter="type", type = "artillery-wagon"}}) -script.on_event(defines.events.on_player_mined_entity, remove_entity_from_list, {{filter="type", type = "ammo-turret"},{filter="type", type = "car"},{filter="type", type = "artillery-turret"},{filter="type", type = "artillery-wagon"}}) -script.on_event(defines.events.on_robot_mined_entity, remove_entity_from_list, {{filter="type", type = "ammo-turret"},{filter="type", type = "car"},{filter="type", type = "artillery-turret"},{filter="type", type = "artillery-wagon"}}) -script.on_event(defines.events.on_entity_died, remove_entity_from_list, {{filter="type", type = "ammo-turret"},{filter="type", type = "car"},{filter="type", type = "artillery-turret"},{filter="type", type = "artillery-wagon"}}) -script.on_event(defines.events.script_raised_destroy, remove_entity_from_list, {{filter="type", type = "ammo-turret"},{filter="type", type = "car"},{filter="type", type = "artillery-turret"},{filter="type", type = "artillery-wagon"}}) +script.on_event(defines.events.on_player_mined_entity, remove_entity_from_list, {{filter="type", type = "ammo-turret"},{filter="type", type = "car"},{filter="type", type = "spider-vehicle"},{filter="type", type = "artillery-turret"},{filter="type", type = "artillery-wagon"}}) +script.on_event(defines.events.on_robot_mined_entity, remove_entity_from_list, {{filter="type", type = "ammo-turret"},{filter="type", type = "car"},{filter="type", type = "spider-vehicle"},{filter="type", type = "artillery-turret"},{filter="type", type = "artillery-wagon"}}) +script.on_event(defines.events.on_entity_died, remove_entity_from_list, {{filter="type", type = "ammo-turret"},{filter="type", type = "car"},{filter="type", type = "spider-vehicle"},{filter="type", type = "artillery-turret"},{filter="type", type = "artillery-wagon"}}) +script.on_event(defines.events.script_raised_destroy, remove_entity_from_list, {{filter="type", type = "ammo-turret"},{filter="type", type = "car"},{filter="type", type = "spider-vehicle"},{filter="type", type = "artillery-turret"},{filter="type", type = "artillery-wagon"}}) script.on_nth_tick(600, generate_alerts) \ No newline at end of file diff --git a/data.lua b/data.lua index 0487fae..375c741 100644 --- a/data.lua +++ b/data.lua @@ -1,2 +1,16 @@ ---data.lua -require("prototypes.signals") \ No newline at end of file +-- data.lua + +data:extend({ + { + type = "virtual-signal", + name = "ammo-icon-red", + icon = "__Gun_Turret_Alerts__/graphics/ammo-icon-red.png", + icon_size = 64, + }, + { + type = "virtual-signal", + name = "ammo-icon-yellow", + icon = "__Gun_Turret_Alerts__/graphics/ammo-icon-yellow.png", + icon_size = 64, + } +}) \ No newline at end of file diff --git a/info.json b/info.json index 37471f3..f7bd5b1 100644 --- a/info.json +++ b/info.json @@ -1,9 +1,9 @@ { "name": "Gun_Turret_Alerts", - "version": "1.1.11", + "version": "2.0.0", "title": "Ammo Alerts", "author": "Wyrrrd", - "factorio_version": "1.1", - "dependencies": ["base >= 1.1.0"], + "factorio_version": "2.0", + "dependencies": ["base >= 2.0.0"], "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 index ee605d6..e63ef95 100644 --- a/locale/de/config.cfg +++ b/locale/de/config.cfg @@ -1,16 +1,16 @@ [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-car-enabled=Alarme für Vehikelmunition aktiviert gun-turret-alerts-artillery-enabled=Alarme für Artillerie aktiviert gun-turret-alerts-mode=Mehrplatz-Modus 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-car-enabled=Aktiviert Alarme für Vehikelmunition für deinen Spieler gun-turret-alerts-artillery-enabled=Aktiviert Alarme für Artillerie für deinen Spieler -gun-turret-alerts-mode=Bestimmt, ob die Munitionsplätze aufaddiert, jeder Platz einzeln oder nur der ausgewählte Platz gezählt wird.\n(Greift nur bei mehr als einem Munitionsplatz, zum Beispiel in Fahrzeugen.) -gun-turret-alerts-threshold=Wenn ein Fahrzeug oder Geschützturm weniger als diese Anzahl Munition hat, wird ein Alarm zu deinem Spieler hinzugefügt +gun-turret-alerts-mode=Bestimmt, ob die Munitionsplätze aufaddiert, jeder Platz einzeln oder nur der ausgewählte Platz gezählt wird.\n(Greift nur bei mehr als einem Munitionsplatz, zum Beispiel in Vehikeln.) +gun-turret-alerts-threshold=Wenn ein Vehikel oder Geschützturm weniger als diese Anzahl Munition hat, wird ein Alarm zu deinem Spieler hinzugefügt [string-mod-setting] gun-turret-alerts-mode-added=Aufaddiert diff --git a/locale/en/config.cfg b/locale/en/config.cfg index 97eb9e1..e445874 100644 --- a/locale/en/config.cfg +++ b/locale/en/config.cfg @@ -1,16 +1,16 @@ [mod-setting-name] gun-turret-alerts-enabled=Turret ammo alerts enabled -gun-turret-alerts-car-enabled=Car ammo alerts enabled +gun-turret-alerts-car-enabled=Vehicle ammo alerts enabled gun-turret-alerts-artillery-enabled=Artillery ammo alerts enabled gun-turret-alerts-mode=Multi slot mode gun-turret-alerts-threshold=Low ammo threshold [mod-setting-description] 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-car-enabled=Enables vehicle ammo alerts to be added to your player. gun-turret-alerts-artillery-enabled=Enables artillery ammo alerts to be added to your player. gun-turret-alerts-mode=Controls, if the ammo slots are added up, every slot is counted individually, or just the selected slot is counted.\n(Only applies for more than one ammo slot, for example in vehicles.) -gun-turret-alerts-threshold=If a car or turret has less than this much ammo an alert will be added to your player. +gun-turret-alerts-threshold=If a vehicle or turret has less than this much ammo an alert will be added to your player. [string-mod-setting] gun-turret-alerts-mode-added=Added up diff --git a/migrations/1.1.5.lua b/migrations/1.1.5.lua deleted file mode 100644 index d3fc286..0000000 --- a/migrations/1.1.5.lua +++ /dev/null @@ -1,2 +0,0 @@ -global.turret_entities = nil -global.car_entities = nil \ No newline at end of file diff --git a/prototypes/signals.lua b/prototypes/signals.lua deleted file mode 100644 index cd6cc01..0000000 --- a/prototypes/signals.lua +++ /dev/null @@ -1,14 +0,0 @@ -data:extend({ - { - type = "virtual-signal", - name = "ammo-icon-red", - icon = "__Gun_Turret_Alerts__/graphics/ammo-icon-red.png", - icon_size = 64, - }, - { - type = "virtual-signal", - name = "ammo-icon-yellow", - icon = "__Gun_Turret_Alerts__/graphics/ammo-icon-yellow.png", - icon_size = 64, - } -})