mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-11 10:11:09 +00:00
## About The Pull Request The direction component outputs the direction of an entity if it's within 7 tiles of the circuit. Since it already checks the distance, I added distance as one of its outputs. Besides that, I did a pass over the generics and shells and resized many of them. Most I resized to be small or tiny, except for the airlock shell, which I set to be bulky because it's a whole ass door. The shells I didn't touch remain at 'normal' size. 1) All handheld shells set to small, compact remote set to tiny 2) all components and the generic of the circuit set to tiny 3) drone shell set to small 4) airlock shell set to bulky ## Why It's Good For The Game Returning the distance spares any would be circuiteers from having to do a labyrinthine set of calculations to determine distance themselves. Making most circuits more portable makes them more attractive for people to tote around. ## Changelog 🆑 Bisar qol: The 'direction' circuit component now also returns the distance of its target. balance: Most circuit shells and the generic component and generic circuit have had their size reduced. balance: The airlock circuit shell has had its size increased. /🆑 --------- Co-authored-by: Metekillot <ubuntu@ip-172-26-7-23.us-east-2.compute.internal> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
52 lines
1.7 KiB
Plaintext
52 lines
1.7 KiB
Plaintext
/**
|
|
* # Compact Remote
|
|
*
|
|
* A handheld device with one big button.
|
|
*/
|
|
/obj/item/compact_remote
|
|
name = "compact remote"
|
|
icon = 'icons/obj/science/circuits.dmi'
|
|
icon_state = "setup_small_simple"
|
|
inhand_icon_state = "electronic"
|
|
worn_icon_state = "electronic"
|
|
lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi'
|
|
light_system = OVERLAY_LIGHT_DIRECTIONAL
|
|
light_on = FALSE
|
|
w_class = WEIGHT_CLASS_TINY
|
|
|
|
/obj/item/compact_remote/Initialize(mapload)
|
|
. = ..()
|
|
AddComponent(/datum/component/shell, list(
|
|
new /obj/item/circuit_component/compact_remote()
|
|
), SHELL_CAPACITY_SMALL)
|
|
|
|
/obj/item/circuit_component/compact_remote
|
|
display_name = "Compact Remote"
|
|
desc = "Used to receive inputs from the compact remote shell. Use the shell in hand to trigger the output signal."
|
|
|
|
/// Called when attack_self is called on the shell.
|
|
var/datum/port/output/signal
|
|
/// The user who used the bot
|
|
var/datum/port/output/entity
|
|
|
|
/obj/item/circuit_component/compact_remote/populate_ports()
|
|
entity = add_output_port("User", PORT_TYPE_ATOM)
|
|
signal = add_output_port("Signal", PORT_TYPE_SIGNAL)
|
|
|
|
/obj/item/circuit_component/compact_remote/register_shell(atom/movable/shell)
|
|
RegisterSignal(shell, COMSIG_ITEM_ATTACK_SELF, PROC_REF(send_trigger))
|
|
|
|
/obj/item/circuit_component/compact_remote/unregister_shell(atom/movable/shell)
|
|
UnregisterSignal(shell, COMSIG_ITEM_ATTACK_SELF)
|
|
|
|
/**
|
|
* Called when the shell item is used in hand.
|
|
*/
|
|
/obj/item/circuit_component/compact_remote/proc/send_trigger(atom/source, mob/user)
|
|
SIGNAL_HANDLER
|
|
source.balloon_alert(user, "clicked primary button")
|
|
playsound(source, SFX_TERMINAL_TYPE, 25, FALSE)
|
|
entity.set_output(user)
|
|
signal.set_output(COMPONENT_SIGNAL)
|