video sample
https://github.com/user-attachments/assets/24de419c-e155-4623-9d08-0ff6c0b7d228
### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:
| Path | Original Author | License |
| --- | --- | --- |
| icons/obj/whiteboard.dmi & icons/obj/whiteboard_portable.dmi |
KingOfThePing | CC BY-SA 3.0 |
| sound/effects/whiteboard_scribble_1.ogg,
sound/effects/whiteboard_scribble_2.ogg,
sound/effects/whiteboard_scribble_3.ogg | freesound_community
(https://pixabay.com/sound-effects/film-special-effects-marker-whiteboard-squeak03-83059/)
| Pixabay Licence |
---
aurorastation.dme | 1 +
code/__DEFINES/sound.dm | 1 +
code/game/objects/structures/barsign.dm | 115 +++++--
code/game/objects/structures/whiteboard.dm | 293 ++++++++++++++++++
code/game/sound/sound_keys/sound_keys.dm | 8 +
code/modules/cargo/items/recreation.dm | 28 ++
html/changelogs/kano-dot-whiteboards.yml | 5 +
icons/obj/whiteboard.dmi | Bin 0 -> 4723 bytes
icons/obj/whiteboard_portable.dmi | Bin 0 -> 615 bytes
maps/sccv_horizon/sccv_horizon.dmm | 95 ++++--
sound/effects/whiteboard_scribble_1.ogg | Bin 0 -> 23514 bytes
sound/effects/whiteboard_scribble_2.ogg | Bin 0 -> 23712 bytes
sound/effects/whiteboard_scribble_3.ogg | Bin 0 -> 51564 bytes
.../tgui/interfaces/OverlayChoice.tsx | 115 +++++++
14 files changed, 605 insertions(+), 56 deletions(-)
create mode 100644 code/game/objects/structures/whiteboard.dm
create mode 100644 html/changelogs/kano-dot-whiteboards.yml
create mode 100644 icons/obj/whiteboard.dmi
create mode 100644 icons/obj/whiteboard_portable.dmi
create mode 100644 sound/effects/whiteboard_scribble_1.ogg
create mode 100644 sound/effects/whiteboard_scribble_2.ogg
create mode 100644 sound/effects/whiteboard_scribble_3.ogg
create mode 100644 tgui/packages/tgui/interfaces/OverlayChoice.tsx
diff --git a/aurorastation.dme b/aurorastation.dme
index a8f148a0ceb..36a4ac3d44a 100644
--- a/aurorastation.dme
+++ b/aurorastation.dme
@@ -1496,6 +1496,7 @@
#include "code\game\objects\structures\watercloset.dm"
#include "code\game\objects\structures\weapon_rack.dm"
#include "code\game\objects\structures\weapons_rack.dm"
+#include "code\game\objects\structures\whiteboard.dm"
#include "code\game\objects\structures\windoor_assembly.dm"
#include "code\game\objects\structures\window.dm"
#include "code\game\objects\structures\barricades\_barricade.dm"
diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm
index 33692f821ef..07eaff88630 100644
--- a/code/__DEFINES/sound.dm
+++ b/code/__DEFINES/sound.dm
@@ -183,3 +183,4 @@
#define SFX_TRAY_HIT "tray_hit"
#define SFX_WIELD "wield"
#define SFX_PLASTIC_DRY_FIRE "plastic_dry_fire"
+#define SFX_WHITEBOARD_SCRIBBLE "whiteboard_scribble"
diff --git a/code/game/objects/structures/barsign.dm b/code/game/objects/structures/barsign.dm
index de0f8a0c465..06cb54b0e3e 100644
--- a/code/game/objects/structures/barsign.dm
+++ b/code/game/objects/structures/barsign.dm
@@ -1,3 +1,8 @@
+/// Lists of data passed over to tgui, obtained from numerous singletons. List contains lists of: "display_name", "icon", "icon_name", "singleton_path"
+GLOBAL_LIST_EMPTY(barsign_overlay_cache)
+GLOBAL_LIST_EMPTY(kitchensign_overlay_cache)
+GLOBAL_LIST_EMPTY(marketsign_overlay_cache)
+
/obj/structure/sign/double/barsign
icon = 'icons/obj/barsigns.dmi'
icon_state = "off"
@@ -9,21 +14,86 @@
var/currently_on = FALSE
var/on_icon_state
var/off_icon_state = "off"
+ /// Local reference of the global list associated with this object's singletons.
+ var/list/target_cache = list()
+
+/obj/structure/sign/double/barsign/mechanics_hints(mob/user, distance, is_adjacent)
+ . += ..()
+ . += "You can