Power Outlets (#19943)

* Added power outlets to the service area. More can be printed at RnD.
The capacitor can be upgraded to improve charging speed for connected
devices.
This commit is contained in:
Geeves
2024-10-04 16:53:51 +02:00
committed by GitHub
parent c2be56fe40
commit af4da2bb06
7 changed files with 121 additions and 4 deletions
+1
View File
@@ -3150,6 +3150,7 @@
#include "code\modules\power\fractal_reactor.dm"
#include "code\modules\power\generator.dm"
#include "code\modules\power\gravitygenerator.dm"
#include "code\modules\power\outlet.dm"
#include "code\modules\power\portgen.dm"
#include "code\modules\power\power.dm"
#include "code\modules\power\power_usage.dm"
@@ -37,8 +37,12 @@
// At this point, we know that APC can power us for this tick. Check if we also need to charge our battery, and then actually use the power.
if(battery_module && (battery_module.battery.charge < battery_module.battery.maxcharge))
power_usage += tesla_link.passive_charging_rate
battery_module.battery.give(tesla_link.passive_charging_rate * CELLRATE)
var/power_to_get = tesla_link.passive_charging_rate
if(istype(tesla_link, /obj/item/computer_hardware/tesla_link/charging_cable))
var/obj/item/computer_hardware/tesla_link/charging_cable/cable = tesla_link
power_to_get += cable.source.active_power_usage
power_usage += power_to_get
battery_module.battery.give(power_to_get * CELLRATE)
A.use_power_oneoff(power_usage, EQUIP)
return TRUE
+65
View File
@@ -0,0 +1,65 @@
// A simple power outlet that lets people charge modular computers
/obj/machinery/power/outlet
name = "power outlet"
desc = "A simple power outlet. You can charge your PDA or other modular computer device here."
icon = 'icons/obj/power.dmi'
icon_state = "outlet"
density = TRUE
anchored = TRUE
use_power = POWER_USE_OFF // doesn't use power by default, only when drawing power
active_power_usage = 200 // this variable serves to indicate the extra amount of juice this outlet will provide the tesla charger, since it's a dedicated machine
component_types = list(
/obj/item/stack/cable_coil{amount = 5},
/obj/item/stock_parts/capacitor,
/obj/item/circuitboard/outlet
)
/obj/machinery/power/outlet/Initialize()
. = ..()
connect_to_network()
/obj/machinery/power/outlet/update_icon()
icon_state = panel_open ? "[initial(icon_state)]-open" : initial(icon_state)
/obj/machinery/power/outlet/RefreshParts()
var/part_level = 0
for(var/obj/item/stock_parts/SP in component_parts)
part_level += SP.rating
active_power_usage = initial(active_power_usage) * part_level
/obj/machinery/power/outlet/attackby(obj/item/attacking_item, mob/user, params)
if(istype(attacking_item, /obj/item/modular_computer))
var/obj/item/modular_computer/C = attacking_item
if(istype(C.tesla_link, /obj/item/computer_hardware/tesla_link/charging_cable))
var/obj/item/computer_hardware/tesla_link/charging_cable/CC = C.tesla_link
CC.toggle(src, user)
return
else if(default_part_replacement(user, attacking_item))
return
else if(default_deconstruction_screwdriver(user, attacking_item))
return
else if(default_deconstruction_crowbar(user, attacking_item))
return
// since we'll mostly be on tables, don't block putting things on them if it's not a computer
var/obj/structure/table/table_underneath = locate() in loc
if(table_underneath)
return table_underneath.attackby(attacking_item, user, params)
return ..()
/obj/item/circuitboard/outlet
name = T_BOARD("power outlet")
build_path = /obj/machinery/power/outlet
board_type = BOARD_MACHINE
origin_tech = list(
TECH_ENGINEERING = 1,
TECH_POWER = 1
)
req_components = list(
"/obj/item/stack/cable_coil" = 5,
"/obj/item/stock_parts/capacitor" = 1
)
@@ -241,3 +241,8 @@
name = "oxygen regenerator"
req_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2)
build_path = /obj/item/circuitboard/oxyregenerator
/datum/design/circuit/power_outlet
name = "Power Outlet"
req_tech = list(TECH_ENGINEERING = 1, TECH_POWER = 1)
build_path = /obj/item/circuitboard/outlet
+6
View File
@@ -0,0 +1,6 @@
author: Geeves
delete-after: True
changes:
- rscadd: "Added power outlets to the service area. More can be printed at RnD. The capacitor can be upgraded to improve charging speed for connected devices."
Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 66 KiB

