[MIRROR] NtOS Emojipedia - PDA Emoji Messaging For All [MDB IGNORE] (#17402)

* 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.

* NtOS Emojipedia - PDA Emoji Messaging For All

* update emoji list to be valid

* animated emojis

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
This commit is contained in:
SkyratBot
2022-11-07 03:53:25 +01:00
committed by GitHub
parent 841bcd3b4b
commit 2582117684
13 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(ringer_status && 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>")