Adds updated version of power debugging items

- Infinite powersource, Infinite grid load (powersink without boom) and APC dummy load.
- Not buildable, intended primarily for debugging or admin shenanigans. For mapped-in variants setting show_extended_information = FALSE is recommended.
This commit is contained in:
Atlantiscze
2020-04-23 07:48:53 +02:00
parent 51083ed119
commit b3d866c4d5
3 changed files with 66 additions and 30 deletions
+65
View File
@@ -0,0 +1,65 @@
/obj/machinery/power/debug_items/
icon = 'icons/obj/power.dmi'
icon_state = "tracker"
anchored = 1
density = 1
var/show_extended_information = 1 // Set to 0 to disable extra information on examining (for example, when used on admin events)
/obj/machinery/power/debug_items/examine(mob/user)
. = ..()
if(show_extended_information)
show_info(user)
/obj/machinery/power/debug_items/proc/show_info(var/mob/user)
if(!powernet)
to_chat(user, "This device is not connected to a powernet")
return
to_chat(user, "Connected to powernet: [powernet]")
to_chat(user, "Available power: [num2text(powernet.avail, 20)] W")
to_chat(user, "Load: [num2text(powernet.viewload, 20)] W")
to_chat(user, "Has alert: [powernet.problem ? "YES" : "NO"]")
to_chat(user, "Cables: [powernet.cables.len]")
to_chat(user, "Nodes: [powernet.nodes.len]")
// An infinite power generator. Adds energy to connected cable.
/obj/machinery/power/debug_items/infinite_generator
name = "Fractal Energy Reactor"
desc = "An experimental power generator capable of generating massive amounts of energy from subspace vacuum."
var/power_generation_rate = 1000000
/obj/machinery/power/debug_items/infinite_generator/process()
add_avail(power_generation_rate)
/obj/machinery/power/debug_items/infinite_generator/show_info(var/mob/user)
..()
to_chat(user, "Generator is providing [num2text(power_generation_rate, 20)] W")
// A cable powersink, without the explosion/network alarms normal powersink causes.
/obj/machinery/power/debug_items/infinite_cable_powersink
name = "Null Point Core"
desc = "An experimental device that disperses energy, used for grid stress-testing purposes."
var/power_usage_rate = 0
var/last_used = 0
/obj/machinery/power/debug_items/infinite_cable_powersink/process()
last_used = draw_power(power_usage_rate)
/obj/machinery/power/debug_items/infinite_cable_powersink/show_info(var/mob/user)
..()
to_chat(user, "Power sink is demanding [num2text(power_usage_rate, 20)] W")
to_chat(user, "[num2text(last_used, 20)] W was actually used last tick")
/obj/machinery/power/debug_items/infinite_apc_powersink
name = "APC Dummy Load"
desc = "A dummy load that connects to an APC, used for load testing purposes."
use_power = USE_POWER_ACTIVE
active_power_usage = 0
/obj/machinery/power/debug_items/infinite_apc_powersink/show_info(var/mob/user)
..()
to_chat(user, "Dummy load is using [num2text(active_power_usage, 20)] W")
to_chat(user, "Powered: [powered() ? "YES" : "NO"]")
-29
View File
@@ -1,29 +0,0 @@
// ###############################################################################
// # ITEM: FRACTAL ENERGY REACTOR #
// # FUNCTION: Generate infinite electricity. Used for map testing. #
// ###############################################################################
/obj/machinery/power/fractal_reactor
name = "Fractal Energy Reactor"
desc = "This thing drains power from fractal-subspace." // (DEBUG ITEM: INFINITE POWERSOURCE FOR MAP TESTING. CONTACT DEVELOPERS IF FOUND.)"
icon = 'icons/obj/power.dmi'
icon_state = "tracker" //ICON stolen from solar tracker. There is no need to make new texture for debug item
anchored = 1
density = 1
var/power_generation_rate = 1000000 //Defaults to 1MW of power.
var/powernet_connection_failed = 0
var/mapped_in = 0 //Do not announce creation when it's mapped in.
// This should be only used on Dev for testing purposes.
/obj/machinery/power/fractal_reactor/New()
..()
if(!mapped_in)
to_world("<b><font color='red'>WARNING:</font><font color='black'> Map testing power source activated at: X:[src.loc.x] Y:[src.loc.y] Z:[src.loc.z]</font></b>")
/obj/machinery/power/fractal_reactor/process()
if(!powernet && !powernet_connection_failed)
if(!connect_to_network())
powernet_connection_failed = 1
spawn(150) // Error! Check again in 15 seconds.
powernet_connection_failed = 0
add_avail(power_generation_rate)
+1 -1
View File
@@ -2481,7 +2481,7 @@
#include "code\modules\power\cable_ender.dm"
#include "code\modules\power\cable_heavyduty.dm"
#include "code\modules\power\cell.dm"
#include "code\modules\power\fractal_reactor.dm"
#include "code\modules\power\debug_items.dm"
#include "code\modules\power\generator.dm"
#include "code\modules\power\generator_type2.dm"
#include "code\modules\power\gravitygenerator.dm"