1
0
mirror of https://github.com/Wyrrrd/Gun_Turret_Alerts.git synced 2026-07-01 20:51:08 +02:00

Compare commits

..

5 Commits

Author SHA1 Message Date
Wyrrrd d7f853f1a5 Added french locale (by d0ob) 2021-08-07 00:08:34 +02:00
Wyrrrd 9ee6474408 Merge pull request #3 from snouz/master
Adaptive threshold based on automated ammo count
2021-06-22 15:59:46 +00:00
snouz 33c9bbe783 Fixed missing signal names 2021-06-22 17:13:30 +02:00
snouz ad4ae53c97 Adaptive threshold based on automated ammo count
-Threshold for alert comes is never higher than then number of ammo loaded by an inserter.
-This fixes annoying alerts in Space Exploration's meteor defence, where the default ammo loaded is 4, and fixes the problem for any other mod.
2021-06-21 15:06:34 +02:00
Wyrrrd 9545d088eb Fix crash on load
"selected" mode defaulting to first slot now
2021-04-22 09:14:37 +02:00
7 changed files with 80 additions and 29 deletions
+2 -1
View File
@@ -9,4 +9,5 @@ If you want to contribute by translating this mod, you can view the existing tra
### Credit ### Credit
Thanks to [unhott](https://mods.factorio.com/user/unhott) for the [original mod](https://mods.factorio.com/mod/GunTurretAlerts). 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 [snouz](https://mods.factorio.com/user/snouz) for the new icons and thumbnail.
Thanks to [d0ob](https://github.com/d0ob) for the french locale.
+17
View File
@@ -1,4 +1,21 @@
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
Version: 1.1.8
Date: 2021-08-06
Locale:
- Addedd french locale (thanks to d0ob)
---------------------------------------------------------------------------------------------------
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)
---------------------------------------------------------------------------------------------------
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.
Scripting:
- Simplified some boolean logic misusing it as ternary
---------------------------------------------------------------------------------------------------
Version: 1.1.5 Version: 1.1.5
Date: 2021-04-21 Date: 2021-04-21
Features: Features:
+26 -25
View File
@@ -13,57 +13,53 @@ end
--local functions --local functions
local get_ammo_flags = { local get_ammo_flag = {
--Applies mode to inventory, calculates and returns respective inventory flags --Applies mode to inventory, calculates and returns respective inventory flags
--Uses boolean return value as ternary, with true = no ammo, false = low ammo and nil = enough ammo
["added"] = function (inventory,player_threshold) ["added"] = function (inventory,player_threshold)
local no,low = false
if inventory.is_empty() then if inventory.is_empty() then
no = true return true
else else
local ammo_count = 0 local ammo_count = 0
for i=1, #inventory do for i=1, #inventory do
ammo_count = ammo_count + inventory[i].count ammo_count = ammo_count + inventory[i].count
end end
if ammo_count == 0 then if ammo_count == 0 then
no = true return true
elseif ammo_count < player_threshold then elseif ammo_count < player_threshold then
low = true return false
end end
end end
return no, low
end, end,
["individually"] = function (inventory,player_threshold) ["individually"] = function (inventory,player_threshold)
local no,low = false
if inventory.is_empty() then if inventory.is_empty() then
no = true return true
else else
for i=1, #inventory do for i=1, #inventory do
if inventory[i].count == 0 then if inventory[i].count == 0 then
no = true return true
elseif inventory[i].count < player_threshold then elseif inventory[i].count < player_threshold then
low = true return false
end end
end end
end end
return no, low
end, end,
["selected"] = function (inventory,player_threshold,gun_index) ["selected"] = function (inventory,player_threshold,gun_index)
local no,low = false
if inventory.is_empty() then if inventory.is_empty() then
no = true return true
else else
if not gun_index then if not gun_index then
-- default to added mode if no slot selected (probably multislot turret) -- default to first slot if no slot selected (probably multislot turret)
no, low = get_ammo_flags["added"](inventory, player_threshold) gun_index = 1
elseif inventory[gun_index].count == 0 then end
no = true if inventory[gun_index].count == 0 then
return true
elseif inventory[gun_index].count < player_threshold then elseif inventory[gun_index].count < player_threshold then
low = true return false
end end
end end
return no, low
end end
} }
@@ -166,20 +162,25 @@ local function generate_alerts()
end end
--Check for states of no or low ammo based on mode --Check for states of no or low ammo based on mode
local no, low = false local ammo_flag
if inventory and get_ammo_flags[mode] then if inventory and get_ammo_flag[mode] then
if entity.type == "ammo-turret" then if entity.type == "ammo-turret" then
no, low = get_ammo_flags[mode](inventory, player_threshold) ammo_flag = get_ammo_flag[mode](inventory, player_threshold)
if 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
end
elseif entity.type == "car" then elseif entity.type == "car" then
no, low = get_ammo_flags[mode](inventory, player_threshold, entity.selected_gun_index) ammo_flag = get_ammo_flag[mode](inventory, player_threshold, entity.selected_gun_index)
end end
end end
--Create alert for present state --Create alert for present state
if no then if ammo_flag then
-- no ammo alert -- no ammo alert
player.add_custom_alert(entity, {type = "virtual", name = "ammo-icon-red"}, {"gun-turret-alerts.message-empty", entity.localised_name}, true) player.add_custom_alert(entity, {type = "virtual", name = "ammo-icon-red"}, {"gun-turret-alerts.message-empty", entity.localised_name}, true)
elseif low then elseif ammo_flag == false then
-- low ammo alert -- low ammo alert
player.add_custom_alert(entity, {type = "virtual", name = "ammo-icon-yellow"}, {"gun-turret-alerts.message-low", entity.localised_name}, true) player.add_custom_alert(entity, {type = "virtual", name = "ammo-icon-yellow"}, {"gun-turret-alerts.message-low", entity.localised_name}, true)
end end
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "Gun_Turret_Alerts", "name": "Gun_Turret_Alerts",
"version": "1.1.5", "version": "1.1.8",
"title": "Ammo Alerts", "title": "Ammo Alerts",
"author": "Wyrrrd", "author": "Wyrrrd",
"factorio_version": "1.1", "factorio_version": "1.1",
+5 -1
View File
@@ -17,4 +17,8 @@ autofilter_mode-selected=Auswahl
[gun-turret-alerts] [gun-turret-alerts]
message-empty=__1__ hat keine Munition message-empty=__1__ hat keine Munition
message-low=__1__ hat wenig Munition message-low=__1__ hat wenig Munition
[virtual-signal-name]
ammo-icon-red=Hat keine Munition
ammo-icon-yellow=Hat wenig Munition
+5 -1
View File
@@ -17,4 +17,8 @@ autofilter_mode-selected=Selected
[gun-turret-alerts] [gun-turret-alerts]
message-empty=__1__ out of ammo message-empty=__1__ out of ammo
message-low=__1__ ammo low message-low=__1__ low ammo
[virtual-signal-name]
ammo-icon-red=Out of ammo signal
ammo-icon-yellow=Low ammo signal
+24
View File
@@ -0,0 +1,24 @@
[mod-setting-name]
gun-turret-alerts-enabled=Activer les alertes de manque de munitions dans les tourelles.
gun-turret-alerts-car-enabled=Activer les alertes de manque de munitions dans les véhicules.
gun-turret-alerts-mode=Prendre en considération plusieurs compartiments de munitions.
gun-turret-alerts-threshold=Nombre de munitions restantes avant d'être alerté.
[mod-setting-description]
gun-turret-alerts-enabled=Le manque de munitions dans une tourelle enverra une alerte au joueur.
gun-turret-alerts-car-enabled=Le manque de munitions dans un véhicule 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.
[string-mod-setting]
autofilter_mode-added=Tous
autofilter_mode-individually=Unique
autofilter_mode-selected=Sélection
[gun-turret-alerts]
message-empty=__1__ plus de munition
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