mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-26 01:22:03 +00:00
* Renames delta time to be a more obvious name * updates to our code --------- Co-authored-by: oranges <email@oranges.net.nz> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
34 lines
1001 B
Plaintext
34 lines
1001 B
Plaintext
/**
|
|
* spinny.dm
|
|
*
|
|
* It's a component that spins things a whole bunch, like [proc/dance_rotate] but without the sleeps)
|
|
*/
|
|
/datum/component/spinny
|
|
dupe_mode = COMPONENT_DUPE_UNIQUE
|
|
/// How many turns are left?
|
|
var/steps_left
|
|
/// Turns clockwise by default, or counterclockwise if the reverse argument is TRUE
|
|
var/turn_degrees = 90
|
|
|
|
/datum/component/spinny/Initialize(steps = 12, reverse = FALSE)
|
|
if(!isatom(parent))
|
|
return COMPONENT_INCOMPATIBLE
|
|
|
|
steps_left = steps
|
|
turn_degrees = (reverse ? -90 : 90)
|
|
START_PROCESSING(SSfastprocess, src)
|
|
|
|
/datum/component/spinny/Destroy(force, silent)
|
|
STOP_PROCESSING(SSfastprocess, src)
|
|
return ..()
|
|
|
|
/datum/component/spinny/process(seconds_per_tick)
|
|
steps_left--
|
|
var/atom/spinny_boy = parent
|
|
if(!istype(spinny_boy) || steps_left <= 0)
|
|
qdel(src)
|
|
return
|
|
|
|
// 25% chance to make 2 turns instead of 1 since the old dance_rotate wasn't strictly clockwise/counterclockwise
|
|
spinny_boy.setDir(turn(spinny_boy.dir, turn_degrees * (prob(25) ? 2 : 1)))
|