mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-13 03:33:21 +00:00
Replaced weird ass space indenetation with tabs in tracks.dm
This commit is contained in:
@@ -17,178 +17,178 @@
|
|||||||
var/global/list/image/fluidtrack_cache=list()
|
var/global/list/image/fluidtrack_cache=list()
|
||||||
|
|
||||||
/datum/fluidtrack
|
/datum/fluidtrack
|
||||||
var/direction=0
|
var/direction=0
|
||||||
var/basecolor="#A10808"
|
var/basecolor="#A10808"
|
||||||
var/wet=0
|
var/wet=0
|
||||||
var/fresh=1
|
var/fresh=1
|
||||||
var/crusty=0
|
var/crusty=0
|
||||||
var/image/overlay
|
var/image/overlay
|
||||||
|
|
||||||
New(_direction,_color,_wet)
|
New(_direction,_color,_wet)
|
||||||
src.direction=_direction
|
src.direction=_direction
|
||||||
src.basecolor=_color
|
src.basecolor=_color
|
||||||
src.wet=_wet
|
src.wet=_wet
|
||||||
|
|
||||||
// Footprints, tire trails...
|
// Footprints, tire trails...
|
||||||
/obj/effect/decal/cleanable/blood/tracks
|
/obj/effect/decal/cleanable/blood/tracks
|
||||||
amount = 0
|
amount = 0
|
||||||
random_icon_states = null
|
random_icon_states = null
|
||||||
var/dirs=0
|
var/dirs=0
|
||||||
icon = 'icons/effects/fluidtracks.dmi'
|
icon = 'icons/effects/fluidtracks.dmi'
|
||||||
var/coming_state="blood1"
|
var/coming_state="blood1"
|
||||||
var/going_state="blood2"
|
var/going_state="blood2"
|
||||||
var/updatedtracks=0
|
var/updatedtracks=0
|
||||||
|
|
||||||
// dir = id in stack
|
// dir = id in stack
|
||||||
var/list/setdirs=list(
|
var/list/setdirs=list(
|
||||||
"1"=0,
|
"1"=0,
|
||||||
"2"=0,
|
"2"=0,
|
||||||
"4"=0,
|
"4"=0,
|
||||||
"8"=0,
|
"8"=0,
|
||||||
"16"=0,
|
"16"=0,
|
||||||
"32"=0,
|
"32"=0,
|
||||||
"64"=0,
|
"64"=0,
|
||||||
"128"=0
|
"128"=0
|
||||||
)
|
)
|
||||||
|
|
||||||
// List of laid tracks and their colors.
|
// List of laid tracks and their colors.
|
||||||
var/list/datum/fluidtrack/stack=list()
|
var/list/datum/fluidtrack/stack=list()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add tracks to an existing trail.
|
* Add tracks to an existing trail.
|
||||||
*
|
*
|
||||||
* @param DNA bloodDNA to add to collection.
|
* @param DNA bloodDNA to add to collection.
|
||||||
* @param comingdir Direction tracks come from, or 0.
|
* @param comingdir Direction tracks come from, or 0.
|
||||||
* @param goingdir Direction tracks are going to (or 0).
|
* @param goingdir Direction tracks are going to (or 0).
|
||||||
* @param bloodcolor Color of the blood when wet.
|
* @param bloodcolor Color of the blood when wet.
|
||||||
*/
|
*/
|
||||||
proc/AddTracks(var/list/DNA, var/comingdir, var/goingdir, var/bloodcolor="#A10808")
|
proc/AddTracks(var/list/DNA, var/comingdir, var/goingdir, var/bloodcolor="#A10808")
|
||||||
var/updated=0
|
var/updated=0
|
||||||
// Shift our goingdir 4 spaces to the left so it's in the GOING bitblock.
|
// Shift our goingdir 4 spaces to the left so it's in the GOING bitblock.
|
||||||
var/realgoing=goingdir<<4
|
var/realgoing=goingdir<<4
|
||||||
|
|
||||||
// Current bit
|
// Current bit
|
||||||
var/b=0
|
var/b=0
|
||||||
|
|
||||||
// When tracks will start to dry out
|
// When tracks will start to dry out
|
||||||
var/t=world.time + TRACKS_CRUSTIFY_TIME
|
var/t=world.time + TRACKS_CRUSTIFY_TIME
|
||||||
|
|
||||||
var/datum/fluidtrack/track
|
var/datum/fluidtrack/track
|
||||||
|
|
||||||
// Process 4 bits
|
// Process 4 bits
|
||||||
for(var/bi=0;bi<4;bi++)
|
for(var/bi=0;bi<4;bi++)
|
||||||
b=1<<bi
|
b=1<<bi
|
||||||
// COMING BIT
|
// COMING BIT
|
||||||
// If setting
|
// If setting
|
||||||
if(comingdir&b)
|
if(comingdir&b)
|
||||||
// If not wet or not set
|
// If not wet or not set
|
||||||
if(dirs&b)
|
if(dirs&b)
|
||||||
var/sid=setdirs["[b]"]
|
var/sid=setdirs["[b]"]
|
||||||
track=stack[sid]
|
track=stack[sid]
|
||||||
if(track.wet==t && track.basecolor==bloodcolor)
|
if(track.wet==t && track.basecolor==bloodcolor)
|
||||||
continue
|
continue
|
||||||
// Remove existing stack entry
|
// Remove existing stack entry
|
||||||
stack.Remove(track)
|
stack.Remove(track)
|
||||||
track=new /datum/fluidtrack(b,bloodcolor,t)
|
track=new /datum/fluidtrack(b,bloodcolor,t)
|
||||||
stack.Add(track)
|
stack.Add(track)
|
||||||
setdirs["[b]"]=stack.Find(track)
|
setdirs["[b]"]=stack.Find(track)
|
||||||
updatedtracks |= b
|
updatedtracks |= b
|
||||||
updated=1
|
updated=1
|
||||||
|
|
||||||
// GOING BIT (shift up 4)
|
// GOING BIT (shift up 4)
|
||||||
b=b<<4
|
b=b<<4
|
||||||
if(realgoing&b)
|
if(realgoing&b)
|
||||||
// If not wet or not set
|
// If not wet or not set
|
||||||
if(dirs&b)
|
if(dirs&b)
|
||||||
var/sid=setdirs["[b]"]
|
var/sid=setdirs["[b]"]
|
||||||
track=stack[sid]
|
track=stack[sid]
|
||||||
if(track.wet==t && track.basecolor==bloodcolor)
|
if(track.wet==t && track.basecolor==bloodcolor)
|
||||||
continue
|
continue
|
||||||
// Remove existing stack entry
|
// Remove existing stack entry
|
||||||
stack.Remove(track)
|
stack.Remove(track)
|
||||||
track=new /datum/fluidtrack(b,bloodcolor,t)
|
track=new /datum/fluidtrack(b,bloodcolor,t)
|
||||||
stack.Add(track)
|
stack.Add(track)
|
||||||
setdirs["[b]"]=stack.Find(track)
|
setdirs["[b]"]=stack.Find(track)
|
||||||
updatedtracks |= b
|
updatedtracks |= b
|
||||||
updated=1
|
updated=1
|
||||||
|
|
||||||
dirs |= comingdir|realgoing
|
dirs |= comingdir|realgoing
|
||||||
blood_DNA |= DNA.Copy()
|
blood_DNA |= DNA.Copy()
|
||||||
if(updated)
|
if(updated)
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
process()
|
process()
|
||||||
return PROCESS_KILL
|
return PROCESS_KILL
|
||||||
|
|
||||||
update_icon()
|
update_icon()
|
||||||
// Clear everything.
|
// Clear everything.
|
||||||
// Comment after the FIXME below is fixed.
|
// Comment after the FIXME below is fixed.
|
||||||
overlays.Cut()
|
overlays.Cut()
|
||||||
|
|
||||||
var/truedir=0
|
var/truedir=0
|
||||||
//var/t=world.time
|
//var/t=world.time
|
||||||
|
|
||||||
/* FIXME: This shit doesn't work for some reason.
|
/* FIXME: This shit doesn't work for some reason.
|
||||||
The Remove line doesn't remove the overlay given, so this is defunct.
|
The Remove line doesn't remove the overlay given, so this is defunct.
|
||||||
var/b=0
|
var/b=0
|
||||||
for(var/image/overlay in overlays)
|
for(var/image/overlay in overlays)
|
||||||
b=overlay.dir
|
b=overlay.dir
|
||||||
if(overlay.icon_state==going_state)
|
if(overlay.icon_state==going_state)
|
||||||
b=b<<4
|
b=b<<4
|
||||||
if(updatedtracks&b)
|
if(updatedtracks&b)
|
||||||
overlays.Remove(overlay)
|
overlays.Remove(overlay)
|
||||||
//del(overlay)
|
//del(overlay)
|
||||||
*/
|
*/
|
||||||
// Update ONLY the overlays that have changed.
|
// Update ONLY the overlays that have changed.
|
||||||
for(var/datum/fluidtrack/track in stack)
|
for(var/datum/fluidtrack/track in stack)
|
||||||
// TODO: Uncomment when the block above is fixed.
|
// TODO: Uncomment when the block above is fixed.
|
||||||
//if(!(updatedtracks&track.direction) && !track.fresh)
|
//if(!(updatedtracks&track.direction) && !track.fresh)
|
||||||
// continue
|
// continue
|
||||||
var/stack_idx=setdirs["[track.direction]"]
|
var/stack_idx=setdirs["[track.direction]"]
|
||||||
var/state=coming_state
|
var/state=coming_state
|
||||||
truedir=track.direction
|
truedir=track.direction
|
||||||
if(truedir&240) // Check if we're in the GOING block
|
if(truedir&240) // Check if we're in the GOING block
|
||||||
state=going_state
|
state=going_state
|
||||||
truedir=truedir>>4
|
truedir=truedir>>4
|
||||||
|
|
||||||
if(track.overlay)
|
if(track.overlay)
|
||||||
track.overlay=null
|
track.overlay=null
|
||||||
|
|
||||||
//var/cache_key="[track.basecolor]|[state]|[track.direction]|[track.wet<t?"1":"0"]"
|
//var/cache_key="[track.basecolor]|[state]|[track.direction]|[track.wet<t?"1":"0"]"
|
||||||
var/cache_key="[track.basecolor]|[state]|[track.direction]"
|
var/cache_key="[track.basecolor]|[state]|[track.direction]"
|
||||||
var/icon/I=null
|
var/icon/I=null
|
||||||
if(cache_key in fluidtrack_cache)
|
if(cache_key in fluidtrack_cache)
|
||||||
I = fluidtrack_cache[cache_key]
|
I = fluidtrack_cache[cache_key]
|
||||||
else
|
else
|
||||||
I = new /icon(icon, icon_state=state, dir=num2dir(truedir))
|
I = new /icon(icon, icon_state=state, dir=num2dir(truedir))
|
||||||
I.SwapColor("#000000",track.basecolor);
|
I.SwapColor("#000000",track.basecolor);
|
||||||
// This track is crusty.
|
// This track is crusty.
|
||||||
//if(track.wet<t)
|
//if(track.wet<t)
|
||||||
// I.SetIntensity(0.7)
|
// I.SetIntensity(0.7)
|
||||||
fluidtrack_cache[cache_key]=I
|
fluidtrack_cache[cache_key]=I
|
||||||
|
|
||||||
//if(track.wet<t)
|
//if(track.wet<t)
|
||||||
// track.crusty=1
|
// track.crusty=1
|
||||||
|
|
||||||
track.fresh=0
|
track.fresh=0
|
||||||
track.overlay=I
|
track.overlay=I
|
||||||
stack[stack_idx]=track
|
stack[stack_idx]=track
|
||||||
overlays += I
|
overlays += I
|
||||||
updatedtracks=0 // Clear our memory of updated tracks.
|
updatedtracks=0 // Clear our memory of updated tracks.
|
||||||
|
|
||||||
/obj/effect/decal/cleanable/blood/tracks/footprints
|
/obj/effect/decal/cleanable/blood/tracks/footprints
|
||||||
name = "wet footprints"
|
name = "wet footprints"
|
||||||
desc = "Whoops..."
|
desc = "Whoops..."
|
||||||
coming_state = "human1"
|
coming_state = "human1"
|
||||||
going_state = "human2"
|
going_state = "human2"
|
||||||
amount = 0
|
amount = 0
|
||||||
|
|
||||||
/obj/effect/decal/cleanable/blood/tracks/wheels
|
/obj/effect/decal/cleanable/blood/tracks/wheels
|
||||||
name = "wet tracks"
|
name = "wet tracks"
|
||||||
desc = "Whoops..."
|
desc = "Whoops..."
|
||||||
coming_state = "wheels"
|
coming_state = "wheels"
|
||||||
going_state = ""
|
going_state = ""
|
||||||
desc = "They look like tracks left by wheels."
|
desc = "They look like tracks left by wheels."
|
||||||
gender = PLURAL
|
gender = PLURAL
|
||||||
random_icon_states = null
|
random_icon_states = null
|
||||||
amount = 0
|
amount = 0
|
||||||
Reference in New Issue
Block a user