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 @@ [title] - +