From 1ef2d837f7c97100540097fc1e151983648517dd Mon Sep 17 00:00:00 2001 From: Wyrrrd Date: Mon, 17 Feb 2020 21:11:17 +0100 Subject: [PATCH] Initial commit Only changed supported Factorio version and added thumbnail --- README.md | 10 +++++++++- control.lua | 44 +++++++++++++++++++++++++++++++++++++++++++ data.lua | 1 + info.json | 10 ++++++++++ locale/en/config.cfg | 7 +++++++ settings.lua | 20 ++++++++++++++++++++ thumbnail.png | Bin 0 -> 3064 bytes 7 files changed, 91 insertions(+), 1 deletion(-) create mode 100644 control.lua create mode 100644 data.lua create mode 100644 info.json create mode 100644 locale/en/config.cfg create mode 100644 settings.lua create mode 100644 thumbnail.png diff --git a/README.md b/README.md index aac4346..a3996c5 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,10 @@ # Gun_Turret_Alerts - +![mod thumbnail](https://raw.githubusercontent.com/Wyrrrd/Gun_Turret_Alerts/master/thumbnail.png) + +(Please note: This is a quick and dirty port to 0.18. As soon as the original is ported to 0.18, this will be removed.) + +Description +- Adds alerts when a gun turret is out of ammo or has low ammo. + +Credit: +- Thanks to [unhott](https://mods.factorio.com/user/unhott) for the [original mod](https://mods.factorio.com/mod/GunTurretAlerts). \ No newline at end of file diff --git a/control.lua b/control.lua new file mode 100644 index 0000000..99f7780 --- /dev/null +++ b/control.lua @@ -0,0 +1,44 @@ +--control.lua +--This mod scans the map for gun-turrets and places alerts when turrets are low. + + +script.on_event({defines.events.on_tick}, function (event) + --Every minute the surface is rescanned for ammo-turret type entities. This is stored in the global table. + if event.tick%3600 == 0 or global.turret_entities == nil then + local planet = game.surfaces + for index,value in pairs(planet) do + global.turret_entities = planet[index].find_entities_filtered{type = "ammo-turret"} + end + end + + if event.tick%600 == 0 then + --Every 10 seconds recheck and give alerts to players for ammo-turret entities on the same force as them. + for index,player in pairs(game.connected_players) do + + GTA_enabled = player.mod_settings["gun-turret-alerts-enabled"].value + player_threshold = player.mod_settings["gun-turret-alerts-threshold"].value + if GTA_enabled then + for index2, turret_entity in pairs(global.turret_entities) do + if turret_entity.valid then + inv_var = turret_entity.get_inventory(defines.inventory.turret_ammo) + if inv_var.is_empty() then + ammo_left = 0 + else + ammo_left = inv_var[1].count + end + if turret_entity.force == player.force then + if ammo_left == 0 then + player.add_custom_alert(turret_entity, {type = "item", name = "piercing-rounds-magazine"}, "Out of ammo", true) + elseif ammo_left < player_threshold then + player.add_custom_alert(turret_entity, {type = "item", name = "firearm-magazine"}, "Ammo low", true) + end + end + end + end + end + end + end +end) + + + diff --git a/data.lua b/data.lua new file mode 100644 index 0000000..bcc4f19 --- /dev/null +++ b/data.lua @@ -0,0 +1 @@ +--data.lua diff --git a/info.json b/info.json new file mode 100644 index 0000000..8fe6f43 --- /dev/null +++ b/info.json @@ -0,0 +1,10 @@ +{ + "name": "Gun_Turret_Alerts", + "version": "0.18.0", + "title": "Gun_Turret_Alerts", + "author": "Wyrrrd", + "homepage": "", + "factorio_version": "0.18", + "dependencies": ["base >= 0.16"], + "description": "Adds map alerts for players when a turret is either out of ammo or has low ammo" +} \ No newline at end of file diff --git a/locale/en/config.cfg b/locale/en/config.cfg new file mode 100644 index 0000000..89d3274 --- /dev/null +++ b/locale/en/config.cfg @@ -0,0 +1,7 @@ +[mod-setting-name] +gun-turret-alerts-enabled=Gun turret alerts enabled +gun-turret-alerts-threshold=Low ammo threshold + +[mod-setting-description] +gun-turret-alerts-enabled=Enables alerts to be added to your player +gun-turret-alerts-threshold=If a turret has less than this much ammo an alert will be added to your player \ No newline at end of file diff --git a/settings.lua b/settings.lua new file mode 100644 index 0000000..1c40d18 --- /dev/null +++ b/settings.lua @@ -0,0 +1,20 @@ +--settings.lua + + +data:extend({ + { + type = "bool-setting", + name = "gun-turret-alerts-enabled", + setting_type = "runtime-per-user", + default_value = true + }, + { + type = "int-setting", + name = "gun-turret-alerts-threshold", + setting_type = "runtime-per-user", + default_value = 8, + minimum_value = 0 + + } + +}) \ No newline at end of file diff --git a/thumbnail.png b/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..9061d766d77ac95e1bb7939027fb0ccb467425c4 GIT binary patch literal 3064 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D3yn!cK~#8N?OO|M zQ`Z?j*NL4sekFED(vTOA@d)oip=j;s3Ia4u6-&VL@)5uf1^hoqKSMf9AQkK!oo3-SRWK7{R+){EOpGkeIo13RGCSb=;Xb@*UZflXfapJt;=IyIJJvu2 zO=>+Y$bTBZ$YbpWEj8O2jdD-}fAyHE{e?`LZ)DHI=!!xjL;@E1?u{gfN** zn(JN0vLC!%U_Ni>O64F=)Tl$ZYU}$Dkf=3 zk_00U`HMgxAfN=f^msg>74@Fp!@KGB zid(Q;`9KorcS)xfeaqBWP*AWL@-`P17Rr5{fb_-a=%~og&lhgDTjb>A$O{1t6kziC zM6K5wEgc$i?R+cZp1UNRJhAYb#(a?9UQtnDM${!nnM5({ z$!R^V8z%Ow>>qsHSeYh&ANS{T1eN=V58i2h0x&nvCO z(P7h^EB%uBc1cOeleM+A`RLbjqNBWHPQZ{SydXSl)-2&eSq=xRaX3U{f4?w68Bw02 z*GrE2`u}zQ^Xhj>8mTHE=><<~x8~y7mr9M0d|h>QwJdKWJvrh;G#V8{h%%kPei;}Z z7L6dh#%2>$sB7_g5a&B_?X{{ZaTZL+Hg)E&Kbq|UGH$`d;*?D zF8DyLCxoON0P;Nl5^TAAAOU=ICHL&Hllt=OU1c?pJ|{PFqGQBKn389mNl*h)R*+kO zzFq?-<)a=%9vCnhMLVK@7mgSV2BU#cD1d9)dfx4gO^RaR9AOol5LKG-k!%-WzfX$% zE59|Hn|rJ>c^-@Pc^VZ!;<8iF*Q?Oymw|i(x{Eqyt2_Yc`Ao|59=vj+=AP&l(vvR1b zGn>tFpQqeOo|0$jz_5nTMHIy6qOUh%M6f~u@QCn2?(G#7;uA>T?(;>0q0k`iai-~* zqkN7v@}&BRc(B9jp@P_qaY`hrfc>z9$XmW#)`~fNz13>fQsRsRb93zsN4-sF0 zVQ!_NdWhl7Zr3$75 z=Jux+?<|dg?8f=?=WCo!r^G1J2~+?xJ{B_q`9KT|42Z|k6;{C+26O>_?lu_2&9X9a z5s^oKk09#K-ap-&$tsi4=W=;KX-HS6DHn$_f>*mavlLMj>iL#$F z=`qufK<=E{j$nLmM7LOpZlH%MNPY<8dkgFe&x6Nse(Ma$6a3C`7fRDQ0MX}SBks=2 zza5$iEMB%@mRA((?@V@F&axbzAl4m01B*zQ~tVY7Kpzo8s zSFabXm=WH>xr3q5(1yj{oB#NQO;b}IUZ>uErr>uchbb|o1K>GMcy=hQ$>AE7T27oP z^j~f_)}p^_NS;wA;n)*jaTOCNEEH{UKnut_knF0hfs6aU>ao|( z4)dpU>BJ6j;pWMtm`(vdflZkteF5ppq2F2Ce)+fA^ot|kNR=G{UWD3|0TcuPd$I{)6e{AY% zv{qD9?Wle3hO}ysmN_$NdU;5ys8VDRK1A#=qF@c2h@3ho-Z$Q}p!o2%F6&F!Pi9 zKew}bdwb>0j2e(HqLa|?`yld$q?ex(;{^;pJf*i?JhU@@DKdIMDbO4Q!kFEAtr$c0CK>96kz-2}qc2lQ| zYE1$Ai(7`B4VB?F>TMn*4yc^R74Uu7ETuXfm~lHTi;v3vbf_E>!rV=0_23<^cY{;Za2i9dJRZKa#jW2ONZD z{C{&ELXh)84Q51VP}vCk1g31-|9^uV$#tX3{WCnm5aK^!lKQ|ehI1qU0000