up port those (#17599)

This commit is contained in:
Kashargul
2025-04-26 19:22:22 +02:00
committed by GitHub
parent 44b5502f7a
commit 4d6ea5d336
9 changed files with 90 additions and 16 deletions
@@ -126,6 +126,9 @@
. += "<tr><td colspan = 4><hr></td></tr>"
for(var/thing in my_tracks)
var/data = GetAdminDataStringFor(thing, can_modify, user)
if(!isnull(data))
. += "<tr>[GetAdminDataStringFor(thing, can_modify, user)]</tr>"
. += "<tr>[GetAdminDataStringFor(thing, can_modify, user)]</tr>"
. += "<tr><td colspan = 4><hr></td></tr>"
+46 -5
View File
@@ -2,6 +2,15 @@
name = "filth"
entries_expire_at = 4 // 4 rounds, 24 hours.
var/saves_dirt = TRUE //VOREStation edit
has_admin_data = TRUE
/datum/persistent/filth/GetAdminDataStringFor(var/thing, var/can_modify, var/mob/user)
if(istype(thing, /obj/effect/decal/cleanable/crayon))
var/obj/effect/decal/cleanable/crayon/CRAY = thing
if(can_modify)
return "<td colspan = 3>[thing]</td><td>Loc:([CRAY.x],[CRAY.y],[CRAY.z]) P_X: [CRAY.pixel_x] P_Y: [CRAY.pixel_y] Color: [CRAY.art_color] Shading: [CRAY.art_shade] Type: [CRAY.art_type]</td><td><a href='byond://?src=\ref[src];caller=\ref[user];remove_entry=\ref[thing]'>Destroy</a></td>"
return "<td colspan = 4>[thing]</td>"
return null
/datum/persistent/filth/IsValidEntry(var/atom/entry)
. = ..() && entry.invisibility == 0
@@ -9,20 +18,44 @@
/datum/persistent/filth/CheckTokenSanity(var/list/token)
// byond's json implementation is "questionable", and uses types as keys and values without quotes sometimes even though they aren't valid json
token["path"] = istext(token["path"]) ? text2path(token["path"]) : token["path"]
return ..() && ispath(token["path"]) && (!saves_dirt || isnum(token["dirt"]))
token["pixel_x"] = istext(token["pixel_x"]) ? text2num(token["pixel_x"]) : token["pixel_x"]
token["pixel_y"] = istext(token["pixel_y"]) ? text2num(token["pixel_y"]) : token["pixel_y"]
return ..() && ispath(token["path"]) && (!saves_dirt || isnum(token["dirt"])) && isnum(token["pixel_x"]) && isnum(token["pixel_y"])
/datum/persistent/filth/CheckTurfContents(var/turf/T, var/list/token)
var/_path = token["path"]
return (locate(_path) in T) ? FALSE : TRUE
// return (locate(_path) in T) ? FALSE : TRUE
if(!ispath(_path, /obj/effect/decal/cleanable/crayon))
return (locate(_path) in T) ? FALSE : TRUE
// Crayon drawings aren't handled in graffiti, so we need to check if someone made "art" seperately from blood, dirt, etc.
var/too_much_crayon = 0
for(var/obj/effect/decal/cleanable/crayon/C in T)
too_much_crayon++
if(too_much_crayon >= 5)
return FALSE
return TRUE
/datum/persistent/filth/CreateEntryInstance(var/turf/creating, var/list/token)
var/_path = token["path"]
if (isspace(creating) || iswall(creating) ||isopenspace(creating))
return
if (saves_dirt)
new _path(creating, token["age"]+1, token["dirt"])
// new _path(creating, token["age"]+1)
var/atom/inst
if(ispath(_path, /obj/effect/decal/cleanable/crayon))
if(!findtext(token["art_color"], GLOB.is_color) || !findtext(token["art_shade"], GLOB.is_color) || !istext(token["art_type"]))
return
inst = new _path(creating, token["art_color"], token["art_shade"], token["art_type"], token["age"]+1)
else
new _path(creating, token["age"]+1)
if (saves_dirt)
new _path(creating, token["age"]+1, token["dirt"])
else
new _path(creating, token["age"]+1)
if(inst)
if(token["pixel_x"])
inst.pixel_x = token["pixel_x"]
if(token["pixel_y"])
inst.pixel_y = token["pixel_y"]
/datum/persistent/filth/GetEntryAge(var/atom/entry)
var/obj/effect/decal/cleanable/filth = entry
@@ -43,3 +76,11 @@
LAZYADDASSOC(., "path", "[GetEntryPath(entry)]")
if (saves_dirt)
LAZYADDASSOC(., "dirt", GetEntryDirt(entry))
LAZYADDASSOC(., "pixel_x", "[entry.pixel_x]")
LAZYADDASSOC(., "pixel_y", "[entry.pixel_y]")
if(istype(entry, /obj/effect/decal/cleanable/crayon))
var/obj/effect/decal/cleanable/crayon/Inst = entry
LAZYADDASSOC(., "art_type", "[Inst.art_type]")
LAZYADDASSOC(., "art_color", "[Inst.art_color]")
LAZYADDASSOC(., "art_shade", "[Inst.art_shade]")
@@ -3,6 +3,11 @@
entries_expire_at = 4 // This previously was at 50 rounds??? Over 10 days.
has_admin_data = TRUE
/datum/persistent/graffiti/CheckTokenSanity(var/list/token)
token["pixel_x"] = istext(token["pixel_x"]) ? text2num(token["pixel_x"]) : token["pixel_x"]
token["pixel_y"] = istext(token["pixel_y"]) ? text2num(token["pixel_y"]) : token["pixel_y"]
return ..() && isnum(token["pixel_x"]) && isnum(token["pixel_y"])
/datum/persistent/graffiti/GetValidTurf(var/turf/T, var/list/token)
var/turf/checking_turf = ..()
if(istype(checking_turf) && checking_turf.can_engrave())
@@ -20,6 +25,10 @@
var/obj/effect/decal/writing/inst = new /obj/effect/decal/writing(creating, token["age"]+1, token["message"], token["author"])
if(token["icon_state"])
inst.icon_state = token["icon_state"]
if(token["pixel_x"])
inst.pixel_x = token["pixel_x"]
if(token["pixel_y"])
inst.pixel_y = token["pixel_y"]
/datum/persistent/graffiti/IsValidEntry(var/atom/entry)
. = ..()
@@ -37,6 +46,8 @@
LAZYADDASSOC(., "author", "[save_graffiti.author ? save_graffiti.author : "unknown"]")
LAZYADDASSOC(., "message", "[save_graffiti.message]")
LAZYADDASSOC(., "icon_state", "[save_graffiti.icon_state]")
LAZYADDASSOC(., "pixel_x", "[save_graffiti.pixel_x]")
LAZYADDASSOC(., "pixel_y", "[save_graffiti.pixel_y]")
/datum/persistent/graffiti/GetAdminDataStringFor(var/thing, var/can_modify, var/mob/user)
var/obj/effect/decal/writing/save_graffiti = thing
+2 -3
View File
@@ -1,14 +1,13 @@
/datum/persistent/filth/trash
name = "trash"
saves_dirt = FALSE //VOREStation edit
saves_dirt = FALSE
has_admin_data = FALSE
/datum/persistent/filth/trash/CheckTurfContents(var/turf/T, var/list/tokens)
var/too_much_trash = 0
for(var/obj/item/trash/trash in T)
//VOREStation Addition Start
if(istype(T, /obj/item/trash/spitwad) || istype(T, /obj/item/trash/spitgum))
return FALSE
//VOREStation Addition End
too_much_trash++
if(too_much_trash >= 5)
return FALSE