diff --git a/code/game/objects/structures/artstuff.dm b/code/game/objects/structures/artstuff.dm
index 4cc8de58..339b39e3 100644
--- a/code/game/objects/structures/artstuff.dm
+++ b/code/game/objects/structures/artstuff.dm
@@ -222,17 +222,6 @@
framed_offset_x = 5
framed_offset_y = 6
-/obj/item/canvas/twentyfour_twentyfour
- name = "ai universal standard canvas"
- desc = "Besides being very large, the AI can accept these as a display from their internal database after you've hung it up."
- icon_state = "24x24"
- width = 24
- height = 24
- pixel_x = 2
- pixel_y = 1
- framed_offset_x = 4
- framed_offset_y = 5
-
/obj/item/wallframe/painting
name = "painting frame"
desc = "The perfect showcase for your favorite deathtrap memories."
@@ -284,9 +273,26 @@
if(persistence_id)
. += "Any painting placed here will be archived at the end of the shift."
if(current_canvas)
- current_canvas.ui_interact(user)
+ ui_interact(user, state = GLOB.physical_obscured_state)
. += "Use wirecutters to remove the painting."
+//Hyperstation UI hotwire code ahead. No, I'm not particularly proud of this but if it works, it works.
+/obj/structure/sign/painting/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \
+ datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
+
+ ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
+ if(!ui)
+ ui = new(user, src, ui_key, "canvas", name, current_canvas.ui_x, current_canvas.ui_y, master_ui, state)
+ ui.set_autoupdate(FALSE)
+ ui.open()
+
+/obj/structure/sign/painting/ui_data(mob/user)
+ . = ..()
+ .["grid"] = current_canvas.grid
+ .["name"] = current_canvas.painting_name
+ .["finalized"] = current_canvas.finalized
+//End of hotwire code
+
/obj/structure/sign/painting/wirecutter_act(mob/living/user, obj/item/I)
. = ..()
if(current_canvas)
@@ -319,9 +325,9 @@
/obj/structure/sign/painting/update_icon_state()
// icon_state = "[base_icon_state]-[current_canvas?.generated_icon ? "overlay" : "empty"]"
if(current_canvas?.generated_icon)
+ icon_state = "frame-null"
+ else
icon_state = "frame-empty"
- //else
- // icon_state = null // or "frame-empty"
return ..()
/obj/structure/sign/painting/update_overlays()
diff --git a/icons/obj/decals.dmi b/icons/obj/decals.dmi
index ef6dac69..49bb26f3 100644
Binary files a/icons/obj/decals.dmi and b/icons/obj/decals.dmi differ