1
0
mirror of https://github.com/Wyrrrd/Gun_Turret_Alerts.git synced 2026-06-30 03:56:14 +02:00

Compare commits

...

9 Commits

Author SHA1 Message Date
Wyrrrd c7278419c5 Update README.md 2024-11-06 13:07:56 +01:00
Wyrrrd 4bf505130f Update README.md 2024-11-06 13:07:31 +01:00
Wyrrrd 2608b11ead Added russian locale, small fixes 2024-11-06 13:05:51 +01:00
Factorio Mods Helper 7288dd8af7 Update translations from Crowdin 2024-11-02 04:27:11 +00:00
Wyrrrd 00a63f81c8 Update README.md 2024-10-28 22:35:49 +01:00
Wyrrrd 9d7b4f4c09 Update README.md 2024-10-28 22:33:38 +01:00
Wyrrrd d5a1f47667 Update README.md 2024-10-27 22:33:41 +01:00
Wyrrrd 19e8d91e7b Fix locales (again) 2024-10-27 22:28:45 +01:00
Wyrrrd 95ba24d2f9 Migration to 2.0
- Renamed car group to vehicle group in all languages
- Added spidertrons to vehicle group
2024-10-27 22:24:16 +01:00
12 changed files with 135 additions and 58 deletions
+5 -3
View File
@@ -2,12 +2,14 @@
<img src=https://raw.githubusercontent.com/Wyrrrd/Gun_Turret_Alerts/master/thumbnail.png width="128" height="128">
### Description
Adds alerts when a gun turret, car or artillery is out of ammo or has low ammo. The amount of ammo considered low can be configured. Alerts for turrets, cars and artillery can be disabled separately. Behaviour on cars with multiple ammo slots can be configured globally.
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).
### Locale
If you want to contribute by translating this mod, you can view the existing translations [here](https://github.com/Wyrrrd/Gun_Turret_Alerts/tree/master/locale). 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 and credits 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 [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 ukranian locale.
+19
View File
@@ -1,4 +1,23 @@
---------------------------------------------------------------------------------------------------
Version: 2.0.1
Date: 2024-11-06
Locale:
- Added ukranian locale (thanks to Met_en_Bouldry)
- Added russian locale (thanks to eugenikus8)
---------------------------------------------------------------------------------------------------
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:
+23 -23
View File
@@ -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
@@ -120,19 +120,19 @@ local function remove_force_from_list(event)
elseif event.source and event.destination then
param.force = event.destination
add_force_to_list(param)
force = source
force = event.source
end
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)
+16 -2
View File
@@ -1,2 +1,16 @@
--data.lua
require("prototypes.signals")
-- 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,
}
})
+3 -3
View File
@@ -1,9 +1,9 @@
{
"name": "Gun_Turret_Alerts",
"version": "1.1.11",
"version": "2.0.1",
"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"
}
+5 -5
View File
@@ -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 Geschützturm, Vehikel oder eine Artillerie weniger als diese Anzahl Munition hat, wird ein Alarm zu deinem Spieler hinzugefügt
[string-mod-setting]
gun-turret-alerts-mode-added=Aufaddiert
@@ -23,4 +23,4 @@ message-low=__1__ hat wenig Munition
[virtual-signal-name]
ammo-icon-red=Hat keine Munition
ammo-icon-yellow=Hat wenig Munition
ammo-icon-yellow=Hat wenig Munition
+10 -4
View File
@@ -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 turret, vehicle or artillery has less than this much ammo, an alert will be added to your player.
[string-mod-setting]
gun-turret-alerts-mode-added=Added up
@@ -23,4 +23,10 @@ message-low=__1__ low ammo
[virtual-signal-name]
ammo-icon-red=Out of ammo signal
ammo-icon-yellow=Low ammo signal
ammo-icon-yellow=Low ammo signal
[mod-name]
Gun_Turret_Alerts=Ammo Alerts
[mod-description]
Gun_Turret_Alerts=Adds map alerts for players when a gun turret, vehicle or artillery is either out of ammo or has low ammo.
+2 -2
View File
@@ -10,7 +10,7 @@ gun-turret-alerts-enabled=Le manque de munitions dans une tourelle enverra une a
gun-turret-alerts-car-enabled=Le manque de munitions dans un véhicule enverra une alerte au joueur.
gun-turret-alerts-artillery-enabled=Le manque de munitions dans une artillerie enverra une alerte au joueur.
gun-turret-alerts-mode=Surveiller tous les compartiments de l'unité, un seul, ou une sélection.\n(Certaines unités, principalement des véhicules, peuvent posséder plusieurs compartiments. À laisser décoché s'il n'y en a qu'un seul.)
gun-turret-alerts-threshold=Le nombre de munitions, dans une tourelle ou un véhicule, qui déclenchera un alerte une fois atteint.
gun-turret-alerts-threshold=Le nombre de munitions, dans une tourelle, un véhicule ou une artillerie, qui déclenchera un alerte une fois atteint.
[string-mod-setting]
gun-turret-alerts-mode-added=Tous
@@ -23,4 +23,4 @@ message-low=__1__ peu de munitions
[virtual-signal-name]
ammo-icon-red=Signal d'absence de munition
ammo-icon-yellow=Signal de manque de munitions
ammo-icon-yellow=Signal de manque de munitions
+26
View File
@@ -0,0 +1,26 @@
[mod-setting-name]
gun-turret-alerts-enabled=Включить оповещения о боезапасе турелей
gun-turret-alerts-car-enabled=Включить оповещения о боезапасе транспортных средств
gun-turret-alerts-artillery-enabled=Включить оповещения о боезапасе артиллерии
gun-turret-alerts-mode=Режим с несколькими слотами
gun-turret-alerts-threshold=Порог низкого уровня боеприпасов
[mod-setting-description]
gun-turret-alerts-enabled=Показать оповещения о боеприпасах в турелях для вашего игрока.
gun-turret-alerts-car-enabled=Показать оповещения о боеприпасах в транспортных средствах для вашего игрока.
gun-turret-alerts-artillery-enabled=Показать оповещения о боеприпасах в артиллерии для вашего игрока.
gun-turret-alerts-mode=Управляет тем, как учитываются слоты для боеприпасов: суммируются ли все слоты, подсчитывается ли каждый слот отдельно или учитывается только выбранный слот.\n(Применяется только для случаев с несколькими слотами для боеприпасов, например, в транспортных средствах.)
gun-turret-alerts-threshold=Если боезапас меньше этого количества, вам будет показано предупреждение.
[string-mod-setting]
gun-turret-alerts-mode-added=В сумме
gun-turret-alerts-mode-individually=По отдельности
gun-turret-alerts-mode-selected=Выбранный
[gun-turret-alerts]
message-empty=__1__ - нет боеприпасов
message-low=__1__ - мало боеприпасов
[virtual-signal-name]
ammo-icon-red=Сигнал отсутствия боеприпасов
ammo-icon-yellow=Сигнал о низком боезапасе
+26
View File
@@ -0,0 +1,26 @@
[mod-setting-name]
gun-turret-alerts-enabled=Ввімкнено оповіщення про боєприпаси у вежах
gun-turret-alerts-car-enabled=Ввімкнено оповіщення про боєприпаси у транспортах
gun-turret-alerts-artillery-enabled=Ввімкнено оповіщення про артилерійські боєприпаси
gun-turret-alerts-mode=Багатослотовий режим
gun-turret-alerts-threshold=Низький поріг боєприпасів
[mod-setting-description]
gun-turret-alerts-enabled=Дозволяє додати сповіщення про боєприпаси у вежі до вашого плеєра.
gun-turret-alerts-car-enabled=Дозволяє додавати сповіщення про наявність боєприпасів у транспорті до плеєра.
gun-turret-alerts-artillery-enabled=Дозволяє додати сповіщення про артилерійські боєприпаси до вашого плеєра.
gun-turret-alerts-mode=Керує, якщо гнізда для боєприпасів підсумовуються, кожен гніздо рахується окремо, або рахується лише вибране гніздо.\n(Застосовується лише для більш ніж одного гнізда для боєприпасів, наприклад, у транспортах)
gun-turret-alerts-threshold=Якщо у вежі, транспорті або артилерії менше боєприпасів, гравцеві буде оголошено попередження.
[string-mod-setting]
gun-turret-alerts-mode-added=Підсумок
gun-turret-alerts-mode-individually=Індивідуально
gun-turret-alerts-mode-selected=Вибрані
[gun-turret-alerts]
message-empty=__1__ закінчилися боєприпаси
message-low=__1__ мало боєприпасів
[virtual-signal-name]
ammo-icon-red=Сигнал про закінчення набоїв
ammo-icon-yellow=Сигнал про низький рівень набоїв
-2
View File
@@ -1,2 +0,0 @@
global.turret_entities = nil
global.car_entities = nil
-14
View File
@@ -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,
}
})