From f4afda49b84940cfd1a9dad008a00e61cd07df72 Mon Sep 17 00:00:00 2001
From: ss13-beebot <56381746+ss13-beebot@users.noreply.github.com>
Date: Fri, 18 Oct 2024 00:17:01 +0000
Subject: [PATCH 01/14] Automatic changelog compile [ci skip]
---
html/changelog.html | 10 ----------
1 file changed, 10 deletions(-)
diff --git a/html/changelog.html b/html/changelog.html
index 0c73725ef37..cfb87e011d1 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -129,16 +129,6 @@
riquewright updated:
added random ore spawns
pre-beebase objects and turfs
-
- 16 August 2024
- Kenionatus updated:
-
- - Auto recall reminders now also get sent during combat
-
- Pockets-byte updated:
-
- - added a rejection message to the comms console
-
GoonStation 13 Development Team
From 620fa3f00768bcc68081c7ce8d1af49cbc2ac9f1 Mon Sep 17 00:00:00 2001
From: DeltaFire <46569814+DeltaFire15@users.noreply.github.com>
Date: Fri, 18 Oct 2024 18:50:32 +0200
Subject: [PATCH 02/14] Fixes overmap loop homing (#2708)
---
code/modules/projectiles/projectile.dm | 10 ++++++++--
nsv13/code/modules/projectiles/overmap.dm | 3 ++-
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm
index df14e6c4bc8..4c47a8aec90 100644
--- a/code/modules/projectiles/projectile.dm
+++ b/code/modules/projectiles/projectile.dm
@@ -820,8 +820,14 @@
/obj/item/projectile/proc/process_homing() //Nsv13 - Enhanced the performance of this entire proc.
if(QDELETED(homing_target)) //NSV13 - Changed proc to be less performance intensive
- return FALSE
- var/targetAngle = get_angle(src, homing_target)
+ if(homing_target) //Bla bla refclearing. Necessary evil. (Probably not worth the hassle of handling this via comsig, so this is here instead)
+ homing_target = null
+ return FALSE //Hi, Delta from the past here, future one. We don't just disable homing entirely here because some projectiles might be able to reassess targets.
+ var/targetAngle
+ if(z && SSmapping.level_trait(z, ZTRAIT_OVERMAP)) //This bit of performance cost should be worth making these track properly.
+ targetAngle = overmap_angle(src, homing_target)
+ else
+ targetAngle = get_angle(src, homing_target)
var/angle = closer_angle_difference(Angle, targetAngle)
next_homing_process = world.time + homing_delay
setAngle(Angle + CLAMP(angle, -homing_turn_speed, homing_turn_speed))
diff --git a/nsv13/code/modules/projectiles/overmap.dm b/nsv13/code/modules/projectiles/overmap.dm
index c7c08e75929..47a461b0556 100644
--- a/nsv13/code/modules/projectiles/overmap.dm
+++ b/nsv13/code/modules/projectiles/overmap.dm
@@ -3,9 +3,10 @@
var/valid_angle = 0 //Angle the projectile can track at
var/shotdown_effect_type = /obj/effect/temp_visual/impact_effect/torpedo
+//Hey look, all this logic doesn't work! I love finding these things.
/obj/item/projectile/guided_munition/process_homing(atom/A)
. = ..()
var/simplify_Angle = SIMPLIFY_DEGREES(Angle)
- var/simplify_targetAngle = SIMPLIFY_DEGREES(targetAngle)
+ var/simplify_targetAngle = SIMPLIFY_DEGREES(targetAngle) //<< This var is never actually modified because [local var] supercedes [obj var] unless src is used. Personally, I'm unsure if we actually WANT it fixed. ~Delta
if(simplify_targetAngle > simplify_Angle + valid_angle)
homing = FALSE
From 60aca75b16f756ade458158971a3861785888703 Mon Sep 17 00:00:00 2001
From: ss13-beebot <56381746+ss13-beebot@users.noreply.github.com>
Date: Fri, 18 Oct 2024 11:51:12 -0500
Subject: [PATCH 03/14] Automatic changelog generation for PR #2708 [ci skip]
---
html/changelogs/AutoChangeLog-pr-2708.yml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-2708.yml
diff --git a/html/changelogs/AutoChangeLog-pr-2708.yml b/html/changelogs/AutoChangeLog-pr-2708.yml
new file mode 100644
index 00000000000..b744a1c2f82
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-2708.yml
@@ -0,0 +1,4 @@
+author: DeltaFire15
+delete-after: true
+changes:
+ - bugfix: Overmap projectiles now correctly home across z loop borders.
From 969985b4f6c9b3b1ce90b12e448bc75fc33733f4 Mon Sep 17 00:00:00 2001
From: ss13-beebot <56381746+ss13-beebot@users.noreply.github.com>
Date: Fri, 18 Oct 2024 17:04:44 +0000
Subject: [PATCH 04/14] Automatic changelog compile [ci skip]
---
html/changelog.html | 6 ++++++
html/changelogs/.all_changelog.yml | 3 +++
html/changelogs/AutoChangeLog-pr-2708.yml | 4 ----
3 files changed, 9 insertions(+), 4 deletions(-)
delete mode 100644 html/changelogs/AutoChangeLog-pr-2708.yml
diff --git a/html/changelog.html b/html/changelog.html
index cfb87e011d1..3e7bd667805 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -56,6 +56,12 @@
-->
+
18 October 2024
+
DeltaFire15 updated:
+
+ - Overmap projectiles now correctly home across z loop borders.
+
+
10 October 2024
Bokkiewokkie updated:
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml
index 8a6f4885684..7400fae16f1 100644
--- a/html/changelogs/.all_changelog.yml
+++ b/html/changelogs/.all_changelog.yml
@@ -2180,3 +2180,6 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
Bokkiewokkie:
- imageadd: Updated icons for fighter batteries
- imageadd: Added icons for fighter targeting systems
+2024-10-18:
+ DeltaFire15:
+ - bugfix: Overmap projectiles now correctly home across z loop borders.
diff --git a/html/changelogs/AutoChangeLog-pr-2708.yml b/html/changelogs/AutoChangeLog-pr-2708.yml
deleted file mode 100644
index b744a1c2f82..00000000000
--- a/html/changelogs/AutoChangeLog-pr-2708.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: DeltaFire15
-delete-after: true
-changes:
- - bugfix: Overmap projectiles now correctly home across z loop borders.
From a6781cdf0b4994fa7610a316beb04611eacbc30e Mon Sep 17 00:00:00 2001
From: ss13-beebot <56381746+ss13-beebot@users.noreply.github.com>
Date: Sat, 26 Oct 2024 00:17:07 +0000
Subject: [PATCH 05/14] Automatic changelog compile [ci skip]
---
html/changelog.html | 20 --------------------
1 file changed, 20 deletions(-)
diff --git a/html/changelog.html b/html/changelog.html
index 3e7bd667805..eae966176c5 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -115,26 +115,6 @@ DeltaFire15 updated:
- Overmap objects when deleting have remove_ship() called for them (this should mostly only affect z carriers which drop their z or pass it to another ship).
- Overmap objects that are deleted now drop their current_system var.
-
-
24 August 2024
-
DeltaFire15 updated:
-
- - The "You are Dead" chat window popup should now be properly removed when you are not dead.
- - Broadside cannons should now always fire on the correct side.
- - Your current direction now decides which way you will face when voluntarily resting.
- - Jaws of life can now deconstruct doors like a crowbar could.
- - Cleans up some leftover code that remained after a beebase.
-
-
SerynEngi updated:
-
- - Added an ore silo to the Atlas
-
-
riquewright updated:
-
- - turf changes
- - added random ore spawns
- - pre-beebase objects and turfs
-
GoonStation 13 Development Team
From 6bd0fc4912c2e945ecf970acc43ac28ddee30eee Mon Sep 17 00:00:00 2001
From: ss13-beebot <56381746+ss13-beebot@users.noreply.github.com>
Date: Fri, 8 Nov 2024 00:16:43 +0000
Subject: [PATCH 06/14] Automatic changelog compile [ci skip]
---
html/changelog.html | 15 ---------------
1 file changed, 15 deletions(-)
diff --git a/html/changelog.html b/html/changelog.html
index eae966176c5..409cb001077 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -100,21 +100,6 @@ DeltaFire15 updated:
Naval coffee now has a weaker mood buff.
Temperature protection values returned by the getter are no longer very very slightly off the value they should be. Thanks decimal precision.
-
- 06 September 2024
- Bokkiewokkie updated:
-
- - Changed asteroid ore spawning to respect asteroid maps more
-
- DeltaFire15 updated:
-
- - Possibly fixes some weird Sabre behavior.
- - Also makes one single gun check of the plasma caster slightly safer.
- - Fixes a weird edge case with docking behavior.
- - Fixes remove_ship() assuming all remove_ship() calls were FTL based.
- - Overmap objects when deleting have remove_ship() called for them (this should mostly only affect z carriers which drop their z or pass it to another ship).
- - Overmap objects that are deleted now drop their current_system var.
-
GoonStation 13 Development Team
From 48a4882d50c23b2497324b88c18ee800699c7e69 Mon Sep 17 00:00:00 2001
From: ss13-beebot <56381746+ss13-beebot@users.noreply.github.com>
Date: Fri, 15 Nov 2024 00:18:22 +0000
Subject: [PATCH 07/14] Automatic changelog compile [ci skip]
---
html/changelog.html | 15 ---------------
1 file changed, 15 deletions(-)
diff --git a/html/changelog.html b/html/changelog.html
index 409cb001077..64ee0a9a785 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -85,21 +85,6 @@ SerynEngi and BluHNT updated:
Added new MAA hardsuit sprite
made MAA hardsuit less weapon-resistant in exchange for more speed.
-
- 13 September 2024
- DeltaFire15 updated:
-
- - Pylon-related things should no longer brick if the Pylon is destroyed due to high waste pressure.
- - Some advanced soundloop stuff might probably work better now.
- - Lizards are now coldblooded (they have no natural bodytemperature stabilization besides the environment).
- - Coldblooded creatures also have an inefficient form of thermogenesis they can use to heat up.
- - Lizards dislike the cold (<15°C / when you start shivering) and like warmth (30°C-60°C), which can affect mood.
- - Lizards no longer have a 1.5 cold damage modifier.
- - Having somebody in an aggressive grab will share temperature between the grabber and grabbed target over time (respecting insulation).
- - Drinking blood as a moth now has a weaker mood buff.
- - Naval coffee now has a weaker mood buff.
- - Temperature protection values returned by the getter are no longer very very slightly off the value they should be. Thanks decimal precision.
-
GoonStation 13 Development Team
From ba39e815e2bebe9d2560ef85333cc110462e9c27 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 22 Nov 2024 18:30:15 +0100
Subject: [PATCH 08/14] Bump webpack from 5.69.0 to 5.95.0 in /tgui (#2713)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
tgui/yarn.lock | 340 +------------------------------------------------
1 file changed, 7 insertions(+), 333 deletions(-)
diff --git a/tgui/yarn.lock b/tgui/yarn.lock
index 87e3dc8d438..6e5219f9e5b 100644
--- a/tgui/yarn.lock
+++ b/tgui/yarn.lock
@@ -2043,7 +2043,7 @@ __metadata:
languageName: node
linkType: hard
-"@jridgewell/trace-mapping@npm:^0.3.7, @jridgewell/trace-mapping@npm:^0.3.9":
+"@jridgewell/trace-mapping@npm:^0.3.9":
version: 0.3.14
resolution: "@jridgewell/trace-mapping@npm:0.3.14"
dependencies:
@@ -2223,33 +2223,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/eslint-scope@npm:^3.7.3":
- version: 3.7.3
- resolution: "@types/eslint-scope@npm:3.7.3"
- dependencies:
- "@types/eslint": "*"
- "@types/estree": "*"
- checksum: 6772b05e1b92003d1f295e81bc847a61f4fbe8ddab77ffa49e84ed3f9552513bdde677eb53ef167753901282857dd1d604d9f82eddb34a233495932b2dc3dc17
- languageName: node
- linkType: hard
-
-"@types/eslint@npm:*":
- version: 8.4.1
- resolution: "@types/eslint@npm:8.4.1"
- dependencies:
- "@types/estree": "*"
- "@types/json-schema": "*"
- checksum: b5790997ee9d3820d16350192d41849b0e2448c9e93650acac672ddf502e35c0a5a25547172a9eec840a96687cd94ba1cee672cbd86640f8f4ff1b65960d2ab9
- languageName: node
- linkType: hard
-
-"@types/estree@npm:*, @types/estree@npm:^0.0.51":
- version: 0.0.51
- resolution: "@types/estree@npm:0.0.51"
- checksum: e56a3bcf759fd9185e992e7fdb3c6a5f81e8ff120e871641607581fb3728d16c811702a7d40fa5f869b7f7b4437ab6a87eb8d98ffafeee51e85bbe955932a189
- languageName: node
- linkType: hard
-
"@types/estree@npm:^1.0.5":
version: 1.0.5
resolution: "@types/estree@npm:1.0.5"
@@ -2323,7 +2296,7 @@ __metadata:
languageName: node
linkType: hard
-"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.8":
+"@types/json-schema@npm:^7.0.8":
version: 7.0.9
resolution: "@types/json-schema@npm:7.0.9"
checksum: 259d0e25f11a21ba5c708f7ea47196bd396e379fddb79c76f9f4f62c945879dc21657904914313ec2754e443c5018ea8372362f323f30e0792897fdb2098a705
@@ -2475,16 +2448,6 @@ __metadata:
languageName: node
linkType: hard
-"@webassemblyjs/ast@npm:1.11.1":
- version: 1.11.1
- resolution: "@webassemblyjs/ast@npm:1.11.1"
- dependencies:
- "@webassemblyjs/helper-numbers": 1.11.1
- "@webassemblyjs/helper-wasm-bytecode": 1.11.1
- checksum: 1eee1534adebeece635362f8e834ae03e389281972611408d64be7895fc49f48f98fddbbb5339bf8a72cb101bcb066e8bca3ca1bf1ef47dadf89def0395a8d87
- languageName: node
- linkType: hard
-
"@webassemblyjs/ast@npm:1.12.1, @webassemblyjs/ast@npm:^1.12.1":
version: 1.12.1
resolution: "@webassemblyjs/ast@npm:1.12.1"
@@ -2495,13 +2458,6 @@ __metadata:
languageName: node
linkType: hard
-"@webassemblyjs/floating-point-hex-parser@npm:1.11.1":
- version: 1.11.1
- resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.11.1"
- checksum: b8efc6fa08e4787b7f8e682182d84dfdf8da9d9c77cae5d293818bc4a55c1f419a87fa265ab85252b3e6c1fd323d799efea68d825d341a7c365c64bc14750e97
- languageName: node
- linkType: hard
-
"@webassemblyjs/floating-point-hex-parser@npm:1.11.6":
version: 1.11.6
resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.11.6"
@@ -2509,13 +2465,6 @@ __metadata:
languageName: node
linkType: hard
-"@webassemblyjs/helper-api-error@npm:1.11.1":
- version: 1.11.1
- resolution: "@webassemblyjs/helper-api-error@npm:1.11.1"
- checksum: 0792813f0ed4a0e5ee0750e8b5d0c631f08e927f4bdfdd9fe9105dc410c786850b8c61bff7f9f515fdfb149903bec3c976a1310573a4c6866a94d49bc7271959
- languageName: node
- linkType: hard
-
"@webassemblyjs/helper-api-error@npm:1.11.6":
version: 1.11.6
resolution: "@webassemblyjs/helper-api-error@npm:1.11.6"
@@ -2523,13 +2472,6 @@ __metadata:
languageName: node
linkType: hard
-"@webassemblyjs/helper-buffer@npm:1.11.1":
- version: 1.11.1
- resolution: "@webassemblyjs/helper-buffer@npm:1.11.1"
- checksum: a337ee44b45590c3a30db5a8b7b68a717526cf967ada9f10253995294dbd70a58b2da2165222e0b9830cd4fc6e4c833bf441a721128d1fe2e9a7ab26b36003ce
- languageName: node
- linkType: hard
-
"@webassemblyjs/helper-buffer@npm:1.12.1":
version: 1.12.1
resolution: "@webassemblyjs/helper-buffer@npm:1.12.1"
@@ -2537,17 +2479,6 @@ __metadata:
languageName: node
linkType: hard
-"@webassemblyjs/helper-numbers@npm:1.11.1":
- version: 1.11.1
- resolution: "@webassemblyjs/helper-numbers@npm:1.11.1"
- dependencies:
- "@webassemblyjs/floating-point-hex-parser": 1.11.1
- "@webassemblyjs/helper-api-error": 1.11.1
- "@xtuc/long": 4.2.2
- checksum: 44d2905dac2f14d1e9b5765cf1063a0fa3d57295c6d8930f6c59a36462afecc6e763e8a110b97b342a0f13376166c5d41aa928e6ced92e2f06b071fd0db59d3a
- languageName: node
- linkType: hard
-
"@webassemblyjs/helper-numbers@npm:1.11.6":
version: 1.11.6
resolution: "@webassemblyjs/helper-numbers@npm:1.11.6"
@@ -2559,13 +2490,6 @@ __metadata:
languageName: node
linkType: hard
-"@webassemblyjs/helper-wasm-bytecode@npm:1.11.1":
- version: 1.11.1
- resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.11.1"
- checksum: eac400113127832c88f5826bcc3ad1c0db9b3dbd4c51a723cfdb16af6bfcbceb608170fdaac0ab7731a7e18b291be7af68a47fcdb41cfe0260c10857e7413d97
- languageName: node
- linkType: hard
-
"@webassemblyjs/helper-wasm-bytecode@npm:1.11.6":
version: 1.11.6
resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.11.6"
@@ -2573,18 +2497,6 @@ __metadata:
languageName: node
linkType: hard
-"@webassemblyjs/helper-wasm-section@npm:1.11.1":
- version: 1.11.1
- resolution: "@webassemblyjs/helper-wasm-section@npm:1.11.1"
- dependencies:
- "@webassemblyjs/ast": 1.11.1
- "@webassemblyjs/helper-buffer": 1.11.1
- "@webassemblyjs/helper-wasm-bytecode": 1.11.1
- "@webassemblyjs/wasm-gen": 1.11.1
- checksum: 617696cfe8ecaf0532763162aaf748eb69096fb27950219bb87686c6b2e66e11cd0614d95d319d0ab1904bc14ebe4e29068b12c3e7c5e020281379741fe4bedf
- languageName: node
- linkType: hard
-
"@webassemblyjs/helper-wasm-section@npm:1.12.1":
version: 1.12.1
resolution: "@webassemblyjs/helper-wasm-section@npm:1.12.1"
@@ -2597,15 +2509,6 @@ __metadata:
languageName: node
linkType: hard
-"@webassemblyjs/ieee754@npm:1.11.1":
- version: 1.11.1
- resolution: "@webassemblyjs/ieee754@npm:1.11.1"
- dependencies:
- "@xtuc/ieee754": ^1.2.0
- checksum: 23a0ac02a50f244471631802798a816524df17e56b1ef929f0c73e3cde70eaf105a24130105c60aff9d64a24ce3b640dad443d6f86e5967f922943a7115022ec
- languageName: node
- linkType: hard
-
"@webassemblyjs/ieee754@npm:1.11.6":
version: 1.11.6
resolution: "@webassemblyjs/ieee754@npm:1.11.6"
@@ -2615,15 +2518,6 @@ __metadata:
languageName: node
linkType: hard
-"@webassemblyjs/leb128@npm:1.11.1":
- version: 1.11.1
- resolution: "@webassemblyjs/leb128@npm:1.11.1"
- dependencies:
- "@xtuc/long": 4.2.2
- checksum: 33ccc4ade2f24de07bf31690844d0b1ad224304ee2062b0e464a610b0209c79e0b3009ac190efe0e6bd568b0d1578d7c3047fc1f9d0197c92fc061f56224ff4a
- languageName: node
- linkType: hard
-
"@webassemblyjs/leb128@npm:1.11.6":
version: 1.11.6
resolution: "@webassemblyjs/leb128@npm:1.11.6"
@@ -2633,13 +2527,6 @@ __metadata:
languageName: node
linkType: hard
-"@webassemblyjs/utf8@npm:1.11.1":
- version: 1.11.1
- resolution: "@webassemblyjs/utf8@npm:1.11.1"
- checksum: 972c5cfc769d7af79313a6bfb96517253a270a4bf0c33ba486aa43cac43917184fb35e51dfc9e6b5601548cd5931479a42e42c89a13bb591ffabebf30c8a6a0b
- languageName: node
- linkType: hard
-
"@webassemblyjs/utf8@npm:1.11.6":
version: 1.11.6
resolution: "@webassemblyjs/utf8@npm:1.11.6"
@@ -2647,22 +2534,6 @@ __metadata:
languageName: node
linkType: hard
-"@webassemblyjs/wasm-edit@npm:1.11.1":
- version: 1.11.1
- resolution: "@webassemblyjs/wasm-edit@npm:1.11.1"
- dependencies:
- "@webassemblyjs/ast": 1.11.1
- "@webassemblyjs/helper-buffer": 1.11.1
- "@webassemblyjs/helper-wasm-bytecode": 1.11.1
- "@webassemblyjs/helper-wasm-section": 1.11.1
- "@webassemblyjs/wasm-gen": 1.11.1
- "@webassemblyjs/wasm-opt": 1.11.1
- "@webassemblyjs/wasm-parser": 1.11.1
- "@webassemblyjs/wast-printer": 1.11.1
- checksum: 6d7d9efaec1227e7ef7585a5d7ff0be5f329f7c1c6b6c0e906b18ed2e9a28792a5635e450aca2d136770d0207225f204eff70a4b8fd879d3ac79e1dcc26dbeb9
- languageName: node
- linkType: hard
-
"@webassemblyjs/wasm-edit@npm:^1.12.1":
version: 1.12.1
resolution: "@webassemblyjs/wasm-edit@npm:1.12.1"
@@ -2679,19 +2550,6 @@ __metadata:
languageName: node
linkType: hard
-"@webassemblyjs/wasm-gen@npm:1.11.1":
- version: 1.11.1
- resolution: "@webassemblyjs/wasm-gen@npm:1.11.1"
- dependencies:
- "@webassemblyjs/ast": 1.11.1
- "@webassemblyjs/helper-wasm-bytecode": 1.11.1
- "@webassemblyjs/ieee754": 1.11.1
- "@webassemblyjs/leb128": 1.11.1
- "@webassemblyjs/utf8": 1.11.1
- checksum: 1f6921e640293bf99fb16b21e09acb59b340a79f986c8f979853a0ae9f0b58557534b81e02ea2b4ef11e929d946708533fd0693c7f3712924128fdafd6465f5b
- languageName: node
- linkType: hard
-
"@webassemblyjs/wasm-gen@npm:1.12.1":
version: 1.12.1
resolution: "@webassemblyjs/wasm-gen@npm:1.12.1"
@@ -2705,18 +2563,6 @@ __metadata:
languageName: node
linkType: hard
-"@webassemblyjs/wasm-opt@npm:1.11.1":
- version: 1.11.1
- resolution: "@webassemblyjs/wasm-opt@npm:1.11.1"
- dependencies:
- "@webassemblyjs/ast": 1.11.1
- "@webassemblyjs/helper-buffer": 1.11.1
- "@webassemblyjs/wasm-gen": 1.11.1
- "@webassemblyjs/wasm-parser": 1.11.1
- checksum: 21586883a20009e2b20feb67bdc451bbc6942252e038aae4c3a08e6f67b6bae0f5f88f20bfc7bd0452db5000bacaf5ab42b98cf9aa034a6c70e9fc616142e1db
- languageName: node
- linkType: hard
-
"@webassemblyjs/wasm-opt@npm:1.12.1":
version: 1.12.1
resolution: "@webassemblyjs/wasm-opt@npm:1.12.1"
@@ -2729,20 +2575,6 @@ __metadata:
languageName: node
linkType: hard
-"@webassemblyjs/wasm-parser@npm:1.11.1":
- version: 1.11.1
- resolution: "@webassemblyjs/wasm-parser@npm:1.11.1"
- dependencies:
- "@webassemblyjs/ast": 1.11.1
- "@webassemblyjs/helper-api-error": 1.11.1
- "@webassemblyjs/helper-wasm-bytecode": 1.11.1
- "@webassemblyjs/ieee754": 1.11.1
- "@webassemblyjs/leb128": 1.11.1
- "@webassemblyjs/utf8": 1.11.1
- checksum: 1521644065c360e7b27fad9f4bb2df1802d134dd62937fa1f601a1975cde56bc31a57b6e26408b9ee0228626ff3ba1131ae6f74ffb7d718415b6528c5a6dbfc2
- languageName: node
- linkType: hard
-
"@webassemblyjs/wasm-parser@npm:1.12.1, @webassemblyjs/wasm-parser@npm:^1.12.1":
version: 1.12.1
resolution: "@webassemblyjs/wasm-parser@npm:1.12.1"
@@ -2757,16 +2589,6 @@ __metadata:
languageName: node
linkType: hard
-"@webassemblyjs/wast-printer@npm:1.11.1":
- version: 1.11.1
- resolution: "@webassemblyjs/wast-printer@npm:1.11.1"
- dependencies:
- "@webassemblyjs/ast": 1.11.1
- "@xtuc/long": 4.2.2
- checksum: f15ae4c2441b979a3b4fce78f3d83472fb22350c6dc3fd34bfe7c3da108e0b2360718734d961bba20e7716cb8578e964b870da55b035e209e50ec9db0378a3f7
- languageName: node
- linkType: hard
-
"@webassemblyjs/wast-printer@npm:1.12.1":
version: 1.12.1
resolution: "@webassemblyjs/wast-printer@npm:1.12.1"
@@ -2871,15 +2693,6 @@ __metadata:
languageName: node
linkType: hard
-"acorn-import-assertions@npm:^1.7.6":
- version: 1.8.0
- resolution: "acorn-import-assertions@npm:1.8.0"
- peerDependencies:
- acorn: ^8
- checksum: 5c4cf7c850102ba7ae0eeae0deb40fb3158c8ca5ff15c0bca43b5c47e307a1de3d8ef761788f881343680ea374631ae9e9615ba8876fee5268dbe068c98bcba6
- languageName: node
- linkType: hard
-
"acorn-import-attributes@npm:^1.9.5":
version: 1.9.5
resolution: "acorn-import-attributes@npm:1.9.5"
@@ -2905,7 +2718,7 @@ __metadata:
languageName: node
linkType: hard
-"acorn@npm:^8.0.4, acorn@npm:^8.4.1, acorn@npm:^8.5.0":
+"acorn@npm:^8.0.4, acorn@npm:^8.5.0":
version: 8.7.0
resolution: "acorn@npm:8.7.0"
bin:
@@ -3421,21 +3234,6 @@ __metadata:
languageName: node
linkType: hard
-"browserslist@npm:^4.14.5":
- version: 4.19.1
- resolution: "browserslist@npm:4.19.1"
- dependencies:
- caniuse-lite: ^1.0.30001286
- electron-to-chromium: ^1.4.17
- escalade: ^3.1.1
- node-releases: ^2.0.1
- picocolors: ^1.0.0
- bin:
- browserslist: cli.js
- checksum: c0777fd483691638fd6801e16c9d809e1d65f6d2b06db2e806654be51045cbab1452a89841a2c5caea2cbe19d621b4f1d391cffbb24512aa33280039ab345875
- languageName: node
- linkType: hard
-
"browserslist@npm:^4.21.10":
version: 4.23.3
resolution: "browserslist@npm:4.23.3"
@@ -3592,13 +3390,6 @@ __metadata:
languageName: node
linkType: hard
-"caniuse-lite@npm:^1.0.30001286":
- version: 1.0.30001312
- resolution: "caniuse-lite@npm:1.0.30001312"
- checksum: 753fb9ea1e02e999430b323a71b5acab5120f3b5fc0161b01669f54a3ef5c5296240b6ae9b79b12a3742e3aed216aa9ee3d5398a23c16d08625ccd376b79545d
- languageName: node
- linkType: hard
-
"caniuse-lite@npm:^1.0.30001449":
version: 1.0.30001460
resolution: "caniuse-lite@npm:1.0.30001460"
@@ -4245,13 +4036,6 @@ __metadata:
languageName: node
linkType: hard
-"electron-to-chromium@npm:^1.4.17":
- version: 1.4.71
- resolution: "electron-to-chromium@npm:1.4.71"
- checksum: ecb2546eed6b0e95003d787c259de730f32e2f5c0fa2acb27069c0cd21378cbc2a6c7516f4ec677a5960db4e180644f87ed91a729825a238454e31e4e74617db
- languageName: node
- linkType: hard
-
"electron-to-chromium@npm:^1.4.284":
version: 1.4.320
resolution: "electron-to-chromium@npm:1.4.320"
@@ -4320,16 +4104,6 @@ __metadata:
languageName: node
linkType: hard
-"enhanced-resolve@npm:^5.9.0":
- version: 5.9.0
- resolution: "enhanced-resolve@npm:5.9.0"
- dependencies:
- graceful-fs: ^4.2.4
- tapable: ^2.2.0
- checksum: 06435f52670229eb7fd8d92ea2d988a275f9a1b8c08b9023ba45767c6ed844bc87aa9c9c7e6d044eef99ad73fc3b066b78101163696e5c53121909e5bf8efe8b
- languageName: node
- linkType: hard
-
"entities@npm:^4.4.0":
version: 4.4.0
resolution: "entities@npm:4.4.0"
@@ -4438,13 +4212,6 @@ __metadata:
languageName: node
linkType: hard
-"es-module-lexer@npm:^0.9.0":
- version: 0.9.3
- resolution: "es-module-lexer@npm:0.9.3"
- checksum: 84bbab23c396281db2c906c766af58b1ae2a1a2599844a504df10b9e8dc77ec800b3211fdaa133ff700f5703d791198807bba25d9667392d27a5e9feda344da8
- languageName: node
- linkType: hard
-
"es-module-lexer@npm:^1.2.1":
version: 1.5.4
resolution: "es-module-lexer@npm:1.5.4"
@@ -6852,13 +6619,6 @@ __metadata:
languageName: node
linkType: hard
-"json-parse-better-errors@npm:^1.0.2":
- version: 1.0.2
- resolution: "json-parse-better-errors@npm:1.0.2"
- checksum: ff2b5ba2a70e88fd97a3cb28c1840144c5ce8fae9cbeeddba15afa333a5c407cf0e42300cd0a2885dbb055227fe68d405070faad941beeffbfde9cf3b2c78c5d
- languageName: node
- linkType: hard
-
"json-parse-even-better-errors@npm:^2.3.0, json-parse-even-better-errors@npm:^2.3.1":
version: 2.3.1
resolution: "json-parse-even-better-errors@npm:2.3.1"
@@ -7543,13 +7303,6 @@ __metadata:
languageName: node
linkType: hard
-"node-releases@npm:^2.0.1":
- version: 2.0.2
- resolution: "node-releases@npm:2.0.2"
- checksum: da858bf86b4d512842379749f5a5e4196ddab05ba18ffcf29f05bf460beceaca927f070f4430bb5046efec18941ddbc85e4c5fdbb83afc28a38dd6069a2f255e
- languageName: node
- linkType: hard
-
"node-releases@npm:^2.0.18":
version: 2.0.18
resolution: "node-releases@npm:2.0.18"
@@ -8724,7 +8477,7 @@ __metadata:
languageName: node
linkType: hard
-"schema-utils@npm:^3.0.0, schema-utils@npm:^3.1.0, schema-utils@npm:^3.1.1":
+"schema-utils@npm:^3.0.0, schema-utils@npm:^3.1.1":
version: 3.1.1
resolution: "schema-utils@npm:3.1.1"
dependencies:
@@ -8828,15 +8581,6 @@ __metadata:
languageName: node
linkType: hard
-"serialize-javascript@npm:^6.0.0":
- version: 6.0.0
- resolution: "serialize-javascript@npm:6.0.0"
- dependencies:
- randombytes: ^2.1.0
- checksum: 56f90b562a1bdc92e55afb3e657c6397c01a902c588c0fe3d4c490efdcc97dcd2a3074ba12df9e94630f33a5ce5b76a74784a7041294628a6f4306e0ec84bf93
- languageName: node
- linkType: hard
-
"serialize-javascript@npm:^6.0.1":
version: 6.0.1
resolution: "serialize-javascript@npm:6.0.1"
@@ -9358,28 +9102,6 @@ __metadata:
languageName: node
linkType: hard
-"terser-webpack-plugin@npm:^5.1.3":
- version: 5.3.3
- resolution: "terser-webpack-plugin@npm:5.3.3"
- dependencies:
- "@jridgewell/trace-mapping": ^0.3.7
- jest-worker: ^27.4.5
- schema-utils: ^3.1.1
- serialize-javascript: ^6.0.0
- terser: ^5.7.2
- peerDependencies:
- webpack: ^5.1.0
- peerDependenciesMeta:
- "@swc/core":
- optional: true
- esbuild:
- optional: true
- uglify-js:
- optional: true
- checksum: 4b8d508d8a0f6e604addb286975f1fa670f8c3964a67abc03a7cfcfd4cdeca4b07dda6655e1c4425427fb62e4d2b0ca59d84f1b2cd83262ff73616d5d3ccdeb5
- languageName: node
- linkType: hard
-
"terser-webpack-plugin@npm:^5.3.10":
version: 5.3.10
resolution: "terser-webpack-plugin@npm:5.3.10"
@@ -9568,7 +9290,6 @@ __metadata:
ts-plugin-inferno: ^1.1.0
typescript: ^4.9.5
url-loader: ^4.1.1
- webpack: ^5.94.0
webpack-bundle-analyzer: ^4.8.0
webpack-cli: ^5.0.1
languageName: unknown
@@ -10098,16 +9819,6 @@ __metadata:
languageName: node
linkType: hard
-"watchpack@npm:^2.3.1":
- version: 2.3.1
- resolution: "watchpack@npm:2.3.1"
- dependencies:
- glob-to-regexp: ^0.4.1
- graceful-fs: ^4.1.2
- checksum: 70a34f92842d94b5d842980f866d568d7a467de667c96ae5759c759f46587e49265863171f4650bdbafc5f3870a28f2b4453e9e847098ec4b718b38926d47d22
- languageName: node
- linkType: hard
-
"watchpack@npm:^2.4.1":
version: 2.4.2
resolution: "watchpack@npm:2.4.2"
@@ -10195,45 +9906,8 @@ __metadata:
linkType: hard
"webpack@npm:^5":
- version: 5.69.0
- resolution: "webpack@npm:5.69.0"
- dependencies:
- "@types/eslint-scope": ^3.7.3
- "@types/estree": ^0.0.51
- "@webassemblyjs/ast": 1.11.1
- "@webassemblyjs/wasm-edit": 1.11.1
- "@webassemblyjs/wasm-parser": 1.11.1
- acorn: ^8.4.1
- acorn-import-assertions: ^1.7.6
- browserslist: ^4.14.5
- chrome-trace-event: ^1.0.2
- enhanced-resolve: ^5.9.0
- es-module-lexer: ^0.9.0
- eslint-scope: 5.1.1
- events: ^3.2.0
- glob-to-regexp: ^0.4.1
- graceful-fs: ^4.2.9
- json-parse-better-errors: ^1.0.2
- loader-runner: ^4.2.0
- mime-types: ^2.1.27
- neo-async: ^2.6.2
- schema-utils: ^3.1.0
- tapable: ^2.1.1
- terser-webpack-plugin: ^5.1.3
- watchpack: ^2.3.1
- webpack-sources: ^3.2.3
- peerDependenciesMeta:
- webpack-cli:
- optional: true
- bin:
- webpack: bin/webpack.js
- checksum: 0b0fc2ffcb926fc7506ec56901ae9a69f1ae969a6afc63395a3ed56f938d385c1d16d1dea39fd56dbb9362189c05da49174219904e5a337040aed5a46080e926
- languageName: node
- linkType: hard
-
-"webpack@npm:^5.94.0":
- version: 5.94.0
- resolution: "webpack@npm:5.94.0"
+ version: 5.95.0
+ resolution: "webpack@npm:5.95.0"
dependencies:
"@types/estree": ^1.0.5
"@webassemblyjs/ast": ^1.12.1
@@ -10263,7 +9937,7 @@ __metadata:
optional: true
bin:
webpack: bin/webpack.js
- checksum: 6a3d667be304a69cd6dcb8d676bc29f47642c0d389af514cfcd646eaaa809961bc6989fc4b2621a717dfc461130f29c6e20006d62a32e012dafaa9517813a4e6
+ checksum: 0c3dfe288de4d62f8f3dc25478a618894883cab739121330763b7847e43304630ea2815ae2351a5f8ff6ab7c9642caf530d503d89bda261fe2cd220e524dd5d1
languageName: node
linkType: hard
From 82ee5e771f02926a685f2a7d2c730cdb66d33780 Mon Sep 17 00:00:00 2001
From: Bokkiewokkie
Date: Fri, 22 Nov 2024 18:58:08 +0100
Subject: [PATCH 09/14] Fixes that one thing why did you do that dependabot
---
tgui/yarn.lock | 131 ++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 130 insertions(+), 1 deletion(-)
diff --git a/tgui/yarn.lock b/tgui/yarn.lock
index 6e5219f9e5b..62354be2031 100644
--- a/tgui/yarn.lock
+++ b/tgui/yarn.lock
@@ -2223,6 +2223,33 @@ __metadata:
languageName: node
linkType: hard
+"@types/eslint-scope@npm:^3.7.7":
+ version: 3.7.7
+ resolution: "@types/eslint-scope@npm:3.7.7"
+ dependencies:
+ "@types/eslint": "*"
+ "@types/estree": "*"
+ checksum: e2889a124aaab0b89af1bab5959847c5bec09809209255de0e63b9f54c629a94781daa04adb66bffcdd742f5e25a17614fb933965093c0eea64aacda4309380e
+ languageName: node
+ linkType: hard
+
+"@types/eslint@npm:*":
+ version: 9.6.1
+ resolution: "@types/eslint@npm:9.6.1"
+ dependencies:
+ "@types/estree": "*"
+ "@types/json-schema": "*"
+ checksum: c286e79707ab604b577cf8ce51d9bbb9780e3d6a68b38a83febe13fa05b8012c92de17c28532fac2b03d3c460123f5055d603a579685325246ca1c86828223e0
+ languageName: node
+ linkType: hard
+
+"@types/estree@npm:*, @types/estree@npm:^1.0.6":
+ version: 1.0.6
+ resolution: "@types/estree@npm:1.0.6"
+ checksum: 8825d6e729e16445d9a1dd2fb1db2edc5ed400799064cd4d028150701031af012ba30d6d03fe9df40f4d7a437d0de6d2b256020152b7b09bde9f2e420afdffd9
+ languageName: node
+ linkType: hard
+
"@types/estree@npm:^1.0.5":
version: 1.0.5
resolution: "@types/estree@npm:1.0.5"
@@ -2296,6 +2323,13 @@ __metadata:
languageName: node
linkType: hard
+"@types/json-schema@npm:*":
+ version: 7.0.15
+ resolution: "@types/json-schema@npm:7.0.15"
+ checksum: 97ed0cb44d4070aecea772b7b2e2ed971e10c81ec87dd4ecc160322ffa55ff330dace1793489540e3e318d90942064bb697cc0f8989391797792d919737b3b98
+ languageName: node
+ linkType: hard
+
"@types/json-schema@npm:^7.0.8":
version: 7.0.9
resolution: "@types/json-schema@npm:7.0.9"
@@ -2736,6 +2770,15 @@ __metadata:
languageName: node
linkType: hard
+"acorn@npm:^8.14.0":
+ version: 8.14.0
+ resolution: "acorn@npm:8.14.0"
+ bin:
+ acorn: bin/acorn
+ checksum: 8755074ba55fff94e84e81c72f1013c2d9c78e973c31231c8ae505a5f966859baf654bddd75046bffd73ce816b149298977fff5077a3033dedba0ae2aad152d4
+ languageName: node
+ linkType: hard
+
"agent-base@npm:6, agent-base@npm:^6.0.2":
version: 6.0.2
resolution: "agent-base@npm:6.0.2"
@@ -3262,6 +3305,20 @@ __metadata:
languageName: node
linkType: hard
+"browserslist@npm:^4.24.0":
+ version: 4.24.2
+ resolution: "browserslist@npm:4.24.2"
+ dependencies:
+ caniuse-lite: ^1.0.30001669
+ electron-to-chromium: ^1.5.41
+ node-releases: ^2.0.18
+ update-browserslist-db: ^1.1.1
+ bin:
+ browserslist: cli.js
+ checksum: cf64085f12132d38638f38937a255edb82c7551b164a98577b055dd79719187a816112f7b97b9739e400c4954cd66479c0d7a843cb816e346f4795dc24fd5d97
+ languageName: node
+ linkType: hard
+
"bser@npm:2.1.1":
version: 2.1.1
resolution: "bser@npm:2.1.1"
@@ -3404,6 +3461,13 @@ __metadata:
languageName: node
linkType: hard
+"caniuse-lite@npm:^1.0.30001669":
+ version: 1.0.30001683
+ resolution: "caniuse-lite@npm:1.0.30001683"
+ checksum: 66c5d4882f1e1a251b1fe63f8dc530165e980f11681cd96851c3da68d3464e66dc28479c4c0aaa6a1a781f96db451207688f4b57904b3d07cfd28ae306d34122
+ languageName: node
+ linkType: hard
+
"capital-case@npm:^1.0.4":
version: 1.0.4
resolution: "capital-case@npm:1.0.4"
@@ -4050,6 +4114,13 @@ __metadata:
languageName: node
linkType: hard
+"electron-to-chromium@npm:^1.5.41":
+ version: 1.5.64
+ resolution: "electron-to-chromium@npm:1.5.64"
+ checksum: 9a866dcd2b480fee0d3a265318b1227cbaf1ee236cbb7aa09306b7cb8a6c21c069a8001dff1183e5a85214636a04a856a7d90e0ff3860bf86c9cbc44a69f59bb
+ languageName: node
+ linkType: hard
+
"emittery@npm:^0.13.1":
version: 0.13.1
resolution: "emittery@npm:0.13.1"
@@ -4302,7 +4373,7 @@ __metadata:
languageName: node
linkType: hard
-"escalade@npm:^3.1.2":
+"escalade@npm:^3.1.2, escalade@npm:^3.2.0":
version: 3.2.0
resolution: "escalade@npm:3.2.0"
checksum: 47b029c83de01b0d17ad99ed766347b974b0d628e848de404018f3abee728e987da0d2d370ad4574aa3d5b5bfc368754fd085d69a30f8e75903486ec4b5b709e
@@ -7717,6 +7788,13 @@ __metadata:
languageName: node
linkType: hard
+"picocolors@npm:^1.1.0":
+ version: 1.1.1
+ resolution: "picocolors@npm:1.1.1"
+ checksum: e1cf46bf84886c79055fdfa9dcb3e4711ad259949e3565154b004b260cd356c5d54b31a1437ce9782624bf766272fe6b0154f5f0c744fb7af5d454d2b60db045
+ languageName: node
+ linkType: hard
+
"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1":
version: 2.3.1
resolution: "picomatch@npm:2.3.1"
@@ -9290,6 +9368,7 @@ __metadata:
ts-plugin-inferno: ^1.1.0
typescript: ^4.9.5
url-loader: ^4.1.1
+ webpack: ^5.94.0
webpack-bundle-analyzer: ^4.8.0
webpack-cli: ^5.0.1
languageName: unknown
@@ -9717,6 +9796,20 @@ __metadata:
languageName: node
linkType: hard
+"update-browserslist-db@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "update-browserslist-db@npm:1.1.1"
+ dependencies:
+ escalade: ^3.2.0
+ picocolors: ^1.1.0
+ peerDependencies:
+ browserslist: ">= 4.21.0"
+ bin:
+ update-browserslist-db: cli.js
+ checksum: 2ea11bd2562122162c3e438d83a1f9125238c0844b6d16d366e3276d0c0acac6036822dc7df65fc5a89c699cdf9f174acf439c39bedf3f9a2f3983976e4b4c3e
+ languageName: node
+ linkType: hard
+
"upper-case-first@npm:^2.0.2":
version: 2.0.2
resolution: "upper-case-first@npm:2.0.2"
@@ -9941,6 +10034,42 @@ __metadata:
languageName: node
linkType: hard
+"webpack@npm:^5.94.0":
+ version: 5.96.1
+ resolution: "webpack@npm:5.96.1"
+ dependencies:
+ "@types/eslint-scope": ^3.7.7
+ "@types/estree": ^1.0.6
+ "@webassemblyjs/ast": ^1.12.1
+ "@webassemblyjs/wasm-edit": ^1.12.1
+ "@webassemblyjs/wasm-parser": ^1.12.1
+ acorn: ^8.14.0
+ browserslist: ^4.24.0
+ chrome-trace-event: ^1.0.2
+ enhanced-resolve: ^5.17.1
+ es-module-lexer: ^1.2.1
+ eslint-scope: 5.1.1
+ events: ^3.2.0
+ glob-to-regexp: ^0.4.1
+ graceful-fs: ^4.2.11
+ json-parse-even-better-errors: ^2.3.1
+ loader-runner: ^4.2.0
+ mime-types: ^2.1.27
+ neo-async: ^2.6.2
+ schema-utils: ^3.2.0
+ tapable: ^2.1.1
+ terser-webpack-plugin: ^5.3.10
+ watchpack: ^2.4.1
+ webpack-sources: ^3.2.3
+ peerDependenciesMeta:
+ webpack-cli:
+ optional: true
+ bin:
+ webpack: bin/webpack.js
+ checksum: ec3662f64895fae408440a997f87299e374c9d9f911f77b880bab46402f52221c7836bdf101fc2556338d07fc7cb86da50661f944eb1d1041a8361a5b9247876
+ languageName: node
+ linkType: hard
+
"whatwg-encoding@npm:^2.0.0":
version: 2.0.0
resolution: "whatwg-encoding@npm:2.0.0"
From 5db2119ee7b3a3c99efa90a6328b077b5e9f299c Mon Sep 17 00:00:00 2001
From: ss13-beebot <56381746+ss13-beebot@users.noreply.github.com>
Date: Thu, 28 Nov 2024 00:18:31 +0000
Subject: [PATCH 10/14] Automatic changelog compile [ci skip]
---
html/changelog.html | 17 -----------------
1 file changed, 17 deletions(-)
diff --git a/html/changelog.html b/html/changelog.html
index 64ee0a9a785..1b93b66f4c9 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -68,23 +68,6 @@ Bokkiewokkie updated:
Updated icons for fighter batteries
Added icons for fighter targeting systems
-
- 26 September 2024
- Bokkiewokkie updated:
-
- DeltaFire15 updated:
-
- - The NSV-specific achievements should work now.
- - Some more NSV-specific achievements.
- - Replaced a dist call for overmap singularities with the proper version.
-
- SerynEngi and BluHNT updated:
-
- - Added new MAA hardsuit sprite
- - made MAA hardsuit less weapon-resistant in exchange for more speed.
-
GoonStation 13 Development Team
From 439725f354fab9b97ff114721b5d094c7e1e0917 Mon Sep 17 00:00:00 2001
From: Bokkiewokkie <43698041+Bokkiewokkie@users.noreply.github.com>
Date: Thu, 28 Nov 2024 15:45:37 +0100
Subject: [PATCH 11/14] Update TGS DMAPI (#2716)
Co-authored-by: ss13-beebot <56381746+ss13-beebot@users.noreply.github.com>
---
code/__DEFINES/tgs.dm | 100 ++++++++++++++------
code/modules/tgs/README.md | 2 +-
code/modules/tgs/core/README.md | 2 +-
code/modules/tgs/core/byond_world_export.dm | 22 +++++
code/modules/tgs/core/core.dm | 7 +-
code/modules/tgs/core/datum.dm | 2 +-
code/modules/tgs/includes.dm | 1 +
code/modules/tgs/v5/__interop_version.dm | 2 +-
code/modules/tgs/v5/_defines.dm | 1 +
code/modules/tgs/v5/api.dm | 7 +-
code/modules/tgs/v5/bridge.dm | 21 ++--
code/modules/tgs/v5/topic.dm | 4 +-
code/modules/tgs/v5/undefs.dm | 2 +-
13 files changed, 125 insertions(+), 48 deletions(-)
create mode 100644 code/modules/tgs/core/byond_world_export.dm
diff --git a/code/__DEFINES/tgs.dm b/code/__DEFINES/tgs.dm
index e2c89df90e9..42f2d5fc31f 100644
--- a/code/__DEFINES/tgs.dm
+++ b/code/__DEFINES/tgs.dm
@@ -1,18 +1,19 @@
// tgstation-server DMAPI
+// The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in IETF RFC 2119.
-#define TGS_DMAPI_VERSION "7.1.2"
+#define TGS_DMAPI_VERSION "7.3.0"
// All functions and datums outside this document are subject to change with any version and should not be relied on.
// CONFIGURATION
-/// Create this define if you want to do TGS configuration outside of this file.
+/// Consumers SHOULD create this define if you want to do TGS configuration outside of this file.
#ifndef TGS_EXTERNAL_CONFIGURATION
-// Comment this out once you've filled in the below.
+// Consumers MUST comment this out once you've filled in the below and are not using [TGS_EXTERNAL_CONFIGURATION].
#error TGS API unconfigured
-// Uncomment this if you wish to allow the game to interact with TGS 3..
+// Consumers MUST uncomment this if you wish to allow the game to interact with TGS version 3.
// This will raise the minimum required security level of your game to TGS_SECURITY_TRUSTED due to it utilizing call()().
//#define TGS_V3_API
@@ -52,7 +53,7 @@
#ifndef TGS_FILE2TEXT_NATIVE
#ifdef file2text
-#error Your codebase is re-defining the BYOND proc file2text. The DMAPI requires the native version to read the result of world.Export(). You can fix this by adding "#define TGS_FILE2TEXT_NATIVE file2text" before your override of file2text to allow the DMAPI to use the native version. This will only be used for world.Export(), not regular file accesses
+#error Your codebase is re-defining the BYOND proc file2text. The DMAPI requires the native version to read the result of world.Export(). You SHOULD fix this by adding "#define TGS_FILE2TEXT_NATIVE file2text" before your override of file2text to allow the DMAPI to use the native version. This will only be used for world.Export(), not regular file accesses
#endif
#define TGS_FILE2TEXT_NATIVE file2text
#endif
@@ -152,16 +153,17 @@
//REQUIRED HOOKS
/**
- * Call this somewhere in [/world/proc/New] that is always run. This function may sleep!
+ * Consumers MUST call this somewhere in [/world/proc/New] that is always run. This function may sleep!
*
* * event_handler - Optional user defined [/datum/tgs_event_handler].
* * minimum_required_security_level: The minimum required security level to run the game in which the DMAPI is integrated. Can be one of [TGS_SECURITY_ULTRASAFE], [TGS_SECURITY_SAFE], or [TGS_SECURITY_TRUSTED].
+ * * http_handler - Optional user defined [/datum/tgs_http_handler].
*/
-/world/proc/TgsNew(datum/tgs_event_handler/event_handler, minimum_required_security_level = TGS_SECURITY_ULTRASAFE)
+/world/proc/TgsNew(datum/tgs_event_handler/event_handler, minimum_required_security_level = TGS_SECURITY_ULTRASAFE, datum/tgs_http_handler/http_handler)
return
/**
- * Call this when your initializations are complete and your game is ready to play before any player interactions happen.
+ * Consumers MUST call this when world initializations are complete and the game is ready to play before any player interactions happen.
*
* This may use [/world/var/sleep_offline] to make this happen so ensure no changes are made to it while this call is running.
* Afterwards, consider explicitly setting it to what you want to avoid this BYOND bug: http://www.byond.com/forum/post/2575184
@@ -170,12 +172,10 @@
/world/proc/TgsInitializationComplete()
return
-/// Put this at the start of [/world/proc/Topic].
+/// Consumers MUST run this macro at the start of [/world/proc/Topic].
#define TGS_TOPIC var/tgs_topic_return = TgsTopic(args[1]); if(tgs_topic_return) return tgs_topic_return
-/**
- * Call this as late as possible in [world/proc/Reboot] (BEFORE ..()).
- */
+/// Consumers MUST call this as late as possible in [world/proc/Reboot] (BEFORE ..()).
/world/proc/TgsReboot()
return
@@ -269,7 +269,7 @@
/// The [/datum/tgs_chat_channel] the user was from.
var/datum/tgs_chat_channel/channel
-/// User definable handler for TGS events.
+/// User definable handler for TGS events This abstract version SHOULD be overridden to be used.
/datum/tgs_event_handler
/// If the handler receieves [TGS_EVENT_HEALTH_CHECK] events.
var/receive_health_checks = FALSE
@@ -283,7 +283,41 @@
set waitfor = FALSE
return
-/// User definable chat command.
+/// User definable handler for HTTP calls. This abstract version MUST be overridden to be used.
+/datum/tgs_http_handler
+
+/**
+ * User definable callback for executing HTTP GET requests.
+ * MUST perform BYOND sleeps while the request is in flight.
+ * MUST return a [/datum/tgs_http_result].
+ * SHOULD log its own errors
+ *
+ * url - The full URL to execute the GET request for including query parameters.
+ */
+/datum/tgs_http_handler/proc/PerformGet(url)
+ CRASH("[type]/PerformGet not implemented!")
+
+/// Result of a [/datum/tgs_http_handler] call. MUST NOT be overridden.
+/datum/tgs_http_result
+ /// HTTP response as text
+ var/response_text
+ /// Boolean request success flag. Set for any 2XX response code.
+ var/success
+
+/**
+ * Create a [/datum/tgs_http_result].
+ *
+ * * response_text - HTTP response as text. Must be provided in New().
+ * * success - Boolean request success flag. Set for any 2XX response code. Must be provided in New().
+ */
+/datum/tgs_http_result/New(response_text, success)
+ if(response_text && !istext(response_text))
+ CRASH("response_text was not text!")
+
+ src.response_text = response_text
+ src.success = success
+
+/// User definable chat command. This abstract version MUST be overridden to be used.
/datum/tgs_chat_command
/// The string to trigger this command on a chat bot. e.g `@bot name ...` or `!tgs name ...`.
var/name = ""
@@ -296,21 +330,27 @@
/**
* Process command activation. Should return a [/datum/tgs_message_content] to respond to the issuer with.
+ * MUST be implemented
*
- * sender - The [/datum/tgs_chat_user] who issued the command.
- * params - The trimmed string following the command `/datum/tgs_chat_command/var/name].
+ * * sender - The [/datum/tgs_chat_user] who issued the command.
+ * * params - The trimmed string following the command `/datum/tgs_chat_command/var/name].
*/
/datum/tgs_chat_command/proc/Run(datum/tgs_chat_user/sender, params)
CRASH("[type] has no implementation for Run()")
-/// User definable chat message.
+/// User definable chat message. MUST NOT be overridden.
/datum/tgs_message_content
- /// The tring content of the message. Must be provided in New().
+ /// The string content of the message. Must be provided in New().
var/text
/// The [/datum/tgs_chat_embed] to embed in the message. Not supported on all chat providers.
var/datum/tgs_chat_embed/structure/embed
+/**
+ * Create a [/datum/tgs_message_content].
+ *
+ * * text - The string content of the message.
+ */
/datum/tgs_message_content/New(text)
..()
if(!istext(text))
@@ -319,7 +359,7 @@
src.text = text
-/// User definable chat embed. Currently mirrors Discord chat embeds. See https://discord.com/developers/docs/resources/channel#embed-object-embed-structure for details.
+/// User definable chat embed. Currently mirrors Discord chat embeds. See https://discord.com/developers/docs/resources/message#embed-object for details.
/datum/tgs_chat_embed/structure
var/title
var/description
@@ -331,13 +371,13 @@
/// Colour must be #AARRGGBB or #RRGGBB hex string.
var/colour
- /// See https://discord.com/developers/docs/resources/channel#embed-object-embed-image-structure for details.
+ /// See https://discord.com/developers/docs/resources/message#embed-object-embed-image-structure for details.
var/datum/tgs_chat_embed/media/image
- /// See https://discord.com/developers/docs/resources/channel#embed-object-embed-thumbnail-structure for details.
+ /// See https://discord.com/developers/docs/resources/message#embed-object-embed-thumbnail-structure for details.
var/datum/tgs_chat_embed/media/thumbnail
- /// See https://discord.com/developers/docs/resources/channel#embed-object-embed-image-structure for details.
+ /// See https://discord.com/developers/docs/resources/message#embed-object-embed-video-structure for details.
var/datum/tgs_chat_embed/media/video
var/datum/tgs_chat_embed/footer/footer
@@ -346,7 +386,7 @@
var/list/datum/tgs_chat_embed/field/fields
-/// Common datum for similar discord embed medias.
+/// Common datum for similar Discord embed medias.
/datum/tgs_chat_embed/media
/// Must be set in New().
var/url
@@ -354,6 +394,7 @@
var/height
var/proxy_url
+/// Create a [/datum/tgs_chat_embed].
/datum/tgs_chat_embed/media/New(url)
..()
if(!istext(url))
@@ -361,13 +402,14 @@
src.url = url
-/// See https://discord.com/developers/docs/resources/channel#embed-object-embed-footer-structure for details.
+/// See https://discord.com/developers/docs/resources/message#embed-object-embed-footer-structure for details.
/datum/tgs_chat_embed/footer
/// Must be set in New().
var/text
var/icon_url
var/proxy_icon_url
+/// Create a [/datum/tgs_chat_embed/footer].
/datum/tgs_chat_embed/footer/New(text)
..()
if(!istext(text))
@@ -375,16 +417,17 @@
src.text = text
-/// See https://discord.com/developers/docs/resources/channel#embed-object-embed-provider-structure for details.
+/// See https://discord.com/developers/docs/resources/message#embed-object-embed-provider-structure for details.
/datum/tgs_chat_embed/provider
var/name
var/url
-/// See https://discord.com/developers/docs/resources/channel#embed-object-embed-author-structure for details. Must have name set in New().
+/// See https://discord.com/developers/docs/resources/message#embed-object-embed-author-structure for details. Must have name set in New().
/datum/tgs_chat_embed/provider/author
var/icon_url
var/proxy_icon_url
+/// Create a [/datum/tgs_chat_embed/footer].
/datum/tgs_chat_embed/provider/author/New(name)
..()
if(!istext(name))
@@ -392,12 +435,15 @@
src.name = name
-/// See https://discord.com/developers/docs/resources/channel#embed-object-embed-field-structure for details. Must have name and value set in New().
+/// See https://discord.com/developers/docs/resources/message#embed-object-embed-field-structure for details.
/datum/tgs_chat_embed/field
+ /// Must be set in New().
var/name
+ /// Must be set in New().
var/value
var/is_inline
+/// Create a [/datum/tgs_chat_embed/field].
/datum/tgs_chat_embed/field/New(name, value)
..()
if(!istext(name))
diff --git a/code/modules/tgs/README.md b/code/modules/tgs/README.md
index 6319028d810..35ca73d7e9a 100644
--- a/code/modules/tgs/README.md
+++ b/code/modules/tgs/README.md
@@ -1,6 +1,6 @@
# DMAPI Internals
-This folder should be placed on it's own inside a codebase that wishes to use the TGS DMAPI. Warranty void if modified.
+This folder should be placed on its own inside a codebase that wishes to use the TGS DMAPI. Warranty void if modified.
- [includes.dm](./includes.dm) is the file that should be included by DM code, it handles including the rest.
- The [core](./core) folder includes all code not directly part of any API version.
diff --git a/code/modules/tgs/core/README.md b/code/modules/tgs/core/README.md
index b82d8f49e29..965e21b549a 100644
--- a/code/modules/tgs/core/README.md
+++ b/code/modules/tgs/core/README.md
@@ -3,7 +3,7 @@
This folder contains all DMAPI code not directly involved in an API.
- [_definitions.dm](./definitions.dm) contains defines needed across DMAPI internals.
+- [byond_world_export.dm](./byond_world_export.dm) contains the default `/datum/tgs_http_handler` implementation which uses `world.Export()`.
- [core.dm](./core.dm) contains the implementations of the `/world/proc/TgsXXX()` procs. Many map directly to the `/datum/tgs_api` functions. It also contains the /datum selection and setup code.
- [datum.dm](./datum.dm) contains the `/datum/tgs_api` declarations that all APIs must implement.
- [tgs_version.dm](./tgs_version.dm) contains the `/datum/tgs_version` definition
--
diff --git a/code/modules/tgs/core/byond_world_export.dm b/code/modules/tgs/core/byond_world_export.dm
new file mode 100644
index 00000000000..6ef8d841b8f
--- /dev/null
+++ b/code/modules/tgs/core/byond_world_export.dm
@@ -0,0 +1,22 @@
+/datum/tgs_http_handler/byond_world_export
+
+/datum/tgs_http_handler/byond_world_export/PerformGet(url)
+ // This is an infinite sleep until we get a response
+ var/export_response = world.Export(url)
+ TGS_DEBUG_LOG("byond_world_export: Export complete")
+
+ if(!export_response)
+ TGS_ERROR_LOG("byond_world_export: Failed request: [url]")
+ return new /datum/tgs_http_result(null, FALSE)
+
+ var/content = export_response["CONTENT"]
+ if(!content)
+ TGS_ERROR_LOG("byond_world_export: Failed request, missing content!")
+ return new /datum/tgs_http_result(null, FALSE)
+
+ var/response_json = TGS_FILE2TEXT_NATIVE(content)
+ if(!response_json)
+ TGS_ERROR_LOG("byond_world_export: Failed request, failed to load content!")
+ return new /datum/tgs_http_result(null, FALSE)
+
+ return new /datum/tgs_http_result(response_json, TRUE)
diff --git a/code/modules/tgs/core/core.dm b/code/modules/tgs/core/core.dm
index 15622228e91..63cb5a2c351 100644
--- a/code/modules/tgs/core/core.dm
+++ b/code/modules/tgs/core/core.dm
@@ -1,4 +1,4 @@
-/world/TgsNew(datum/tgs_event_handler/event_handler, minimum_required_security_level = TGS_SECURITY_ULTRASAFE)
+/world/TgsNew(datum/tgs_event_handler/event_handler, minimum_required_security_level = TGS_SECURITY_ULTRASAFE, datum/tgs_http_handler/http_handler = null)
var/current_api = TGS_READ_GLOBAL(tgs)
if(current_api)
TGS_ERROR_LOG("API datum already set (\ref[current_api] ([current_api]))! Was TgsNew() called more than once?")
@@ -55,7 +55,10 @@
TGS_ERROR_LOG("Invalid parameter for event_handler: [event_handler]")
event_handler = null
- var/datum/tgs_api/new_api = new api_datum(event_handler, version)
+ if(!http_handler)
+ http_handler = new /datum/tgs_http_handler/byond_world_export
+
+ var/datum/tgs_api/new_api = new api_datum(event_handler, version, http_handler)
TGS_WRITE_GLOBAL(tgs, new_api)
diff --git a/code/modules/tgs/core/datum.dm b/code/modules/tgs/core/datum.dm
index f734fd0527f..3ca53e9bf7c 100644
--- a/code/modules/tgs/core/datum.dm
+++ b/code/modules/tgs/core/datum.dm
@@ -6,7 +6,7 @@ TGS_DEFINE_AND_SET_GLOBAL(tgs, null)
var/list/warned_deprecated_command_runs
-/datum/tgs_api/New(datum/tgs_event_handler/event_handler, datum/tgs_version/version)
+/datum/tgs_api/New(datum/tgs_event_handler/event_handler, datum/tgs_version/version, datum/tgs_http_handler/http_handler)
..()
src.event_handler = event_handler
src.version = version
diff --git a/code/modules/tgs/includes.dm b/code/modules/tgs/includes.dm
index 23b714f9d06..f5118ed55a3 100644
--- a/code/modules/tgs/includes.dm
+++ b/code/modules/tgs/includes.dm
@@ -1,4 +1,5 @@
#include "core\_definitions.dm"
+#include "core\byond_world_export.dm"
#include "core\core.dm"
#include "core\datum.dm"
#include "core\tgs_version.dm"
diff --git a/code/modules/tgs/v5/__interop_version.dm b/code/modules/tgs/v5/__interop_version.dm
index f4806f7adb9..29ea239ad84 100644
--- a/code/modules/tgs/v5/__interop_version.dm
+++ b/code/modules/tgs/v5/__interop_version.dm
@@ -1 +1 @@
-"5.9.0"
+"5.10.0"
diff --git a/code/modules/tgs/v5/_defines.dm b/code/modules/tgs/v5/_defines.dm
index 92c7a8388a7..a47bfd78000 100644
--- a/code/modules/tgs/v5/_defines.dm
+++ b/code/modules/tgs/v5/_defines.dm
@@ -95,6 +95,7 @@
#define DMAPI5_TOPIC_PARAMETER_NEW_SERVER_VERSION "newServerVersion"
#define DMAPI5_TOPIC_PARAMETER_BROADCAST_MESSAGE "broadcastMessage"
+#define DMAPI5_TOPIC_RESPONSE_CLIENT_COUNT "clientCount"
#define DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE "commandResponse"
#define DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE_MESSAGE "commandResponseMessage"
#define DMAPI5_TOPIC_RESPONSE_CHAT_RESPONSES "chatResponses"
diff --git a/code/modules/tgs/v5/api.dm b/code/modules/tgs/v5/api.dm
index 95b8edd3ee5..3e328fc7c27 100644
--- a/code/modules/tgs/v5/api.dm
+++ b/code/modules/tgs/v5/api.dm
@@ -31,9 +31,12 @@
var/detached = FALSE
-/datum/tgs_api/v5/New()
+ var/datum/tgs_http_handler/http_handler
+
+/datum/tgs_api/v5/New(datum/tgs_event_handler/event_handler, datum/tgs_version/version, datum/tgs_http_handler/http_handler)
. = ..()
interop_version = version
+ src.http_handler = http_handler
TGS_DEBUG_LOG("V5 API created: [json_encode(args)]")
/datum/tgs_api/v5/ApiVersion()
@@ -50,7 +53,9 @@
version = null // we want this to be the TGS version, not the interop version
// sleep once to prevent an issue where world.Export on the first tick can hang indefinitely
+ TGS_DEBUG_LOG("Starting Export bug prevention sleep tick. time:[world.time] sleep_offline:[world.sleep_offline]")
sleep(world.tick_lag)
+ TGS_DEBUG_LOG("Export bug prevention sleep complete")
var/list/bridge_response = Bridge(DMAPI5_BRIDGE_COMMAND_STARTUP, list(DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL = minimum_required_security_level, DMAPI5_BRIDGE_PARAMETER_VERSION = api_version.raw_parameter, DMAPI5_PARAMETER_CUSTOM_COMMANDS = ListCustomCommands(), DMAPI5_PARAMETER_TOPIC_PORT = GetTopicPort()))
if(!istype(bridge_response))
diff --git a/code/modules/tgs/v5/bridge.dm b/code/modules/tgs/v5/bridge.dm
index 0c5e701a32b..62201fcc9e5 100644
--- a/code/modules/tgs/v5/bridge.dm
+++ b/code/modules/tgs/v5/bridge.dm
@@ -78,27 +78,24 @@
WaitForReattach(FALSE)
TGS_DEBUG_LOG("Bridge request start")
- // This is an infinite sleep until we get a response
- var/export_response = world.Export(bridge_request)
+ var/datum/tgs_http_result/result = http_handler.PerformGet(bridge_request)
TGS_DEBUG_LOG("Bridge request complete")
- if(!export_response)
- TGS_ERROR_LOG("Failed bridge request: [bridge_request]")
+ if(isnull(result))
+ TGS_ERROR_LOG("Failed bridge request, handler returned null!")
return
- var/content = export_response["CONTENT"]
- if(!content)
- TGS_ERROR_LOG("Failed bridge request, missing content!")
+ if(!istype(result) || result.type != /datum/tgs_http_result)
+ TGS_ERROR_LOG("Failed bridge request, handler returned non-[/datum/tgs_http_result]!")
return
- var/response_json = TGS_FILE2TEXT_NATIVE(content)
- if(!response_json)
- TGS_ERROR_LOG("Failed bridge request, failed to load content!")
+ if(!result.success)
+ TGS_DEBUG_LOG("Failed bridge request, HTTP request failed!")
return
- var/list/bridge_response = json_decode(response_json)
+ var/list/bridge_response = json_decode(result.response_text)
if(!bridge_response)
- TGS_ERROR_LOG("Failed bridge request, bad json: [response_json]")
+ TGS_ERROR_LOG("Failed bridge request, bad json: [result.response_text]")
return
var/error = bridge_response[DMAPI5_RESPONSE_ERROR_MESSAGE]
diff --git a/code/modules/tgs/v5/topic.dm b/code/modules/tgs/v5/topic.dm
index e1f2cb63857..59e5e63e5cd 100644
--- a/code/modules/tgs/v5/topic.dm
+++ b/code/modules/tgs/v5/topic.dm
@@ -149,7 +149,9 @@
if(DMAPI5_TOPIC_COMMAND_HEALTHCHECK)
if(event_handler && event_handler.receive_health_checks)
event_handler.HandleEvent(TGS_EVENT_HEALTH_CHECK)
- return TopicResponse()
+ var/list/health_check_response = TopicResponse()
+ health_check_response[DMAPI5_TOPIC_RESPONSE_CLIENT_COUNT] = TGS_CLIENT_COUNT
+ return health_check_response;
if(DMAPI5_TOPIC_COMMAND_WATCHDOG_REATTACH)
detached = FALSE
diff --git a/code/modules/tgs/v5/undefs.dm b/code/modules/tgs/v5/undefs.dm
index 237207fdfd0..acd19dfa641 100644
--- a/code/modules/tgs/v5/undefs.dm
+++ b/code/modules/tgs/v5/undefs.dm
@@ -18,7 +18,6 @@
#undef DMAPI5_PARAMETER_ACCESS_IDENTIFIER
#undef DMAPI5_PARAMETER_CUSTOM_COMMANDS
-#undef DMAPI5_PARAMETER_TOPIC_PORT
#undef DMAPI5_CHUNK
#undef DMAPI5_CHUNK_PAYLOAD
@@ -95,6 +94,7 @@
#undef DMAPI5_TOPIC_PARAMETER_NEW_SERVER_VERSION
#undef DMAPI5_TOPIC_PARAMETER_BROADCAST_MESSAGE
+#undef DMAPI5_TOPIC_RESPONSE_CLIENT_COUNT
#undef DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE
#undef DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE_MESSAGE
#undef DMAPI5_TOPIC_RESPONSE_CHAT_RESPONSES
From f2f799935188786fff3fab73a936f5975e871dc7 Mon Sep 17 00:00:00 2001
From: DeltaFire <46569814+DeltaFire15@users.noreply.github.com>
Date: Fri, 6 Dec 2024 20:39:44 +0100
Subject: [PATCH 12/14] Weird Atom Init Issues VS. One Lizard (#2709)
---
code/controllers/subsystem/mapping.dm | 4 +--
nsv13/code/__DEFINES/overmap.dm | 3 ++
nsv13/code/__HELPERS/overmap.dm | 10 ++++++
.../code/controllers/subsystem/starsystem.dm | 25 ++++++++++++++
.../overmap/fighters/fighters_launcher.dm | 19 +++++++++--
nsv13/code/modules/overmap/overmap.dm | 33 +++++++++++++------
6 files changed, 79 insertions(+), 15 deletions(-)
diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm
index 6d65eb8dbea..3158fae7dbd 100644
--- a/code/controllers/subsystem/mapping.dm
+++ b/code/controllers/subsystem/mapping.dm
@@ -290,8 +290,8 @@ SUBSYSTEM_DEF(mapping)
var/obj/structure/overmap/OM = instance_overmap(config.ship_type)
pass(OM)
// Free boarding overmap/mining level
- add_new_zlevel("Overmap treadmill [++world.maxz]", ZTRAITS_OVERMAP)
- OM.free_treadmills += world.maxz
+ var/datum/space_level/overmap_z1 = add_new_zlevel("Overmap treadmill [length(z_list)+1]", ZTRAITS_OVERMAP)
+ OM.free_treadmills += overmap_z1.z_value
LoadStationRoomTemplates()
LoadStationRooms()
diff --git a/nsv13/code/__DEFINES/overmap.dm b/nsv13/code/__DEFINES/overmap.dm
index 8bb8ce50961..b76e8577e0f 100644
--- a/nsv13/code/__DEFINES/overmap.dm
+++ b/nsv13/code/__DEFINES/overmap.dm
@@ -119,3 +119,6 @@ GLOBAL_LIST_INIT(overmap_impact_sounds, list('nsv13/sound/effects/ship/freespace
#define SHIELD_ABSORB 1 //!Shield absorbed hit.
#define SHIELD_FORCE_DEFLECT 2 //!Shield absorbed hit and is redirecting projectile with slightly turned vector.
#define SHIELD_FORCE_REFLECT 3 //!Shield absorbed hit and is redirecting projectile in reverse direction.
+
+//Interior instancing comsig, aka cursed things.
+#define COMSIG_INTERIOR_DONE_LOADING "interior_done_loading"
diff --git a/nsv13/code/__HELPERS/overmap.dm b/nsv13/code/__HELPERS/overmap.dm
index 39399783bc3..7d260c5f532 100644
--- a/nsv13/code/__HELPERS/overmap.dm
+++ b/nsv13/code/__HELPERS/overmap.dm
@@ -118,7 +118,17 @@ Another get_angle that works better with the looping edges of the overmap
else if(CX<0)
.+=360
+/**
+ * I am genuinely unsure what this is actually meant to do that normal z add does not do.
+* If ANYONE actually knows if there is some important reason the procs I changed used this please tell me ~Delta
+**/
/datum/controller/subsystem/mapping/proc/add_new_initialized_zlevel(name, traits = list(), z_type = /datum/space_level, orbital_body_type)
add_new_zlevel(name, traits)
SSatoms.InitializeAtoms(block(locate(1,1,world.maxz),locate(world.maxx,world.maxy,world.maxz)))
setup_map_transitions(z_list[world.maxz])
+/**
+ * Generates a new z level with behavior specific to overmaps and returns its space level datum.
+ */
+/datum/controller/subsystem/mapping/proc/add_new_overmap_zlevel()
+ . = add_new_zlevel("Overmap treadmill [length(z_list)+1]", ZTRAITS_OVERMAP)
+ setup_map_transitions(.)
diff --git a/nsv13/code/controllers/subsystem/starsystem.dm b/nsv13/code/controllers/subsystem/starsystem.dm
index 51445fd48e5..624fd95c753 100644
--- a/nsv13/code/controllers/subsystem/starsystem.dm
+++ b/nsv13/code/controllers/subsystem/starsystem.dm
@@ -26,7 +26,13 @@ SUBSYSTEM_DEF(star_system)
var/obj/structure/overmap/mining_ship = null //The mining ship
var/saving = FALSE
+ ///Kind of cursed list that tracks which of our overmap interiors have been initialized yet.
+ var/list/overmap_interior_queue = list() //Ratvar save me from this.
+ ///Are we already busy?
+ var/initing_interior = FALSE
+
/datum/controller/subsystem/star_system/fire() //Overmap combat events control system, adds weight to combat events over time spent out of combat
+ handle_interior_inits() //Cursed. I don't like this.
if(time_limit && world.time >= time_limit)
var/datum/faction/winner = get_winner()
if(istype(SSticker.mode, /datum/game_mode/pvp))
@@ -71,6 +77,25 @@ SUBSYSTEM_DEF(star_system)
saving = FALSE
. = ..()
+///Absolutely cursed proc handling ship interior init queues.
+/datum/controller/subsystem/star_system/proc/handle_interior_inits()
+ set waitfor = FALSE
+ if(initing_interior)
+ return
+ if(SSatoms.initialized_changed)
+ return
+ if(!length(overmap_interior_queue))
+ return
+ initing_interior = TRUE
+ var/obj/structure/overmap/shipinterior_candidate = overmap_interior_queue[1]
+ shipinterior_candidate.instance_interior()
+ SEND_SIGNAL(shipinterior_candidate, COMSIG_INTERIOR_DONE_LOADING)
+ overmap_interior_queue -= shipinterior_candidate
+ initing_interior = FALSE
+
+/datum/controller/subsystem/star_system/proc/queue_for_interior_load(obj/structure/overmap/to_interior_load)
+ overmap_interior_queue += to_interior_load
+
/**
Returns a faction datum by its name (case insensitive!)
*/
diff --git a/nsv13/code/modules/overmap/fighters/fighters_launcher.dm b/nsv13/code/modules/overmap/fighters/fighters_launcher.dm
index 2417666ffec..47dffe75ee1 100644
--- a/nsv13/code/modules/overmap/fighters/fighters_launcher.dm
+++ b/nsv13/code/modules/overmap/fighters/fighters_launcher.dm
@@ -346,14 +346,27 @@ d) the ships[] list of ssstarsystem is acting up again.
return FALSE
if(istype(OM, /obj/structure/overmap/asteroid))
var/obj/structure/overmap/asteroid/AS = OM
+ if(AS.interior_status == INTERIOR_READY)
+ return transfer_from_overmap(AS)
AS.interior_mode = INTERIOR_DYNAMIC // We don't actually want it to create one until we're ready but we do need entry points
- AS.instance_interior()
- AS.docking_points = AS.interior_entry_points
- return transfer_from_overmap(OM)
+ DC.docking_cooldown = TRUE
+ RegisterSignal(AS, COMSIG_INTERIOR_DONE_LOADING, PROC_REF(on_dock_interior_load_finish))
+ SSstar_system.queue_for_interior_load(AS)
+ return TRUE //We have to assume this will end up being a correct docking.
if(mass < OM.mass) //If theyre bigger than us and have docking points, and we want to dock.
return transfer_from_overmap(OM)
return FALSE
+///Listens for the interior loading to finish and finishes docking once it does.
+/obj/structure/overmap/small_craft/proc/on_dock_interior_load_finish(obj/structure/overmap/docking_target)
+ SIGNAL_HANDLER
+ UnregisterSignal(docking_target, COMSIG_INTERIOR_DONE_LOADING)
+ docking_target.docking_points = docking_target.interior_entry_points
+ var/obj/item/fighter_component/docking_computer/DC = loadout.get_slot(HARDPOINT_SLOT_DOCKING)
+ if(DC)
+ DC.docking_cooldown = FALSE
+ INVOKE_ASYNC(src, PROC_REF(transfer_from_overmap), docking_target)
+
/obj/structure/overmap/small_craft/proc/transfer_from_overmap(obj/structure/overmap/OM)
if(!length(OM.docking_points))
return FALSE
diff --git a/nsv13/code/modules/overmap/overmap.dm b/nsv13/code/modules/overmap/overmap.dm
index 6184028ce4e..2c5eba460a9 100644
--- a/nsv13/code/modules/overmap/overmap.dm
+++ b/nsv13/code/modules/overmap/overmap.dm
@@ -234,13 +234,15 @@ Proc to spool up a new Z-level for a player ship and assign it a treadmill.
if(!_path)
_path = /obj/structure/overmap/nanotrasen/heavy_cruiser/starter
RETURN_TYPE(/obj/structure/overmap)
- SSmapping.add_new_initialized_zlevel("Overmap ship level [++world.maxz]", ZTRAITS_OVERMAP)
+ var/datum/space_level/new_ship_z = SSmapping.add_new_zlevel("Overmap ship level [length(SSmapping.z_list)+1]", ZTRAITS_OVERMAP)
+ if(!folder || !interior_map_files)
+ SSmapping.setup_map_transitions(new_ship_z) //We usually recalculate transitions later, but not if there's no interior.
repopulate_sorted_areas()
- smooth_zlevel(world.maxz)
- log_game("Z-level [world.maxz] loaded for overmap treadmills.")
- var/turf/exit = get_turf(locate(round(world.maxx * 0.5, 1), round(world.maxy * 0.5, 1), world.maxz)) //Plop them bang in the center of the system.
+ smooth_zlevel(new_ship_z.z_value)
+ log_game("Z-level [new_ship_z.z_value] loaded for overmap treadmills.")
+ var/turf/exit = get_turf(locate(round(world.maxx * 0.5, 1), round(world.maxy * 0.5, 1), new_ship_z.z_value)) //Plop them bang in the center of the system.
var/obj/structure/overmap/OM = new _path(exit) //Ship'll pick up the info it needs, so just domp eet at the exit turf.
- OM.reserved_z = world.maxz
+ OM.reserved_z = new_ship_z.z_value
OM.overmap_flags |= OVERMAP_FLAG_ZLEVEL_CARRIER
OM.current_system = SSstar_system.find_system(OM)
if(OM.role == MAIN_OVERMAP) //If we're the main overmap, we'll cheat a lil' and apply our status to all of the Zs under "station"
@@ -444,12 +446,23 @@ Proc to spool up a new Z-level for a player ship and assign it a treadmill.
interior_mode = (possible_interior_maps?.len) ? INTERIOR_EXCLUSIVE : NO_INTERIOR
//Allows small ships to have a small interior.
if(INTERIOR_DYNAMIC)
- instance_interior()
- post_load_interior()
+ RegisterSignal(src, COMSIG_INTERIOR_DONE_LOADING, PROC_REF(after_init_load_interior))
+ SSstar_system.queue_for_interior_load(src)
- apply_weapons()
RegisterSignal(src, list(COMSIG_FTL_STATE_CHANGE, COMSIG_SHIP_KILLED), PROC_REF(dump_locks)) // Setup lockon handling
//We have a lot of types but not that many weapons per ship, so let's just worry about the ones we do have
+ if(interior_mode != INTERIOR_DYNAMIC)
+ apply_weapons()
+ for(var/firemode = 1; firemode <= MAX_POSSIBLE_FIREMODE; firemode++)
+ var/datum/ship_weapon/SW = weapon_types[firemode]
+ if(istype(SW) && (SW.allowed_roles & OVERMAP_USER_ROLE_GUNNER))
+ weapon_numkeys_map += firemode
+
+///Listens for when the interior is done initing and finishes up some variables when it is.
+/obj/structure/overmap/proc/after_init_load_interior()
+ SIGNAL_HANDLER
+ UnregisterSignal(src, COMSIG_INTERIOR_DONE_LOADING)
+ apply_weapons()
for(var/firemode = 1; firemode <= MAX_POSSIBLE_FIREMODE; firemode++)
var/datum/ship_weapon/SW = weapon_types[firemode]
if(istype(SW) && (SW.allowed_roles & OVERMAP_USER_ROLE_GUNNER))
@@ -972,8 +985,8 @@ Proc to spool up a new Z-level for a player ship and assign it a treadmill.
return reserved_z
if(ftl_drive)
if(!free_treadmills?.len)
- SSmapping.add_new_initialized_zlevel("Overmap treadmill [++world.maxz]", ZTRAITS_OVERMAP)
- reserved_z = world.maxz
+ var/datum/space_level/new_level = SSmapping.add_new_overmap_zlevel()
+ reserved_z = new_level.z_value
else
var/_z = pick_n_take(free_treadmills)
reserved_z = _z
From a46c74e756413a7546171ecb9f6a9c6c4cf77075 Mon Sep 17 00:00:00 2001
From: ss13-beebot <56381746+ss13-beebot@users.noreply.github.com>
Date: Fri, 6 Dec 2024 13:40:23 -0600
Subject: [PATCH 13/14] Automatic changelog generation for PR #2709 [ci skip]
---
html/changelogs/AutoChangeLog-pr-2709.yml | 8 ++++++++
1 file changed, 8 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-2709.yml
diff --git a/html/changelogs/AutoChangeLog-pr-2709.yml b/html/changelogs/AutoChangeLog-pr-2709.yml
new file mode 100644
index 00000000000..78bbba77d0e
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-2709.yml
@@ -0,0 +1,8 @@
+author: DeltaFire15
+delete-after: true
+changes:
+ - code_imp: Ship interior loading now uses a queue system (for virtual z using things
+ like Sabres & Asteroids)
+ - code_imp: Some overmap z generation handling is ever so slightly cleaner now.
+ - bugfix: Should resolve certain atom init issues (that manifested as broken sparks,
+ among many other things).
From ef500e72e65efa6bd9fded870cf740e564f72ae6 Mon Sep 17 00:00:00 2001
From: ss13-beebot <56381746+ss13-beebot@users.noreply.github.com>
Date: Fri, 6 Dec 2024 20:04:57 +0000
Subject: [PATCH 14/14] Automatic changelog compile [ci skip]
---
html/changelog.html | 8 ++++++++
html/changelogs/.all_changelog.yml | 7 +++++++
html/changelogs/AutoChangeLog-pr-2709.yml | 8 --------
3 files changed, 15 insertions(+), 8 deletions(-)
delete mode 100644 html/changelogs/AutoChangeLog-pr-2709.yml
diff --git a/html/changelog.html b/html/changelog.html
index 1b93b66f4c9..5439e88268e 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -56,6 +56,14 @@
-->
+
06 December 2024
+
DeltaFire15 updated:
+
+ - Ship interior loading now uses a queue system (for virtual z using things like Sabres & Asteroids)
+ - Some overmap z generation handling is ever so slightly cleaner now.
+ - Should resolve certain atom init issues (that manifested as broken sparks, among many other things).
+
+
18 October 2024
DeltaFire15 updated:
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml
index 7400fae16f1..9d130dbf889 100644
--- a/html/changelogs/.all_changelog.yml
+++ b/html/changelogs/.all_changelog.yml
@@ -2183,3 +2183,10 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
2024-10-18:
DeltaFire15:
- bugfix: Overmap projectiles now correctly home across z loop borders.
+2024-12-06:
+ DeltaFire15:
+ - code_imp: Ship interior loading now uses a queue system (for virtual z using things
+ like Sabres & Asteroids)
+ - code_imp: Some overmap z generation handling is ever so slightly cleaner now.
+ - bugfix: Should resolve certain atom init issues (that manifested as broken sparks,
+ among many other things).
diff --git a/html/changelogs/AutoChangeLog-pr-2709.yml b/html/changelogs/AutoChangeLog-pr-2709.yml
deleted file mode 100644
index 78bbba77d0e..00000000000
--- a/html/changelogs/AutoChangeLog-pr-2709.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-author: DeltaFire15
-delete-after: true
-changes:
- - code_imp: Ship interior loading now uses a queue system (for virtual z using things
- like Sabres & Asteroids)
- - code_imp: Some overmap z generation handling is ever so slightly cleaner now.
- - bugfix: Should resolve certain atom init issues (that manifested as broken sparks,
- among many other things).