mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-30 16:38:22 +01:00
For a robust crafting system, I need a new materials framework. For a new materials framework, I need to clean up reagents. To clean up reagents, I need to pare down foods from reagent holders. To pare down foods from reagent holders, I need to port edibility components. To port edibility components, I need to port processing components. To port processing components, I need to port tool behaviors. This is all back-end code, no new features or functionality from this.
48 lines
1.5 KiB
Plaintext
48 lines
1.5 KiB
Plaintext
/obj/machinery/power/emitter/gyrotron
|
|
name = "gyrotron"
|
|
icon = 'icons/obj/machinery/fusion.dmi'
|
|
desc = "A heavy-duty, highly configurable industrial gyrotron suited for powering fusion reactors."
|
|
icon_state = "emitter-off"
|
|
use_power = POWER_USE_IDLE
|
|
active_power_usage = GYRO_POWER
|
|
|
|
var/initial_id_tag
|
|
var/rate = 3
|
|
var/mega_energy = 1
|
|
|
|
/obj/machinery/power/emitter/gyrotron/anchored
|
|
anchored = TRUE
|
|
|
|
/obj/machinery/power/emitter/gyrotron/Initialize()
|
|
AddComponent(/datum/component/local_network_member, initial_id_tag)
|
|
change_power_consumption(mega_energy * GYRO_POWER, POWER_USE_ACTIVE)
|
|
. = ..()
|
|
|
|
/obj/machinery/power/emitter/gyrotron/process()
|
|
change_power_consumption(mega_energy * GYRO_POWER, POWER_USE_ACTIVE)
|
|
. = ..()
|
|
|
|
/obj/machinery/power/emitter/gyrotron/get_rand_burst_delay()
|
|
return rate * 10
|
|
|
|
/obj/machinery/power/emitter/gyrotron/get_burst_delay()
|
|
return rate * 10
|
|
|
|
/obj/machinery/power/emitter/gyrotron/get_emitter_beam()
|
|
var/obj/projectile/beam/emitter/E = ..()
|
|
E.damage = mega_energy * 50
|
|
return E
|
|
|
|
/obj/machinery/power/emitter/gyrotron/update_icon()
|
|
if (active && powernet && avail(active_power_usage))
|
|
icon_state = "emitter-on"
|
|
else
|
|
icon_state = "emitter-off"
|
|
|
|
/obj/machinery/power/emitter/gyrotron/attackby(obj/item/attacking_item, mob/user)
|
|
if(attacking_item.tool_behaviour == TOOL_MULTITOOL)
|
|
var/datum/component/local_network_member/fusion = GetComponent(/datum/component/local_network_member)
|
|
fusion.get_new_tag(user)
|
|
return
|
|
return ..()
|