mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-13 19:52:40 +00:00
- Fixes Paper and font tags stacking across rounds, as shown in:  - Fixes Graffiti being persistent for over 50 rounds (10+ days) - Sets Trash to be persistent for 4 rounds instead of 5 - Fixes Persistence being always-on because of if("persistence_enabled") config.persistence_enabled = 1. As explained: > it's on by default, which means config.txt will be read and if it's not there it stays at 1. If it is there,it gets set to 1. There is no way to disable it - Adds config options to enable/disable **Persistence for Maploaded objects**, as well as a verb to toggle such. - Adds Persistence to config. Currently IGNORE_MAPLOAD for Persistance is **Disabled.** Maploaded objects/dirt/etc will be saved by persistence, preserving current behavior.
51 lines
1.9 KiB
Plaintext
51 lines
1.9 KiB
Plaintext
/datum/persistent/graffiti
|
|
name = "graffiti"
|
|
tokens_per_line = 6
|
|
entries_expire_at = 4 // This previously was at 50 rounds??? Over 10 days.
|
|
has_admin_data = TRUE
|
|
|
|
/datum/persistent/graffiti/LabelTokens(var/list/tokens)
|
|
var/list/labelled_tokens = ..()
|
|
var/entries = LAZYLEN(labelled_tokens)
|
|
labelled_tokens["author"] = tokens[entries+1]
|
|
labelled_tokens["message"] = tokens[entries+2]
|
|
return labelled_tokens
|
|
|
|
/datum/persistent/graffiti/GetValidTurf(var/turf/T, var/list/tokens)
|
|
var/turf/checking_turf = ..()
|
|
if(istype(checking_turf) && checking_turf.can_engrave())
|
|
return checking_turf
|
|
|
|
/datum/persistent/graffiti/CheckTurfContents(var/turf/T, var/list/tokens)
|
|
var/too_much_graffiti = 0
|
|
for(var/obj/effect/decal/writing/W in .)
|
|
too_much_graffiti++
|
|
if(too_much_graffiti >= 5)
|
|
return FALSE
|
|
return TRUE
|
|
|
|
/datum/persistent/graffiti/CreateEntryInstance(var/turf/creating, var/list/tokens)
|
|
new /obj/effect/decal/writing(creating, tokens["age"]+1, tokens["message"], tokens["author"])
|
|
|
|
/datum/persistent/graffiti/IsValidEntry(var/atom/entry)
|
|
. = ..()
|
|
if(.)
|
|
var/turf/T = entry.loc
|
|
. = T.can_engrave()
|
|
|
|
/datum/persistent/graffiti/GetEntryAge(var/atom/entry)
|
|
var/obj/effect/decal/writing/save_graffiti = entry
|
|
return save_graffiti.graffiti_age
|
|
|
|
/datum/persistent/graffiti/CompileEntry(var/atom/entry, var/write_file)
|
|
. = ..()
|
|
var/obj/effect/decal/writing/save_graffiti = entry
|
|
LAZYADD(., "[save_graffiti.author ? save_graffiti.author : "unknown"]")
|
|
LAZYADD(., "[save_graffiti.message]")
|
|
|
|
/datum/persistent/graffiti/GetAdminDataStringFor(var/thing, var/can_modify, var/mob/user)
|
|
var/obj/effect/decal/writing/save_graffiti = thing
|
|
if(can_modify)
|
|
. = "<td colspan = 2>[save_graffiti.message]</td><td>[save_graffiti.author]</td><td><a href='byond://?src=\ref[src];caller=\ref[user];remove_entry=\ref[thing]'>Destroy</a></td>"
|
|
else
|
|
. = "<td colspan = 3>[save_graffiti.message]</td><td>[save_graffiti.author]</td>" |