mirror of
https://github.com/Wyrrrd/Gun_Turret_Alerts.git
synced 2026-06-30 12:05:44 +02:00
Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| be1e708c1a | |||
| 61d1e04a45 | |||
| af74836ea4 | |||
| c3d6f5e9b1 | |||
| c08b964a8d | |||
| 771c0f2950 | |||
| 2515aafd7b | |||
| 4ebeb9c664 | |||
| 86820c48c3 | |||
| 037d321604 | |||
| c837b99a01 | |||
| 4c8b05b930 | |||
| d6d426ddc7 |
@@ -2,14 +2,11 @@
|
||||
<img src=https://raw.githubusercontent.com/Wyrrrd/Gun_Turret_Alerts/master/thumbnail.png width="128" height="128">
|
||||
|
||||
### Description
|
||||
Adds alerts when a gun turret, vehicle or artillery is out of ammo or has low ammo. The amount of ammo considered low can be configured. Alerts for turrets, vehicles and artillery can be disabled separately. Behaviour on vehicles with multiple ammo slots can be configured (for all vehicles at once).
|
||||
Adds alerts when a gun turret, vehicle or artillery is out of ammo or has low ammo. The amount of ammo considered low can be configured. Alerts for turrets, vehicles and artillery can be disabled separately. Behaviour on vehicles with multiple ammo slots can be configured (for all vehicles at once). Alerts on other planets or space platforms can be enabled.
|
||||
|
||||
### Locale
|
||||
If you want to contribute by translating this mod, you can view the existing translations on [Crowdin](https://crowdin.com/project/factorio-mods-localization). I'd be happy to add your language and credits to the next release.
|
||||
If you want to contribute by translating this mod, you can view the existing translations on [Crowdin](https://crowdin.com/project/factorio-mods-localization). I'd be happy to add your language to the next release.
|
||||
|
||||
### Credit
|
||||
Thanks to [unhott](https://mods.factorio.com/user/unhott) for the [original mod](https://mods.factorio.com/mod/GunTurretAlerts).
|
||||
Thanks to [snouz](https://mods.factorio.com/user/snouz) for the new icons and thumbnail.
|
||||
Thanks to [Friendch](https://mods.factorio.com/user/Friendch) for the french locale.
|
||||
Thanks to [eugenikus8](https://github.com/eugenikus8) for the russian locale.
|
||||
Thanks to [Met_en_Bouldry](https://crowdin.com/profile/Met_en_Bouldry) for the ukrainian locale.
|
||||
|
||||
+43
-6
@@ -1,4 +1,43 @@
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 2.0.11
|
||||
Date: 2025-11-09
|
||||
Locale:
|
||||
- Add catalan
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 2.0.10
|
||||
Date: 2025-09-02
|
||||
Bugfixes:
|
||||
- Typo, messed up syntax
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 2.0.9
|
||||
Date: 2025-09-02
|
||||
Bugfixes:
|
||||
- Fix missing requirements
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 2.0.8
|
||||
Date: 2024-12-19
|
||||
Locale:
|
||||
- Update locales from Crowdin
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 2.0.7
|
||||
Date: 2024-11-10
|
||||
Optimizations:
|
||||
- Add cleanup of empty global tables
|
||||
- Move global table creation from on_surface_created to on_built_entity to save on event
|
||||
listeners
|
||||
- Review force rename/removal handling
|
||||
- Code cleanup and comments
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 2.0.6
|
||||
Date: 2024-11-10
|
||||
Features:
|
||||
- Add support to enable alerts for other surfaces (before, alerts were only generated for the
|
||||
current surface)
|
||||
Bugfixes:
|
||||
- Fix additional surface handling (when a new surface was created, from then on entities were
|
||||
not added to the global list until all players of a force leave and join again, which is
|
||||
technically impossible in single player)
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 2.0.5
|
||||
Date: 2024-11-09
|
||||
Bugfixes:
|
||||
@@ -35,10 +74,6 @@ Date: 2024-10-27
|
||||
- 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
|
||||
@@ -63,12 +98,14 @@ Date: 2021-08-06
|
||||
Version: 1.1.7
|
||||
Date: 2021-06-21
|
||||
Compatibility:
|
||||
- Added compatibility to Space Exploration's Meteor defence and other mods (no longer displays alert when ammo is dynamically loaded) (by snouz)
|
||||
- Added compatibility to Space Exploration's Meteor defence and other mods (no longer displays
|
||||
alert when ammo is dynamically loaded) (by snouz)
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.1.6
|
||||
Date: 2021-04-22
|
||||
Bugfixes:
|
||||
- Defaulting multislot mode "selected" to first slot, if no slot selected. Defaulting to "added" mode caused a crash.
|
||||
- Defaulting multislot mode "selected" to first slot, if no slot selected. Defaulting to
|
||||
"added" mode caused a crash.
|
||||
Scripting:
|
||||
- Simplified some boolean logic misusing it as ternary
|
||||
---------------------------------------------------------------------------------------------------
|
||||
|
||||
+36
-5
@@ -1,6 +1,10 @@
|
||||
--control.lua
|
||||
--This mod scans the map for gun-turrets, vehicles and artillery and places alerts when they are low on ammo.
|
||||
|
||||
--requires
|
||||
|
||||
require "util"
|
||||
|
||||
--util functions
|
||||
|
||||
function table_is_empty(table)
|
||||
@@ -67,6 +71,13 @@ local function add_entity_to_list(event)
|
||||
--Whenever an ammo-turret, vehicle 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
|
||||
|
||||
-- Add table if it doesn't exist and a player of this force is connected
|
||||
if entity.force.connected_players[1] and not storage.ammo_entities[index] then
|
||||
storage.ammo_entities[index] = {}
|
||||
end
|
||||
|
||||
-- Add entity to table
|
||||
if storage.ammo_entities[index] then
|
||||
table.insert(storage.ammo_entities[index], entity)
|
||||
end
|
||||
@@ -125,12 +136,14 @@ local function remove_force_from_list(event)
|
||||
force = event.source
|
||||
end
|
||||
|
||||
if force and not force.connected_players then
|
||||
if force then
|
||||
if not force.valid or (force.valid and table_is_empty(force.connected_players)) then
|
||||
for surface_name,_ in pairs(game.surfaces) do
|
||||
storage.ammo_entities[surface_name.."_"..force.name] = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function remove_surface_from_list(event)
|
||||
--Whenever a surface is renamed or deleted, move/remove all entities in/from the global table.
|
||||
@@ -168,10 +181,19 @@ 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 autofull = player.mod_settings["gun-turret-alerts-z-automated-full"].value
|
||||
local ammo_entities = storage.ammo_entities[player.surface.name.."_"..player.force.name]
|
||||
local auto_full = player.mod_settings["gun-turret-alerts-z-automated-full"].value
|
||||
local show_planets = player.mod_settings["gun-turret-alerts-z-show-planets"].value
|
||||
local show_platforms = player.mod_settings["gun-turret-alerts-z-show-platforms"].value
|
||||
|
||||
for _,surface in pairs(game.surfaces) do
|
||||
local ammo_entities
|
||||
|
||||
if surface == player.surface or (show_platforms and surface.platform) or (show_planets and surface.planet) then
|
||||
ammo_entities = storage.ammo_entities[surface.name.."_"..player.force.name]
|
||||
end
|
||||
|
||||
if ammo_entities then
|
||||
if not table_is_empty(ammo_entities) then
|
||||
for index,entity in pairs(ammo_entities) do
|
||||
if entity.valid then
|
||||
if entity.force == player.force then
|
||||
@@ -195,7 +217,8 @@ local function generate_alerts()
|
||||
if inventory and get_ammo_flag[mode] then
|
||||
if entity.type == "ammo-turret" or entity.type == "artillery-turret" or entity.type == "artillery-wagon" then
|
||||
ammo_flag = get_ammo_flag[mode](inventory, player_threshold)
|
||||
if autofull and entity.prototype.automated_ammo_count then
|
||||
-- Automated amme count override (if activated)
|
||||
if auto_full and entity.prototype.automated_ammo_count then
|
||||
if entity.prototype.automated_ammo_count < player_threshold then
|
||||
ammo_flag = get_ammo_flag[mode](inventory, entity.prototype.automated_ammo_count)
|
||||
end
|
||||
@@ -215,7 +238,13 @@ local function generate_alerts()
|
||||
end
|
||||
end
|
||||
else
|
||||
ammo_entities[index] = nil
|
||||
-- Cleanup if entity is invalid
|
||||
table.remove(ammo_entities, index)
|
||||
end
|
||||
end
|
||||
else
|
||||
-- Cleanup if table is empty
|
||||
storage.ammo_entities[surface.name.."_"..player.force.name] = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -240,11 +269,13 @@ script.on_event(defines.events.on_pre_surface_deleted, remove_surface_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 = "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.on_space_platform_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 = "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_space_platform_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"}})
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Gun_Turret_Alerts",
|
||||
"version": "2.0.5",
|
||||
"version": "2.0.11",
|
||||
"title": "Ammo Alerts",
|
||||
"author": "Wyrrrd",
|
||||
"factorio_version": "2.0",
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
[mod-setting-name]
|
||||
gun-turret-alerts-enabled=Activa les alertes de munició de torretes
|
||||
gun-turret-alerts-car-enabled=Activa les alertes de munició de vehicles
|
||||
gun-turret-alerts-artillery-enabled=Activa les alertes de munició d'artilleria
|
||||
gun-turret-alerts-mode=Mode multi ranura
|
||||
gun-turret-alerts-threshold=Llindar de munició baixa
|
||||
gun-turret-alerts-z-automated-full=La quantitat automàtica és la plena
|
||||
gun-turret-alerts-z-show-planets=Mostra a tots els planetes
|
||||
gun-turret-alerts-z-show-platforms=Mostra a totes les plataformes espacials
|
||||
|
||||
[mod-setting-description]
|
||||
gun-turret-alerts-enabled=La manca de munició a una torreta enviarà una alerta al jugador.
|
||||
gun-turret-alerts-car-enabled=La manca de munició a un vehicle enviarà una alerta al jugador.
|
||||
gun-turret-alerts-artillery-enabled=La manca de munició a l'artilleria enviarà una alerta al jugador.
|
||||
gun-turret-alerts-mode=Estableix si la munició sumarà totes les ranures, les considerarà individualment, o només considerarà la ranura seleccionada.\n(Només s'aplica quan hi ha més d'una ranura, per exemple en vehicles)
|
||||
gun-turret-alerts-threshold=Si una torreta, vehicle o artilleria té menys munició que aquest nombre, s'enviarà una alerta al jugador.
|
||||
gun-turret-alerts-z-automated-full=No envia alerta si una torreta o artilleria té tanta o més munició que la inserida automàticament pels inseridors.
|
||||
gun-turret-alerts-z-show-planets=Mostra les alertes dels altres planetes, encara que no hi sigueu. (Per defecte només es mostra el planeta o plataforma actual)
|
||||
gun-turret-alerts-z-show-platforms=Mostra les alertes de les altres plataformes, encara que no hi sigueu. (Per defecte només es mostra el planeta o plataforma actual)
|
||||
|
||||
[string-mod-setting]
|
||||
gun-turret-alerts-mode-added=Sumades
|
||||
gun-turret-alerts-mode-individually=Individualment
|
||||
gun-turret-alerts-mode-selected=Seleccionada
|
||||
|
||||
[gun-turret-alerts]
|
||||
message-empty=__1__ no té munició
|
||||
message-low=__1__ té poca munició
|
||||
|
||||
[virtual-signal-name]
|
||||
ammo-icon-red=Senyal de manca de munició
|
||||
ammo-icon-yellow=Senyal de poca munició
|
||||
|
||||
[mod-name]
|
||||
Gun_Turret_Alerts=Alertes de munició
|
||||
|
||||
[mod-description]
|
||||
Gun_Turret_Alerts=Crea alertes al mapa per als jugadors quan una torreta, vehicle o artilleria té poca munició o gens.
|
||||
|
||||
@@ -4,6 +4,7 @@ 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
|
||||
gun-turret-alerts-z-show-planets=Auf allen Planeten anzeigen
|
||||
|
||||
[mod-setting-description]
|
||||
gun-turret-alerts-enabled=Aktiviert Alarme für Geschützturmmunition für deinen Spieler
|
||||
|
||||
@@ -5,6 +5,8 @@ gun-turret-alerts-artillery-enabled=Artillery ammo alerts enabled
|
||||
gun-turret-alerts-mode=Multi slot mode
|
||||
gun-turret-alerts-threshold=Low ammo threshold
|
||||
gun-turret-alerts-z-automated-full=Automated amount equals full
|
||||
gun-turret-alerts-z-show-planets=Show on all planets
|
||||
gun-turret-alerts-z-show-platforms=Show on all space platforms
|
||||
|
||||
[mod-setting-description]
|
||||
gun-turret-alerts-enabled=Enables turret ammo alerts to be added to your player.
|
||||
@@ -13,6 +15,8 @@ gun-turret-alerts-artillery-enabled=Enables artillery ammo alerts to be added to
|
||||
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 turret, vehicle or artillery has less than this much ammo, an alert will be added to your player.
|
||||
gun-turret-alerts-z-automated-full=Send no alerts when a turret or artillery has an amount of ammo equal or higher than what inserters would automatically insert into them.
|
||||
gun-turret-alerts-z-show-planets=Show alerts for other planets, even if you are not there. (Default is to only show current planet/space platform.)
|
||||
gun-turret-alerts-z-show-platforms=Show alerts for other space platforms, even if you are not there. (Default is to only show current planet/space platform.)
|
||||
|
||||
[string-mod-setting]
|
||||
gun-turret-alerts-mode-added=Added up
|
||||
@@ -20,8 +24,8 @@ gun-turret-alerts-mode-individually=Individually
|
||||
gun-turret-alerts-mode-selected=Selected
|
||||
|
||||
[gun-turret-alerts]
|
||||
message-empty=__1__ out of ammo
|
||||
message-low=__1__ low ammo
|
||||
message-empty=__1__ is out of ammo
|
||||
message-low=__1__ is low on ammo
|
||||
|
||||
[virtual-signal-name]
|
||||
ammo-icon-red=Out of ammo signal
|
||||
|
||||
+10
-2
@@ -4,6 +4,9 @@ gun-turret-alerts-car-enabled=Ввімкнено оповіщення про б
|
||||
gun-turret-alerts-artillery-enabled=Ввімкнено оповіщення про артилерійські боєприпаси
|
||||
gun-turret-alerts-mode=Багатослотовий режим
|
||||
gun-turret-alerts-threshold=Низький поріг боєприпасів
|
||||
gun-turret-alerts-z-automated-full=Автоматична сума дорівнює повній
|
||||
gun-turret-alerts-z-show-planets=Показати на всіх планетах
|
||||
gun-turret-alerts-z-show-platforms=Показати на всіх космічних платформах
|
||||
|
||||
[mod-setting-description]
|
||||
gun-turret-alerts-enabled=Дозволяє додати сповіщення про боєприпаси у вежі до вашого плеєра.
|
||||
@@ -11,6 +14,9 @@ gun-turret-alerts-car-enabled=Дозволяє додавати сповіщен
|
||||
gun-turret-alerts-artillery-enabled=Дозволяє додати сповіщення про артилерійські боєприпаси до вашого плеєра.
|
||||
gun-turret-alerts-mode=Керує, якщо гнізда для боєприпасів підсумовуються, кожен гніздо рахується окремо, або рахується лише вибране гніздо.\n(Застосовується лише для більш ніж одного гнізда для боєприпасів, наприклад, у транспортах)
|
||||
gun-turret-alerts-threshold=Якщо у вежі, транспорті або артилерії менше боєприпасів, гравцеві буде оголошено попередження.
|
||||
gun-turret-alerts-z-automated-full=Не надсилати сповіщення, коли у вежі або артилерії кількість боєприпасів дорівнює або перевищує кількість, яку автоматично вставляють в них маніпулятори.
|
||||
gun-turret-alerts-z-show-planets=Показувати сповіщення для інших планет, навіть якщо вас там немає. (За замовчуванням показувати тільки поточну планету/космічну платформу)
|
||||
gun-turret-alerts-z-show-platforms=Показувати сповіщення для інших космічних платформ, навіть якщо ви там не перебуваєте. (За замовчуванням показувати лише поточну планету/космічну платформу)
|
||||
|
||||
[string-mod-setting]
|
||||
gun-turret-alerts-mode-added=Підсумок
|
||||
@@ -18,14 +24,16 @@ gun-turret-alerts-mode-individually=Індивідуально
|
||||
gun-turret-alerts-mode-selected=Вибрані
|
||||
|
||||
[gun-turret-alerts]
|
||||
message-empty=__1__ закінчилися боєприпаси
|
||||
message-low=__1__ мало боєприпасів
|
||||
message-empty=У __1__ закінчилися набої
|
||||
message-low=У __1__ мало боєприпасів
|
||||
|
||||
[virtual-signal-name]
|
||||
ammo-icon-red=Сигнал про закінчення набоїв
|
||||
ammo-icon-yellow=Сигнал про низький рівень набоїв
|
||||
|
||||
[mod-name]
|
||||
Gun_Turret_Alerts=Попередження про боєприпаси
|
||||
|
||||
[mod-description]
|
||||
Gun_Turret_Alerts=Додає сповіщення на мапі для гравців, коли у гарматній вежі, транспортному засобі або артилерії закінчуються боєприпаси або у них мало боєприпасів.
|
||||
|
||||
|
||||
@@ -40,4 +40,16 @@ data:extend({
|
||||
setting_type = "runtime-per-user",
|
||||
default_value = true
|
||||
},
|
||||
{
|
||||
type = "bool-setting",
|
||||
name = "gun-turret-alerts-z-show-planets",
|
||||
setting_type = "runtime-per-user",
|
||||
default_value = false
|
||||
},
|
||||
{
|
||||
type = "bool-setting",
|
||||
name = "gun-turret-alerts-z-show-platforms",
|
||||
setting_type = "runtime-per-user",
|
||||
default_value = false
|
||||
},
|
||||
})
|
||||
Reference in New Issue
Block a user