NtOS Emojipedia - PDA Emoji Messaging For All (#70829)

An Emojipedia app has been added to tablets, given to Mimes and Curators by default, allowing anyone to know all emojis. Additionally, emojis can be used in tablets by every job now.
This commit is contained in:
san7890
2022-11-06 04:06:50 -07:00
committed by GitHub
parent d9aab85f3c
commit f45347bff2
12 changed files with 135 additions and 11 deletions
@@ -0,0 +1,31 @@
/// A tablet app that lets anyone see all the valid emoji they can send via a PDA message (and even OOC!)
/datum/computer_file/program/emojipedia
filename = "emojipedia"
filedesc = "EmojiPedia"
category = PROGRAM_CATEGORY_CREW // we want everyone to be able to access this application, since everyone can send emoji via PDA messages
program_icon_state = "generic"
extended_desc = "This program allows you to view all the emojis you can send via PDA messages."
size = 3
tgui_id = "NtosEmojipedia"
program_icon = "icons"
/// Store the list of potential emojis here.
var/static/list/emoji_list = icon_states(icon(EMOJI_SET))
/datum/computer_file/program/emojipedia/New()
. = ..()
// Sort the emoji list so it's easier to find things and we don't have to keep sorting on ui_data since the number of emojis can not change in-game.
emoji_list = sortTim(emoji_list, /proc/cmp_text_asc)
/datum/computer_file/program/emojipedia/ui_static_data(mob_user)
var/list/data = get_header_data()
for(var/emoji in emoji_list)
data["emoji_list"] += list(list(
"name" = emoji,
))
return data
/datum/computer_file/program/emojipedia/ui_assets(mob/user)
return list(
get_asset_datum(/datum/asset/spritesheet/emojipedia),
)
@@ -30,8 +30,6 @@
var/datum/picture/saved_image
/// Whether the user is invisible to the message list.
var/invisible = FALSE
/// Whether or not we allow emojis to be sent by the user.
var/allow_emojis = FALSE
/// Whether or not we're currently looking at the message list.
var/viewing_messages = FALSE
// Whether or not this device is currently hidden from the message monitor.
@@ -292,7 +290,6 @@
"message" = html_decode(message),
"ref" = REF(computer),
"targets" = targets,
"emojis" = allow_emojis,
"rigged" = rigged,
"photo" = photo_path,
"automated" = FALSE,
@@ -311,9 +308,8 @@
playsound(src, 'sound/machines/terminal_error.ogg', 15, TRUE)
return FALSE
if(allow_emojis)
message = emoji_parse(message)//already sent- this just shows the sent emoji as one to the sender in the to_chat
signal.data["message"] = emoji_parse(signal.data["message"])
message = emoji_parse(message)//already sent- this just shows the sent emoji as one to the sender in the to_chat
signal.data["message"] = emoji_parse(signal.data["message"])
// Log it in our logs
var/list/message_data = list()
@@ -382,8 +378,7 @@
reply = "\[Automated Message\]"
var/inbound_message = signal.format_message()
if(signal.data["emojis"] == TRUE)//so will not parse emojis as such from pdas that don't send emojis
inbound_message = emoji_parse(inbound_message)
inbound_message = emoji_parse(inbound_message)
if(L.is_literate())
to_chat(L, "<span class='infoplain'>[icon2html(src)] <b>PDA message from [hrefstart][signal.data["name"]] ([signal.data["job"]])[hrefend], </b>[inbound_message] [reply]</span>")