+38 -2
View File
@@ -26451,6 +26451,7 @@
pixel_x = -6;
pixel_y = 16
},
/obj/machinery/power/outlet,
/turf/simulated/floor/wood/mahogany,
/area/horizon/crew_quarters/lounge/bar)
"dRu" = (
@@ -33375,6 +33376,16 @@
/obj/machinery/atmospherics/portables_connector,
/turf/simulated/floor/tiled/dark,
/area/rnd/xenobiology/xenoflora)
"eTZ" = (
/obj/structure/table/stone/marble,
/obj/machinery/door/firedoor,
/obj/machinery/door/blast/shutters{
id = "shutters_deck2_kitchendesk";
name = "Kitchen Desk Shutter"
},
/obj/machinery/power/outlet,
/turf/simulated/floor/tiled/dark,
/area/horizon/kitchen)
"eUe" = (
/obj/structure/lattice,
/obj/machinery/atmospherics/pipe/manifold/visible/red,
@@ -36655,6 +36666,17 @@
/obj/structure/table/stone/marble,
/turf/simulated/floor/tiled/dark/full,
/area/horizon/kitchen)
"fsr" = (
/obj/structure/table/stone/marble,
/obj/machinery/door/firedoor,
/obj/machinery/door/blast/shutters{
dir = 8;
id = "shutters_deck2_kitchendesk";
name = "Kitchen Desk Shutter"
},
/obj/machinery/power/outlet,
/turf/simulated/floor/tiled/dark,
/area/horizon/kitchen)
"fst" = (
/obj/structure/cable/green{
icon_state = "1-2"
@@ -38826,6 +38848,7 @@
/obj/item/flame/candle{
pixel_y = 16
},
/obj/machinery/power/outlet,
/turf/simulated/floor/wood,
/area/horizon/crew_quarters/lounge/bar)
"fKB" = (
@@ -93581,6 +93604,7 @@
id = "bar_shutter";
name = "Bar Shutter"
},
/obj/machinery/power/outlet,
/turf/simulated/floor/tiled/dark,
/area/horizon/bar)
"nRQ" = (
@@ -108036,6 +108060,7 @@
pixel_x = 7;
pixel_y = 9
},
/obj/machinery/power/outlet,
/turf/simulated/floor/carpet/red,
/area/horizon/library)
"pZC" = (
@@ -121860,6 +121885,7 @@
/obj/random/pottedplant_small{
pixel_x = 6
},
/obj/machinery/power/outlet,
/turf/simulated/floor/carpet/red,
/area/horizon/library)
"sdV" = (
@@ -122338,6 +122364,7 @@
id = "bar_shutter";
name = "Bar Shutter"
},
/obj/machinery/power/outlet,
/turf/simulated/floor/tiled/dark,
/area/horizon/bar)
"shJ" = (
@@ -125293,6 +125320,7 @@
"sEW" = (
/obj/structure/table/wood,
/obj/item/toy/desk/newtoncradle,
/obj/machinery/power/outlet,
/turf/simulated/floor/carpet/red,
/area/horizon/library)
"sFd" = (
@@ -128158,6 +128186,7 @@
id = "bar_shutter";
name = "Bar Shutter"
},
/obj/machinery/power/outlet,
/turf/simulated/floor/tiled/dark,
/area/horizon/bar)
"taS" = (
@@ -138860,6 +138889,7 @@
name = "random potted plant, small (25% nothing)";
pixel_y = -2
},
/obj/machinery/power/outlet,
/turf/simulated/floor/carpet/red,
/area/horizon/crew_quarters/lounge/bar)
"uDs" = (
@@ -139019,6 +139049,7 @@
id = "bar_shutter";
name = "Bar Shutter"
},
/obj/machinery/power/outlet,
/turf/simulated/floor/tiled/dark,
/area/horizon/bar)
"uEF" = (
@@ -144161,6 +144192,7 @@
pixel_x = -7;
pixel_y = 3
},
/obj/machinery/power/outlet,
/turf/simulated/floor/carpet/red,
/area/horizon/bar)
"vsi" = (
@@ -148448,6 +148480,7 @@
id = "bar_shutter";
name = "Bar Shutter"
},
/obj/machinery/power/outlet,
/turf/simulated/floor/tiled/dark,
/area/horizon/bar)
"wan" = (
@@ -157772,6 +157805,7 @@
id = "bar_shutter";
name = "Bar Shutter"
},
/obj/machinery/power/outlet,
/turf/simulated/floor/tiled/dark,
/area/horizon/bar)
"xpP" = (
@@ -159480,6 +159514,7 @@
pixel_x = -4;
pixel_y = -2
},
/obj/machinery/power/outlet,
/turf/simulated/floor/wood,
/area/horizon/crew_quarters/lounge/bar)
"xBf" = (
@@ -164387,6 +164422,7 @@
pixel_x = -9;
pixel_y = 8
},
/obj/machinery/power/outlet,
/turf/simulated/floor/wood,
/area/horizon/crew_quarters/lounge/bar)
"ykQ" = (
@@ -263986,7 +264022,7 @@ ooh
hEG
txd
cJn
nsT
fsr
nsT
wav
wav
@@ -264242,7 +264278,7 @@ wZO
cpI
eeA
jBV
woe
eTZ
vAQ
wpe
acK