From ab29bbf6b7d326854ac395b885500b87313e7691 Mon Sep 17 00:00:00 2001 From: Chaplain Maximum Date: Fri, 21 Jun 2024 06:42:38 +0300 Subject: [PATCH 1/8] Adding handheld holopads --- mods/_fd/small_holopad/README.md | 80 ++++++ mods/_fd/small_holopad/_small_holopad.dm | 4 + mods/_fd/small_holopad/_small_holopad.dme | 11 + mods/_fd/small_holopad/code/holopad.dm | 270 ++++++++++++++++++ .../small_holopad/code/holopad_override.dm | 0 .../_fd/small_holopad/sounds/holopad_boot.ogg | Bin 0 -> 34721 bytes 6 files changed, 365 insertions(+) create mode 100644 mods/_fd/small_holopad/README.md create mode 100644 mods/_fd/small_holopad/_small_holopad.dm create mode 100644 mods/_fd/small_holopad/_small_holopad.dme create mode 100644 mods/_fd/small_holopad/code/holopad.dm create mode 100644 mods/_fd/small_holopad/code/holopad_override.dm create mode 100644 mods/_fd/small_holopad/sounds/holopad_boot.ogg diff --git a/mods/_fd/small_holopad/README.md b/mods/_fd/small_holopad/README.md new file mode 100644 index 0000000000000..57590e75c24ad --- /dev/null +++ b/mods/_fd/small_holopad/README.md @@ -0,0 +1,80 @@ + +#### Список PRов: + +- https://github.com/SierraBay/SierraBay12/pull/##### + + + +## Мод-пример + +ID мода: TINY_HOLOPAD + + +### Описание мода + +N/A + + +### Изменения *кор кода* + +- Отсутствуют + + +### Оверрайды + +- `code/holopad_override.dm:` +- - `/obj/machinery/hologram/holopad/bullet_act` + + + +### Дефайны + +- Отсутствуют + + +### Используемые файлы, не содержащиеся в модпаке + +- `mods/_fd/fd_assets/icons/obj/items/stock_parts.dmi` + + +### Авторы: + +Danilcus () +Портировал: ChaplanMaximum + diff --git a/mods/_fd/small_holopad/_small_holopad.dm b/mods/_fd/small_holopad/_small_holopad.dm new file mode 100644 index 0000000000000..40a63185f1d66 --- /dev/null +++ b/mods/_fd/small_holopad/_small_holopad.dm @@ -0,0 +1,4 @@ +/singleton/modpack/small_holopad + name = "Ручные Голопады" + desc = "Мод добавляет ручные голопады, позволяя их использовать командному составу, а так же позволяет СТРЕЛЯТЬ ПО ГОЛОПАДУ, дабы отключить его." + author = "ChaplanMaximum" diff --git a/mods/_fd/small_holopad/_small_holopad.dme b/mods/_fd/small_holopad/_small_holopad.dme new file mode 100644 index 0000000000000..6e051b6f21a3d --- /dev/null +++ b/mods/_fd/small_holopad/_small_holopad.dme @@ -0,0 +1,11 @@ +#ifndef MODPACK_SMALL_HOLOPAD +#define MODPACK_SMALL_HOLOPAD + +#include "_small_holopad.dm" + +#include "code/holopad.dm" +#include "code/holopad_override.dm" +// Далее просто включай свой код +// #include "code/something.dm" + +#endif diff --git a/mods/_fd/small_holopad/code/holopad.dm b/mods/_fd/small_holopad/code/holopad.dm new file mode 100644 index 0000000000000..58fbd75628488 --- /dev/null +++ b/mods/_fd/small_holopad/code/holopad.dm @@ -0,0 +1,270 @@ +#define CALL_NONE 0 +#define CALL_CALLING 1 +#define CALL_RINGING 2 +#define CALL_IN_CALL 3 + +/obj/item/device/holopad + name = "Holopad" + desc = "Small handheld disk with controls." + icon = 'mods/_fd/fd_assets/icons/obj/items/stock_parts.dmi' + icon_state = "holopad" + item_state = "card-id" + w_class = ITEM_SIZE_TINY + var/voice + var/id + var/uniq_id + var/obj/item/device/holopad/abonent = null + var/call_state = CALL_NONE + var/obj/overlay/hologram = null + var/updatingPos = 0 + var/hologram_color = HOLOPAD_SHORT_RANGE + origin_tech = list(TECH_DATA = 4, TECH_MAGNET = 4) + +/obj/item/device/holopad/Initialize() + uniq_id = random_id("holopad_device", 00000, 99999) + id = generate_planet_name() // Выглядит чуток получше + // Было rand(1000, 9999) + name = "[initial(name)] [id] #[uniq_id]" + voice = "Holopad [id]" + GLOB.listening_objects += src + . = ..() + +/obj/item/device/holopad/Destroy() + GLOB.listening_objects -= src + hangUp() + . = ..() + + +/obj/item/device/holopad/verb/setID() + set name="Set ID" + set category = "Object" + set src in usr + if(call_state != CALL_NONE) + to_chat(usr, SPAN_WARNING("Нельзя сменить ID прямо сейчас.")) + return + var/newid = sanitize(input(usr, "Укажите ID голопада!") as null|text, MAX_NAME_LEN) + if(newid && CanPhysicallyInteract(usr)) + id = newid + name = "[initial(name)] [id] #[uniq_id]" + +/obj/item/device/holopad/proc/getName(override_busy = 0) + if(call_state!=CALL_NONE && !override_busy) + return "Holopad [id] #[uniq_id] - busy" + else + return "Holopad [id] #[uniq_id]" + +/obj/item/device/holopad/proc/incall(obj/item/device/holopad/caller) + if(call_state != CALL_NONE) + return FALSE + abonent = caller + call_state = CALL_RINGING + icon_state = "holopad_ringing" + desc = "[initial(desc)]" + SPAN_NOTICE("
Входящий вызов - [caller.getName()].") + invoke_async(src, .proc/ring) + return TRUE + +/obj/item/device/holopad/proc/ring() + if(call_state != CALL_RINGING) + return + audible_message(SPAN_WARNING("Что-то жужжит..."), hearing_distance = 4) + addtimer(new Callback(src, .proc/ring), 50) + +/obj/item/device/holopad/proc/placeCall(mob/user) + var/list/Targets = list() + var/list/valid_z = GetConnectedZlevels(loc.z) + var/our_ship = map_sectors["[loc.z]"] + for(var/obj/overmap/visitable/ship in range(our_ship, 5)) + if(ship != our_ship) + valid_z += ship.map_z + for(var/obj/item/device/holopad/H in GLOB.listening_objects) + if( H == src || (!(H.loc.z in valid_z) && !(H.loc.loc?.z in valid_z)) ) + continue + Targets[H.getName()] = H + var/selection = input("Кого вы хотите вызвать?") as null|anything in Targets + if(!selection) + return + var/obj/item/device/holopad/target = Targets[selection] + if(!target) + return + if(target.incall(src)) + call_state = CALL_CALLING + abonent = target + icon_state = "holopad_calling" + desc = "[initial(desc)]" + SPAN_NOTICE("
Устанавливается соединение - [abonent.getName()].") + audible_message("[voice] передаёт, \"Запрос на подключение: [sanitize(abonent.getName(1))].\"", hearing_distance = 4) + else + desc = initial(desc) + audible_message("[voice] передаёт, \"Соединение разорвано.\"", hearing_distance = 4) + +/obj/item/device/holopad/proc/acceptCall() + if(call_state == CALL_RINGING) + var/confirm = alert(usr, "Ответить на звонок?", "Входящий вызов - [abonent.id]", "Да", "Нет") + if(isnull(confirm) || !CanDefaultInteract(usr)) + return TRUE + if(abonent && abonent.call_state == CALL_CALLING && confirm == "Да") + abonent.acceptCall() + call_state = CALL_IN_CALL + icon_state = "holopad_in_call" + addtimer(new Callback(src, .proc/update_holo), 1) + playsound(src.loc, 'mods/_fd/small_holopad/sounds/holopad_boot.ogg', 75, 1) + audible_message("[voice] передаёт, \"Соединение установлено.\"", hearing_distance = 4) + desc = "[initial(desc)]" + SPAN_NOTICE("
Связь - [abonent.getName()].") + else + icon_state = initial(icon_state) + desc = initial(desc) + abonent.hangUp() + + else if(call_state == CALL_CALLING) + call_state = CALL_IN_CALL + icon_state = "holopad_in_call" + addtimer(new Callback(src, .proc/update_holo), 1) + playsound(src.loc, 'mods/_fd/small_holopad/sounds/holopad_boot.ogg', 75, 1) + audible_message("[voice] передаёт, \"Соединение установлено.\"", hearing_distance = 4) + desc = "[initial(desc)]" + SPAN_NOTICE("
Связь - [abonent.getName()].") + +/obj/item/device/holopad/proc/hangUp(remote = 0) + if(!remote && abonent) + abonent.hangUp(1) + + if(call_state==CALL_NONE) + return + + audible_message("[voice] передаёт, \"Соединение разорвано.\"", hearing_distance = 4) + call_state = CALL_NONE + icon_state = initial(icon_state) + desc = initial(desc) + QDEL_NULL(hologram) + if(abonent) + if(abonent.hologram) + QDEL_NULL(abonent.hologram) + abonent = null + +/obj/item/device/holopad/forceMove() + ..() + update_holo() + +/mob/living/carbon/update_icon() + ..() + for(var/obj/item/device/holopad/pad in src) + pad.update_holo() + +/obj/item/device/holopad/proc/update_holo() + if(!abonent) + return + if(call_state == CALL_IN_CALL) + if(!abonent.hologram) + abonent.hologram = new() + abonent.hologram.anchored = 1 + abonent.hologram.layer = 5 + if(isliving(loc)) + abonent.hologram.name = "[abonent.loc.name] Hologram" + abonent.hologram.icon = getHologramIcon(getFullIcon(loc), hologram_color = hologram_color) + else + QDEL_NULL(abonent.hologram) + if(!abonent.updatingPos) + abonent.update_holo_pos() + +/obj/item/device/holopad/proc/update_holo_pos() + if(call_state != CALL_IN_CALL || !hologram) + updatingPos = 0 + return + updatingPos = 1 + if(isliving(loc)) + var/mob/living/L = loc + hologram.dir = turn(L.dir,180) + hologram.loc = L.loc + hologram.pixel_x = ((L.dir&4)?32:((L.dir&8)?-32:0)) + hologram.pixel_y = ((L.dir&1)?32:((L.dir&2)?-32:0)) + else if(isturf(loc)) + hologram.dir = abonent.loc.dir + hologram.loc = loc + hologram.pixel_x = pixel_x + 1 + hologram.pixel_y = pixel_y + pixel_z + 18 + else + hangUp() + addtimer(new Callback(src, .proc/update_holo_pos), 2) + + +/obj/item/device/holopad/attack_self(mob/user) + switch(call_state) + if(CALL_NONE) + placeCall() + if(CALL_CALLING) + hangUp() + if(CALL_RINGING) + acceptCall() + if(CALL_IN_CALL) + hangUp() + + +//EMOTES & SPEECH STUFF// + +/obj/item/device/holopad/hear_talk(mob/living/M, text, verb, datum/language/speaking) + if(abonent && call_state == CALL_IN_CALL) + abonent.broadcast_message(M, text, verb, speaking) + for(var/obj/item/device/holopad/holopads_around in view(abonent)) + if(isnull(abonent) || holopads_around == src) + continue + if(holopads_around.abonent && holopads_around.abonent != src) + holopads_around.abonent.broadcast_message(M, text, verb, speaking) + +//Leaving this here, but as far as I can see, nowhere actually calls this proc??? +/obj/item/device/holopad/see_emote(mob/living/M, text) + if(abonent) + abonent.visible_message("[text]") + +/obj/item/device/holopad/show_message(msg, type, alt, alt_type) + var/rendered + if(abonent && call_state == CALL_IN_CALL) + var/mob/master = abonent.loc + if(istype(master)) + if(findtext(msg, master.name)) + rendered = "The holographic image of [msg]" + if(type == AUDIBLE_MESSAGE && !rendered) //Or what the holopad can hear + rendered = "Holopad received, [msg]" + if(rendered) + for(var/mob/living/mobs in view(abonent)) +// if(mobs == caller_id) +// continue + mobs.show_message(rendered, type) + +/obj/item/device/holopad/proc/get_hear_message(name_used, text, verb, datum/language/speaking) + if(speaking) + return "Holopad received, [name_used] [speaking.format_message(text, verb)]" + return "Holopad received, [name_used] [verb], \"[text]\"" + +//Because the holopads can't 'speak', this is used to preserve languages on the other side. +//This is essentially atom.audible_message() except with language taken into account +/obj/item/device/holopad/proc/broadcast_message(mob/living/M, text, verb, datum/language/speaking) + var/turf/T = get_turf(src) + var/list/mobs = list() + var/list/objs = list() + get_mobs_and_objs_in_view_fast(T, 5, mobs, objs) + + var/used_name = M.GetVoice() + var/understood = get_hear_message(used_name, text, verb, speaking) + var/gibberish = get_hear_message(used_name, speaking ? speaking.scramble(text) : stars(text), verb, speaking) + + for(var/mob/hearer in mobs) + hearer.show_message(hearer.say_understands(M, speaking) ? understood : gibberish,2,null,1) + + for(var/obj/O in objs) + if(O != src) //Prevents echoes + O.show_message(understood,2,null,1) + + +/* +/obj/item/device/holopad/cheap + name = "Holopda" + desc = "New brand pda, now with holo-link and built-in clock!" + icon = 'icons/bos/obj/holopda.dmi' + w_class = ITEM_SIZE_SMALL + +/obj/item/device/holopad/cheap/examine(mob/user) + . = ..() + to_chat(user, "\the [src] displays [stationtime2text()].") +*/ +#undef CALL_NONE +#undef CALL_CALLING +#undef CALL_RINGING +#undef CALL_IN_CALL diff --git a/mods/_fd/small_holopad/code/holopad_override.dm b/mods/_fd/small_holopad/code/holopad_override.dm new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/mods/_fd/small_holopad/sounds/holopad_boot.ogg b/mods/_fd/small_holopad/sounds/holopad_boot.ogg new file mode 100644 index 0000000000000000000000000000000000000000..a8eb8a5dcc197494fa6cb892a22ed3aa8d294a9f GIT binary patch literal 34721 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 Date: Fri, 21 Jun 2024 06:42:44 +0300 Subject: [PATCH 2/8] Refactoring --- maps/torch_fd/fd_torch.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/maps/torch_fd/fd_torch.dm b/maps/torch_fd/fd_torch.dm index 798866a73c4d4..c63e3c83efb46 100644 --- a/maps/torch_fd/fd_torch.dm +++ b/maps/torch_fd/fd_torch.dm @@ -256,6 +256,7 @@ #include "../../mods/_fd/ascent/_ascent.dme" #include "../../mods/_fd/backgrounds/_fd_backgrounds.dme" #include "../../mods/_fd/bruno_items/_bruno_items.dme" + #include "../../mods/_fd/chem_furniture/_furniture.dme" #include "../../mods/_fd/combat_stances/_combat_stances.dme" #include "../../mods/_fd/complementary_xeno_ablities/_complementary_xeno_ablities.dme" #include "../../mods/_fd/conference_holopads/_conference_holopads.dme" @@ -270,8 +271,8 @@ #include "../../mods/_fd/multitile_vehicles/_multitile_vehicles.dme" #include "../../mods/_fd/old_space_cannons/_old_space_cannons.dme" #include "../../mods/_fd/random_rooms/_random_rooms.dme" + #include "../../mods/_fd/small_holopad/_small_holopad.dme" #include "../../mods/_fd/structure_storage/_structure_storage.dme" - #include "../../mods/_fd/chem_furniture/_furniture.dme" #include "../../mods/_fd/_maps/airfield/_airfield.dme" #include "../../mods/_fd/_maps/ares/_ares.dme" From 65105d5a81409dc36afe08b23691197079fdd6f2 Mon Sep 17 00:00:00 2001 From: Chaplain Maximum Date: Fri, 21 Jun 2024 06:45:22 +0300 Subject: [PATCH 3/8] Adding PR --- mods/_fd/small_holopad/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/_fd/small_holopad/README.md b/mods/_fd/small_holopad/README.md index 57590e75c24ad..da9a20e12b45e 100644 --- a/mods/_fd/small_holopad/README.md +++ b/mods/_fd/small_holopad/README.md @@ -1,7 +1,7 @@ #### Список PRов: -- https://github.com/SierraBay/SierraBay12/pull/##### +-