mirror of
https://github.com/Wyrrrd/Gun_Turret_Alerts.git
synced 2026-06-30 03:56:14 +02:00
Compare commits
52 Commits
v1.1.2
..
af74836ea4
| Author | SHA1 | Date | |
|---|---|---|---|
| af74836ea4 | |||
| c3d6f5e9b1 | |||
| c08b964a8d | |||
| 771c0f2950 | |||
| 2515aafd7b | |||
| 4ebeb9c664 | |||
| 86820c48c3 | |||
| 037d321604 | |||
| c837b99a01 | |||
| 4c8b05b930 | |||
| d6d426ddc7 | |||
| 2b91680aa2 | |||
| 861dd1fa7d | |||
| b6df0ba763 | |||
| e99c0e0505 | |||
| 3c86e315f4 | |||
| 3c2316878a | |||
| ad2e1d597b | |||
| 0eabcfc23e | |||
| 4bf3081c31 | |||
| c7278419c5 | |||
| 4bf505130f | |||
| 2608b11ead | |||
| 7288dd8af7 | |||
| 00a63f81c8 | |||
| 9d7b4f4c09 | |||
| d5a1f47667 | |||
| 19e8d91e7b | |||
| 95ba24d2f9 | |||
| 0b343029e9 | |||
| 445691bd04 | |||
| 9df748dead | |||
| ec0564f167 | |||
| c261e1bc5c | |||
| ba581ac1a1 | |||
| d7f853f1a5 | |||
| 9ee6474408 | |||
| 33c9bbe783 | |||
| ad4ae53c97 | |||
| 9545d088eb | |||
| 87c2c17d72 | |||
| fa2781aee2 | |||
| 72e8b5509d | |||
| 15a8590a76 | |||
| 0d7676d71e | |||
| 48bcdc2ba5 | |||
| bd8049999b | |||
| 846fb1412e | |||
| 2b5f19052e | |||
| db141f81ca | |||
| 1eb12f0f28 | |||
| eb3b6cf0e6 |
@@ -1 +1,2 @@
|
||||
*.zip
|
||||
.vscode/*
|
||||
|
||||
@@ -2,7 +2,11 @@
|
||||
<img src=https://raw.githubusercontent.com/Wyrrrd/Gun_Turret_Alerts/master/thumbnail.png width="128" height="128">
|
||||
|
||||
### Description
|
||||
Adds alerts when a car or gun turret is out of ammo or has low ammo.
|
||||
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 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 [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.
|
||||
|
||||
+130
@@ -1,4 +1,134 @@
|
||||
---------------------------------------------------------------------------------------------------
|
||||
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:
|
||||
- Really fix the crash on surface deletion
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 2.0.4
|
||||
Date: 2024-11-09
|
||||
Bugfixes:
|
||||
- Fix another crash on surface deletion
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 2.0.3
|
||||
Date: 2024-11-08
|
||||
Bugfixes:
|
||||
- Fixed crash on invalid entity
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 2.0.2
|
||||
Date: 2024-11-08
|
||||
Changes:
|
||||
- Cleanup tracking table on surface rename/deletion
|
||||
Bugfixes:
|
||||
- Quick fix setting for manual turret fill
|
||||
---------------------------------------------------------------------------------------------------
|
||||
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
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.1.11
|
||||
Date: 2023-03-12
|
||||
Bugfixes:
|
||||
- Added static script event listeners to fix missing alerts for script built entities
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.1.10
|
||||
Date: 2022-08-07
|
||||
Features:
|
||||
- Added artillery as third alert group (off by default)
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.1.9
|
||||
Date: 2021-08-07
|
||||
Locale:
|
||||
- Fixed modes not being translated
|
||||
---------------------------------------------------------------------------------------------------
|
||||
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
|
||||
Date: 2021-04-21
|
||||
Features:
|
||||
- Added config option to change behaviour on multiple ammo slots (mainly for cars)
|
||||
Bugfixes:
|
||||
- Fixed only checking first ammo slot in cars
|
||||
- Fixed modded cars without guns causing ammo empty alerts (AAI)
|
||||
Optimisations:
|
||||
- Only scanning surfaces for forces with connected players
|
||||
- Only scanning surfaces on init now, updating by single entities as they are build or removed
|
||||
- Only scanning surfaces once instead of twice (once for turrets and once for cars)
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.1.4
|
||||
Date: 2021-04-02
|
||||
Bugfixes:
|
||||
- Fix multiplayer incompatibility by clearing index on game version/mod version/config change
|
||||
Locale:
|
||||
- Added alerts to locale
|
||||
- Customized alerts with localised name of entities
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.1.3
|
||||
Date: 2021-03-29
|
||||
Changes:
|
||||
- Icon and message overhaul (by snouz)
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.1.2
|
||||
Date: 2021-03-28
|
||||
Bugfixes:
|
||||
|
||||
+268
-46
@@ -1,60 +1,282 @@
|
||||
--control.lua
|
||||
--This mod scans the map for cars and gun-turrets and places alerts when they are low.
|
||||
--This mod scans the map for gun-turrets, vehicles and artillery and places alerts when they are low on ammo.
|
||||
|
||||
script.on_init(function (event)
|
||||
-- car and turret index init
|
||||
global.turret_entities = {}
|
||||
global.car_entities = {}
|
||||
end)
|
||||
--requires
|
||||
|
||||
script.on_nth_tick(3600, function (event)
|
||||
--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"}
|
||||
require "util"
|
||||
|
||||
--util functions
|
||||
|
||||
function table_is_empty(table)
|
||||
for _,_ in pairs(table) do
|
||||
return false
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
|
||||
--local functions
|
||||
|
||||
local get_ammo_flag = {
|
||||
--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)
|
||||
if inventory.is_empty() then
|
||||
return true
|
||||
else
|
||||
local ammo_count = 0
|
||||
for i=1, #inventory do
|
||||
ammo_count = ammo_count + inventory[i].count
|
||||
end
|
||||
if ammo_count == 0 then
|
||||
return true
|
||||
elseif ammo_count < player_threshold then
|
||||
return false
|
||||
end
|
||||
end
|
||||
end,
|
||||
|
||||
["individually"] = function (inventory,player_threshold)
|
||||
if inventory.is_empty() then
|
||||
return true
|
||||
else
|
||||
for i=1, #inventory do
|
||||
if inventory[i].count == 0 then
|
||||
return true
|
||||
elseif inventory[i].count < player_threshold then
|
||||
return false
|
||||
end
|
||||
end
|
||||
end
|
||||
end,
|
||||
|
||||
["selected"] = function (inventory,player_threshold,gun_index)
|
||||
if inventory.is_empty() then
|
||||
return true
|
||||
else
|
||||
if not gun_index then
|
||||
-- default to first slot if no slot selected (probably multislot turret)
|
||||
gun_index = 1
|
||||
end
|
||||
if inventory[gun_index].count == 0 then
|
||||
return true
|
||||
elseif inventory[gun_index].count < player_threshold then
|
||||
return false
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
}
|
||||
|
||||
script.on_nth_tick(600, function (event)
|
||||
--Every 10 seconds recheck and give alerts to players for car and ammo-turret entities on the same force as them.
|
||||
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
|
||||
end
|
||||
|
||||
local function remove_entity_from_list(event)
|
||||
--Whenever an ammo-turret, vehicle or artillery type entity dies / is mined, remove it from the global table.
|
||||
local index = event.entity.surface.name.."_"..event.entity.force.name
|
||||
if storage.ammo_entities[index] then
|
||||
for i,entity in pairs(storage.ammo_entities[index]) do
|
||||
if (entity == event.entity) then
|
||||
table.remove(storage.ammo_entities[index], i)
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function add_force_to_list(event)
|
||||
--Whenever a player of an unscanned force joins the game or a force is created, add all ammo-turret, vehicle or artillery type entities of that force to the global table.
|
||||
local player, force
|
||||
if event.player_index then
|
||||
player = game.get_player(event.player_index)
|
||||
if player and player.valid then
|
||||
force = player.force
|
||||
end
|
||||
elseif event.force then
|
||||
force = event.force
|
||||
if force.valid and force.connected_players then
|
||||
player = force.connected_players[1]
|
||||
end
|
||||
end
|
||||
|
||||
if player and player.valid and force and force.valid and not storage.ammo_entities[player.surface.name.."_"..force.name] then
|
||||
for _,surface in pairs(game.surfaces) do
|
||||
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
|
||||
|
||||
local function remove_force_from_list(event)
|
||||
--Whenever the last player of a force leaves the game or forces are merged, remove all entities of that force from the global table.
|
||||
local force
|
||||
local param = {}
|
||||
if event.player_index and event.force then
|
||||
param.player_index = event.player_index
|
||||
add_force_to_list(param)
|
||||
force = event.force
|
||||
elseif event.player_index then
|
||||
force = game.get_player(event.player_index).force
|
||||
elseif event.force then
|
||||
force = event.force
|
||||
elseif event.source and event.destination then
|
||||
param.force = event.destination
|
||||
add_force_to_list(param)
|
||||
force = event.source
|
||||
end
|
||||
|
||||
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.
|
||||
for _,force in pairs(game.forces) do
|
||||
local index
|
||||
if event.new_name then
|
||||
storage.ammo_entities[event.new_name.."_"..force.name] = table.deepcopy(storage.ammo_entities[event.old_name.."_"..force.name])
|
||||
index = event.old_name.."_"..force.name
|
||||
elseif event.surface_index then
|
||||
index = game.surfaces[event.surface_index].name.."_"..force.name
|
||||
end
|
||||
|
||||
if index then
|
||||
storage.ammo_entities[index] = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function init_list()
|
||||
--Create global table for existing forces
|
||||
storage.ammo_entities = {}
|
||||
local param = {}
|
||||
for _,force in pairs(game.forces) do
|
||||
param.force = force
|
||||
add_force_to_list(param)
|
||||
end
|
||||
end
|
||||
|
||||
local function generate_alerts()
|
||||
--Every 10 seconds recheck and give alerts to players for ammo-turret, vehicle, spidertron or artillery type entities on the same force as them.
|
||||
for _,player in pairs(game.connected_players) do
|
||||
|
||||
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_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)
|
||||
if inv_var.is_empty() then
|
||||
-- no ammo alert
|
||||
player.add_custom_alert(turret_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(turret_entity, {type = "item", name = "firearm-magazine"}, "Ammo low", true)
|
||||
end
|
||||
end
|
||||
local turret_enabled = player.mod_settings["gun-turret-alerts-enabled"].value
|
||||
local car_enabled = player.mod_settings["gun-turret-alerts-car-enabled"].value
|
||||
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 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
|
||||
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)
|
||||
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
|
||||
|
||||
--Get ammo inventory based on entity type, skip vehicles without guns
|
||||
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" 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
|
||||
inventory = entity.get_inventory(defines.inventory.artillery_turret_ammo)
|
||||
elseif entity.type == "artillery-wagon" then
|
||||
inventory = entity.get_inventory(defines.inventory.artillery_wagon_ammo)
|
||||
end
|
||||
end
|
||||
|
||||
--Check for states of no or low ammo based on mode
|
||||
local ammo_flag
|
||||
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)
|
||||
-- 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
|
||||
end
|
||||
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
|
||||
|
||||
--Create alert for present state
|
||||
if ammo_flag then
|
||||
-- no ammo alert
|
||||
player.add_custom_alert(entity, {type = "virtual", name = "ammo-icon-red"}, {"gun-turret-alerts.message-empty", entity.localised_name}, true)
|
||||
elseif ammo_flag == false then
|
||||
-- low ammo alert
|
||||
player.add_custom_alert(entity, {type = "virtual", name = "ammo-icon-yellow"}, {"gun-turret-alerts.message-low", entity.localised_name}, true)
|
||||
end
|
||||
end
|
||||
else
|
||||
-- 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
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
|
||||
-- Event handlers
|
||||
|
||||
script.on_init(init_list)
|
||||
script.on_configuration_changed(init_list)
|
||||
|
||||
script.on_event(defines.events.on_player_joined_game, add_force_to_list)
|
||||
script.on_event(defines.events.on_player_left_game, remove_force_from_list)
|
||||
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_surface_renamed, remove_surface_from_list)
|
||||
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"}})
|
||||
|
||||
script.on_nth_tick(600, generate_alerts)
|
||||
@@ -1 +1,16 @@
|
||||
--data.lua
|
||||
-- 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,
|
||||
}
|
||||
})
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 825 B |
Binary file not shown.
|
After Width: | Height: | Size: 1007 B |
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"name": "Gun_Turret_Alerts",
|
||||
"version": "1.1.2",
|
||||
"version": "2.0.10",
|
||||
"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"
|
||||
}
|
||||
+26
-3
@@ -1,9 +1,32 @@
|
||||
[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
|
||||
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
|
||||
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
|
||||
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 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
|
||||
gun-turret-alerts-mode-individually=Einzeln
|
||||
gun-turret-alerts-mode-selected=Auswahl
|
||||
|
||||
[gun-turret-alerts]
|
||||
message-empty=__1__ hat keine Munition
|
||||
message-low=__1__ hat wenig Munition
|
||||
|
||||
[virtual-signal-name]
|
||||
ammo-icon-red=Hat keine Munition
|
||||
ammo-icon-yellow=Hat wenig Munition
|
||||
|
||||
[mod-name]
|
||||
|
||||
[mod-description]
|
||||
|
||||
|
||||
+33
-4
@@ -1,9 +1,38 @@
|
||||
[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
|
||||
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
|
||||
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
|
||||
gun-turret-alerts-enabled=Enables turret 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 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
|
||||
gun-turret-alerts-mode-individually=Individually
|
||||
gun-turret-alerts-mode-selected=Selected
|
||||
|
||||
[gun-turret-alerts]
|
||||
message-empty=__1__ is out of ammo
|
||||
message-low=__1__ is low on ammo
|
||||
|
||||
[virtual-signal-name]
|
||||
ammo-icon-red=Out of 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.
|
||||
@@ -0,0 +1,31 @@
|
||||
[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-artillery-enabled=Activer les alertes de manque de munitions dans la artillerie.
|
||||
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-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, un véhicule ou une artillerie, qui déclenchera un alerte une fois atteint.
|
||||
|
||||
[string-mod-setting]
|
||||
gun-turret-alerts-mode-added=Tous
|
||||
gun-turret-alerts-mode-individually=Unique
|
||||
gun-turret-alerts-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
|
||||
|
||||
[mod-name]
|
||||
|
||||
[mod-description]
|
||||
|
||||
@@ -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=Сигнал о низком боезапасе
|
||||
@@ -0,0 +1,39 @@
|
||||
[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=Низький поріг боєприпасів
|
||||
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=Дозволяє додати сповіщення про боєприпаси у вежі до вашого плеєра.
|
||||
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=Підсумок
|
||||
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=Сигнал про низький рівень набоїв
|
||||
|
||||
[mod-name]
|
||||
Gun_Turret_Alerts=Попередження про боєприпаси
|
||||
|
||||
[mod-description]
|
||||
Gun_Turret_Alerts=Додає сповіщення на мапі для гравців, коли у гарматній вежі, транспортному засобі або артилерії закінчуються боєприпаси або у них мало боєприпасів.
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
script.on_configuration_changed(function (event)
|
||||
-- car index init fix
|
||||
global.car_entities = {}
|
||||
end)
|
||||
+32
-3
@@ -13,6 +13,19 @@ data:extend({
|
||||
name = "gun-turret-alerts-car-enabled",
|
||||
setting_type = "runtime-per-user",
|
||||
default_value = true
|
||||
},
|
||||
{
|
||||
type = "bool-setting",
|
||||
name = "gun-turret-alerts-artillery-enabled",
|
||||
setting_type = "runtime-per-user",
|
||||
default_value = false
|
||||
},
|
||||
{
|
||||
type = "string-setting",
|
||||
name = "gun-turret-alerts-mode",
|
||||
setting_type = "runtime-per-user",
|
||||
allowed_values = {"added","individually","selected"},
|
||||
default_value = "selected"
|
||||
},
|
||||
{
|
||||
type = "int-setting",
|
||||
@@ -20,7 +33,23 @@ data:extend({
|
||||
setting_type = "runtime-per-user",
|
||||
default_value = 8,
|
||||
minimum_value = 0
|
||||
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
type = "bool-setting",
|
||||
name = "gun-turret-alerts-z-automated-full",
|
||||
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
|
||||
},
|
||||
})
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 23 KiB |
Reference in New Issue
Block a user