From 6d6792490d52065bbcecfce12007c8875001d59a Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Sat, 3 Jul 2021 16:06:08 -0400 Subject: [PATCH] Change directory for persisting, add vv helper --- code/game/objects/structures/artstuff.dm | 39 +++++++++++++----------- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/code/game/objects/structures/artstuff.dm b/code/game/objects/structures/artstuff.dm index d1fba70ef67..e28875632eb 100644 --- a/code/game/objects/structures/artstuff.dm +++ b/code/game/objects/structures/artstuff.dm @@ -159,7 +159,7 @@ /obj/item/canvas/proc/generate_proper_overlay() if(icon_generated) return - var/png_filename = "data/paintings/temp_painting.png" + var/png_filename = "data/persistent/paintings/temp_painting.png" var/result = rustg_dmi_create_png(png_filename,"[width]","[height]",get_data_string()) if(result) CRASH("Error generating painting png : [result]") @@ -273,23 +273,25 @@ var/persistence_id //Presets for art gallery mapping, for paintings to be shared across stations -/obj/structure/sign/painting/library +/obj/structure/sign/painting/public name = "\improper Public Painting Exhibit mounting" desc = "For art pieces hung by the public." desc_with_canvas = "A piece of art (or \"art\"). Anyone could've hung it." - persistence_id = "library" + persistence_id = "public" /obj/structure/sign/painting/library_secure name = "\improper Curated Painting Exhibit mounting" desc = "For masterpieces hand-picked by the curator." desc_with_canvas = "A masterpiece hand-picked by the curator, supposedly." - persistence_id = "library_secure" + persistence_id = "library" + req_one_access = list(access_library) /obj/structure/sign/painting/library_private // keep your smut away from prying eyes, or non-librarians at least name = "\improper Private Painting Exhibit mounting" desc = "For art pieces deemed too subversive or too illegal to be shared outside of curators." desc_with_canvas = "A painting hung away from lesser minds." persistence_id = "library_private" + req_one_access = list(access_library) /obj/structure/sign/painting/Initialize(mapload, dir, building) . = ..() @@ -324,6 +326,9 @@ . += "Use wirecutters to remove the painting." /obj/structure/sign/painting/proc/frame_canvas(mob/user,obj/item/canvas/new_canvas) + if(!allowed(user)) + to_chat(user, "You're not comfortable framing this canvas in such a prestigious spot!") + return if(user.drop_from_inventory(new_canvas, src)) current_canvas = new_canvas if(!current_canvas.finalized) @@ -387,14 +392,14 @@ if(!length(painting_category)) return //aborts loading anything this category has no usable paintings var/list/chosen = pick(painting_category) - if(!fexists("data/paintings/[persistence_id]/[chosen["md5"]].png")) //shitmin deleted this art, lets remove json entry to avoid errors + if(!fexists("data/persistent/paintings/[persistence_id]/[chosen["md5"]].png")) //shitmin deleted this art, lets remove json entry to avoid errors painting_category -= list(chosen) continue //and try again painting = chosen var/title = painting["title"] var/author_name = painting["author"] var/author_ckey = painting["ckey"] - var/png = "data/paintings/[persistence_id]/[painting["md5"]].png" + var/png = "data/persistent/paintings/[persistence_id]/[painting["md5"]].png" if(!title) title = "Untitled Artwork" //legacy artwork allowed null names which was bad for the json, lets fix that painting["title"] = title @@ -432,7 +437,7 @@ for(var/list/entry in SSpersistence.paintings) if(entry["md5"] == md5) return - var/png_directory = "data/paintings/[persistence_id]/" + var/png_directory = "data/persistent/paintings/[persistence_id]/" var/png_path = png_directory + "[md5].png" var/result = rustg_dmi_create_png(png_path,"[current_canvas.width]","[current_canvas.height]",data) if(result) @@ -445,7 +450,6 @@ "ckey" = current_canvas.author_ckey )) -/* /obj/structure/sign/painting/vv_get_dropdown() . = ..() VV_DROPDOWN_OPTION("removepainting", "Remove Persistent Painting") @@ -461,17 +465,16 @@ return var/md5 = md5(lowertext(current_canvas.get_data_string())) var/author = current_canvas.author_ckey - var/list/current = SSpersistence.paintings[persistence_id] - if(current) - for(var/list/entry in current) - if(entry["md5"] == md5) - current -= entry - var/png = "data/paintings/[persistence_id]/[md5].png" - fdel(png) + var/list/filenames_found = list() + for(var/list/entry in SSpersistence.paintings) + if(entry["md5"] == md5) + filenames_found += "data/persistent/paintings/[entry["persistence_id"]]/[entry["md5"]].png" + SSpersistence.paintings -= entry + for(var/png in filenames_found) + if(fexists(png)) + fdel(png) for(var/obj/structure/sign/painting/P in SSpersistence.painting_frames) if(P.current_canvas && md5(P.current_canvas.get_data_string()) == md5) QDEL_NULL(P.current_canvas) P.update_appearance() - log_admin("[key_name(user)] has deleted a persistent painting made by [author].") - message_admins("[key_name_admin(user)] has deleted persistent painting made by [author].") -*/ \ No newline at end of file + log_and_message_admins("[key_name_admin(user)] has deleted persistent painting made by [author].") \ No newline at end of file