mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-24 04:28:12 +01:00
Merge pull request #6464 from Heroman3003/telemaster
Makes telecomm machinery constructible/deconstructible like normal machines
This commit is contained in:
@@ -22,7 +22,17 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept
|
||||
machinetype = 5
|
||||
produces_heat = 0
|
||||
delay = 7
|
||||
circuitboard = "/obj/item/weapon/circuitboard/telecomms/broadcaster"
|
||||
circuit = /obj/item/weapon/circuitboard/telecomms/broadcaster
|
||||
|
||||
/obj/machinery/telecomms/processor/Initialize()
|
||||
. = ..()
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/subspace/sub_filter(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/subspace/crystal(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/micro_laser/high(src)
|
||||
component_parts += new /obj/item/stack/cable_coil(src, 1)
|
||||
|
||||
/obj/machinery/telecomms/broadcaster/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from)
|
||||
// Don't broadcast rejected signals
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
|
||||
/obj/machinery/telecomms
|
||||
var/temp = "" // output message
|
||||
var/construct_op = 0
|
||||
|
||||
|
||||
/obj/machinery/telecomms/attackby(obj/item/P as obj, mob/user as mob)
|
||||
@@ -21,7 +20,6 @@
|
||||
if(istype(P, /obj/item/device/multitool))
|
||||
attack_hand(user)
|
||||
|
||||
|
||||
// REPAIRING: Use Nanopaste to repair 10-20 integrity points.
|
||||
if(istype(P, /obj/item/stack/nanopaste))
|
||||
var/obj/item/stack/nanopaste/T = P
|
||||
@@ -34,75 +32,10 @@
|
||||
return
|
||||
|
||||
|
||||
switch(construct_op)
|
||||
if(0)
|
||||
if(P.is_screwdriver())
|
||||
to_chat(user, "You unfasten the bolts.")
|
||||
playsound(src.loc, P.usesound, 50, 1)
|
||||
construct_op ++
|
||||
if(1)
|
||||
if(P.is_screwdriver())
|
||||
to_chat(user, "You fasten the bolts.")
|
||||
playsound(src.loc, P.usesound, 50, 1)
|
||||
construct_op --
|
||||
if(P.is_wrench())
|
||||
to_chat(user, "You dislodge the external plating.")
|
||||
playsound(src.loc, P.usesound, 75, 1)
|
||||
construct_op ++
|
||||
if(2)
|
||||
if(P.is_wrench())
|
||||
to_chat(user, "You secure the external plating.")
|
||||
playsound(src.loc, P.usesound, 75, 1)
|
||||
construct_op --
|
||||
if(P.is_wirecutter())
|
||||
playsound(src.loc, P.usesound, 50, 1)
|
||||
to_chat(user, "You remove the cables.")
|
||||
construct_op ++
|
||||
var/obj/item/stack/cable_coil/A = new /obj/item/stack/cable_coil( user.loc )
|
||||
A.amount = 5
|
||||
stat |= BROKEN // the machine's been borked!
|
||||
if(3)
|
||||
if(istype(P, /obj/item/stack/cable_coil))
|
||||
var/obj/item/stack/cable_coil/A = P
|
||||
if (A.use(5))
|
||||
to_chat(user, "<span class='notice'>You insert the cables.</span>")
|
||||
construct_op--
|
||||
stat &= ~BROKEN // the machine's not borked anymore!
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You need five coils of wire for this.</span>")
|
||||
if(P.is_crowbar())
|
||||
to_chat(user, "You begin prying out the circuit board other components...")
|
||||
playsound(src.loc, P.usesound, 50, 1)
|
||||
if(do_after(user,60 * P.toolspeed))
|
||||
to_chat(user, "You finish prying out the components.")
|
||||
|
||||
// Drop all the component stuff
|
||||
if(contents.len > 0)
|
||||
for(var/obj/x in src)
|
||||
x.loc = user.loc
|
||||
else
|
||||
|
||||
// If the machine wasn't made during runtime, probably doesn't have components:
|
||||
// manually find the components and drop them!
|
||||
var/newpath = text2path(circuitboard)
|
||||
var/obj/item/weapon/circuitboard/C = new newpath
|
||||
for(var/I in C.req_components)
|
||||
for(var/i = 1, i <= C.req_components[I], i++)
|
||||
newpath = text2path(I)
|
||||
var/obj/item/s = new newpath
|
||||
s.loc = user.loc
|
||||
if(istype(P, /obj/item/stack/cable_coil))
|
||||
var/obj/item/stack/cable_coil/A = P
|
||||
A.amount = 1
|
||||
|
||||
// Drop a circuit board too
|
||||
C.loc = user.loc
|
||||
|
||||
// Create a frame and delete the current machine
|
||||
var/obj/structure/frame/F = new
|
||||
F.loc = src.loc
|
||||
qdel(src)
|
||||
|
||||
if(default_deconstruction_screwdriver(user, P))
|
||||
return
|
||||
if(default_deconstruction_crowbar(user, P))
|
||||
return
|
||||
|
||||
/obj/machinery/telecomms/attack_ai(var/mob/user as mob)
|
||||
attack_hand(user)
|
||||
|
||||
@@ -32,7 +32,6 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list()
|
||||
var/produces_heat = 1 //whether the machine will produce heat when on.
|
||||
var/delay = 10 // how many process() ticks to delay per heat
|
||||
var/long_range_link = 0 // Can you link it across Z levels or on the otherside of the map? (Relay & Hub)
|
||||
var/circuitboard = null // string pointing to a circuitboard type
|
||||
var/hide = 0 // Is it a hidden machine?
|
||||
var/listening_level = 0 // 0 = auto set in New() - this is the z level that the machine is listening to.
|
||||
|
||||
@@ -256,7 +255,17 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list()
|
||||
idle_power_usage = 600
|
||||
machinetype = 1
|
||||
produces_heat = 0
|
||||
circuitboard = "/obj/item/weapon/circuitboard/telecomms/receiver"
|
||||
circuit = /obj/item/weapon/circuitboard/telecomms/receiver
|
||||
|
||||
/obj/machinery/telecomms/receiver/Initialize()
|
||||
. = ..()
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/subspace/ansible(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/subspace/sub_filter(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/micro_laser(src)
|
||||
RefreshParts()
|
||||
|
||||
/obj/machinery/telecomms/receiver/receive_signal(datum/signal/signal)
|
||||
|
||||
@@ -312,7 +321,7 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list()
|
||||
use_power = 1
|
||||
idle_power_usage = 1600
|
||||
machinetype = 7
|
||||
circuitboard = "/obj/item/weapon/circuitboard/telecomms/hub"
|
||||
circuit = /obj/item/weapon/circuitboard/telecomms/hub
|
||||
long_range_link = 1
|
||||
netspeed = 40
|
||||
var/list/telecomms_map
|
||||
@@ -320,6 +329,13 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list()
|
||||
/obj/machinery/telecomms/hub/Initialize()
|
||||
. = ..()
|
||||
LAZYINITLIST(telecomms_map)
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/subspace/sub_filter(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/subspace/sub_filter(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||
component_parts += new /obj/item/stack/cable_coil(src, 2)
|
||||
RefreshParts()
|
||||
|
||||
/obj/machinery/telecomms/hub/process()
|
||||
. = ..()
|
||||
@@ -365,12 +381,22 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list()
|
||||
idle_power_usage = 600
|
||||
machinetype = 8
|
||||
produces_heat = 0
|
||||
circuitboard = "/obj/item/weapon/circuitboard/telecomms/relay"
|
||||
circuit = /obj/item/weapon/circuitboard/telecomms/relay
|
||||
netspeed = 5
|
||||
long_range_link = 1
|
||||
var/broadcasting = 1
|
||||
var/receiving = 1
|
||||
|
||||
/obj/machinery/telecomms/relay/Initialize()
|
||||
. = ..()
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/subspace/sub_filter(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/subspace/sub_filter(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||
component_parts += new /obj/item/stack/cable_coil(src, 2)
|
||||
RefreshParts()
|
||||
|
||||
/obj/machinery/telecomms/relay/forceMove(var/newloc)
|
||||
. = ..(newloc)
|
||||
listening_level = z
|
||||
@@ -420,10 +446,19 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list()
|
||||
use_power = 1
|
||||
idle_power_usage = 1000
|
||||
machinetype = 2
|
||||
circuitboard = "/obj/item/weapon/circuitboard/telecomms/bus"
|
||||
circuit = /obj/item/weapon/circuitboard/telecomms/bus
|
||||
netspeed = 40
|
||||
var/change_frequency = 0
|
||||
|
||||
/obj/machinery/telecomms/bus/Initialize()
|
||||
. = ..()
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/subspace/sub_filter(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||
component_parts += new /obj/item/stack/cable_coil(src, 1)
|
||||
RefreshParts()
|
||||
|
||||
/obj/machinery/telecomms/bus/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from)
|
||||
|
||||
if(is_freq_listening(signal))
|
||||
@@ -473,23 +508,37 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list()
|
||||
idle_power_usage = 600
|
||||
machinetype = 3
|
||||
delay = 5
|
||||
circuitboard = "/obj/item/weapon/circuitboard/telecomms/processor"
|
||||
circuit = /obj/item/weapon/circuitboard/telecomms/processor
|
||||
var/process_mode = 1 // 1 = Uncompress Signals, 0 = Compress Signals
|
||||
|
||||
receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from)
|
||||
/obj/machinery/telecomms/processor/Initialize()
|
||||
. = ..()
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/subspace/sub_filter(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/subspace/treatment(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/subspace/treatment(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/subspace/amplifier(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/subspace/analyzer(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||
component_parts += new /obj/item/stack/cable_coil(src, 2)
|
||||
RefreshParts()
|
||||
|
||||
if(is_freq_listening(signal))
|
||||
/obj/machinery/telecomms/processor/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from)
|
||||
|
||||
if(process_mode)
|
||||
signal.data["compression"] = 0 // uncompress subspace signal
|
||||
else
|
||||
signal.data["compression"] = 100 // even more compressed signal
|
||||
if(is_freq_listening(signal))
|
||||
|
||||
if(istype(machine_from, /obj/machinery/telecomms/bus))
|
||||
relay_direct_information(signal, machine_from) // send the signal back to the machine
|
||||
else // no bus detected - send the signal to servers instead
|
||||
signal.data["slow"] += rand(5, 10) // slow the signal down
|
||||
relay_information(signal, "/obj/machinery/telecomms/server")
|
||||
if(process_mode)
|
||||
signal.data["compression"] = 0 // uncompress subspace signal
|
||||
else
|
||||
signal.data["compression"] = 100 // even more compressed signal
|
||||
|
||||
if(istype(machine_from, /obj/machinery/telecomms/bus))
|
||||
relay_direct_information(signal, machine_from) // send the signal back to the machine
|
||||
else // no bus detected - send the signal to servers instead
|
||||
signal.data["slow"] += rand(5, 10) // slow the signal down
|
||||
relay_information(signal, "/obj/machinery/telecomms/server")
|
||||
|
||||
|
||||
/*
|
||||
@@ -510,7 +559,7 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list()
|
||||
use_power = 1
|
||||
idle_power_usage = 300
|
||||
machinetype = 4
|
||||
circuitboard = "/obj/item/weapon/circuitboard/telecomms/server"
|
||||
circuit = /obj/item/weapon/circuitboard/telecomms/server
|
||||
var/list/log_entries = list()
|
||||
var/list/stored_names = list()
|
||||
var/list/TrafficActions = list()
|
||||
@@ -534,6 +583,15 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list()
|
||||
Compiler.Holder = src
|
||||
server_radio = new()
|
||||
|
||||
/obj/machinery/telecomms/server/Initialize()
|
||||
. = ..()
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/subspace/sub_filter(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||
component_parts += new /obj/item/stack/cable_coil(src, 1)
|
||||
RefreshParts()
|
||||
|
||||
/obj/machinery/telecomms/server/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from)
|
||||
|
||||
if(signal.data["message"])
|
||||
|
||||
Reference in New Issue
Block a user