From af1aa9758da30aaae774c06bc2addf4718abc93e Mon Sep 17 00:00:00 2001
From: Letter N <24603524+LetterN@users.noreply.github.com>
Date: Sun, 31 May 2020 08:20:20 +0800
Subject: [PATCH] matrix and orbit thing (#12399)
---
code/datums/components/orbiter.dm | 6 ++--
.../admin/view_variables/debug_variables.dm | 14 ++++++++
.../admin/view_variables/view_variables.dm | 11 +-----
code/modules/client/asset_cache.dm | 7 +++-
html/admin/view_variables.css | 35 +++++++++++++++++++
5 files changed, 60 insertions(+), 13 deletions(-)
create mode 100644 html/admin/view_variables.css
diff --git a/code/datums/components/orbiter.dm b/code/datums/components/orbiter.dm
index 49e6b91c6d..53373de6d7 100644
--- a/code/datums/components/orbiter.dm
+++ b/code/datums/components/orbiter.dm
@@ -62,7 +62,9 @@
orbiters[orbiter] = TRUE
orbiter.orbiting = src
RegisterSignal(orbiter, COMSIG_MOVABLE_MOVED, .proc/orbiter_move_react)
+
var/matrix/initial_transform = matrix(orbiter.transform)
+ orbiters[orbiter] = initial_transform
// Head first!
if(pre_rotation)
@@ -79,8 +81,6 @@
orbiter.SpinAnimation(rotation_speed, -1, clockwise, rotation_segments, parallel = FALSE)
- //we stack the orbits up client side, so we can assign this back to normal server side without it breaking the orbit
- orbiter.transform = initial_transform
orbiter.forceMove(get_turf(parent))
to_chat(orbiter, "Now orbiting [parent].")
@@ -89,6 +89,8 @@
return
UnregisterSignal(orbiter, COMSIG_MOVABLE_MOVED)
orbiter.SpinAnimation(0, 0)
+ if(istype(orbiters[orbiter],/matrix)) //This is ugly.
+ orbiter.transform = orbiters[orbiter]
orbiters -= orbiter
orbiter.stop_orbit(src)
orbiter.orbiting = null
diff --git a/code/modules/admin/view_variables/debug_variables.dm b/code/modules/admin/view_variables/debug_variables.dm
index 23f85cba15..5116cd5cd6 100644
--- a/code/modules/admin/view_variables/debug_variables.dm
+++ b/code/modules/admin/view_variables/debug_variables.dm
@@ -1,4 +1,5 @@
#define VV_HTML_ENCODE(thing) ( sanitize ? html_encode(thing) : thing )
+/// Get displayed variable in VV variable list
/proc/debug_variable(name, value, level, datum/D, sanitize = TRUE) //if D is a list, name will be index, and value will be assoc value.
var/header
if(D)
@@ -35,6 +36,19 @@
else if (isfile(value))
item = "[VV_HTML_ENCODE(name)] = '[value]'"
+ else if(istype(value, /matrix)) // Needs to be before datum
+ var/matrix/M = value
+ item = {"[VV_HTML_ENCODE(name)] =
+
+
+
+
[M.a]
[M.d]
0
+
[M.b]
[M.e]
0
+
[M.c]
[M.f]
1
+
+
+
"} //TODO link to modify_transform wrapper for all matrices
+
else if (istype(value, /datum))
var/datum/DV = value
if ("[DV]" != "[DV.type]") //if the thing as a name var, lets use it.
diff --git a/code/modules/admin/view_variables/view_variables.dm b/code/modules/admin/view_variables/view_variables.dm
index a85b4ff1a3..abe445589f 100644
--- a/code/modules/admin/view_variables/view_variables.dm
+++ b/code/modules/admin/view_variables/view_variables.dm
@@ -96,16 +96,7 @@