Merge branch 'master' into final_shuttle_touches_and_stuff

# Conflicts:
#	code/modules/power/breaker_box.dm
This commit is contained in:
alberyk
2022-01-17 19:36:22 -03:00
54 changed files with 407 additions and 181 deletions
+4 -27
View File
@@ -34,20 +34,6 @@
cells_amount++
capacity = C * 40 //Basic cells are such crap. Hyper cells needed to get on normal SMES levels.
/obj/machinery/power/smes/batteryrack/update_icon()
cut_overlays()
if(stat & BROKEN) return
if (output_attempt)
add_overlay("gsmes_outputting")
if(inputting)
add_overlay("gsmes_charging")
var/clevel = chargedisplay()
if(clevel>0)
add_overlay("gsmes_og[clevel]")
/obj/machinery/power/smes/batteryrack/chargedisplay()
return round(4 * charge/(capacity ? capacity : 5e6))
@@ -100,19 +86,10 @@
)
/obj/machinery/power/smes/batteryrack/makeshift/update_icon()
cut_overlays()
if(stat & BROKEN) return
if (output_attempt)
add_overlay("gsmes_outputting")
if(inputting)
add_overlay("gsmes_charging")
if (overcharge_percent > 100)
add_overlay("gsmes_overcharge")
else
var/clevel = chargedisplay()
if(clevel>0)
add_overlay("gsmes_og[clevel]")
.=..()
if(overcharge_percent > 100)
cut_overlays()
add_overlay("smes-crit")
//This mess of if-elses and magic numbers handles what happens if the engies don't pay attention and let it eat too much charge
//What happens depends on how much capacity has the ghetto smes and how much it is overcharged.
+25 -17
View File
@@ -10,8 +10,6 @@
icon = 'icons/obj/power.dmi'
icon_state = "bbox_off"
//directwired = 0
var/icon_state_on = "bbox_on"
var/icon_state_off = "bbox_off"
density = 1
anchored = 1
var/on = 0
@@ -24,6 +22,9 @@
LAZYADD(SSpower.breaker_boxes, src)
return ..()
/obj/machinery/power/breakerbox/update_icon()
icon_state = "bbox_[on ? "on" : "off"]"
/obj/machinery/power/breakerbox/Destroy()
LAZYREMOVE(SSpower.breaker_boxes, src)
SSmachinery.queue_rcon_update()
@@ -40,29 +41,30 @@
/obj/machinery/power/breakerbox/activated/LateInitialize()
set_state(1)
>>>>>>> master
/obj/machinery/power/breakerbox/examine(mob/user)
..()
if(on)
to_chat(user, "<span class='good'>It seems to be online.</span>")
to_chat(user, SPAN_GOOD("It seems to be online."))
else
to_chat(user, "<span class='bad'>It seems to be offline.</span>")
to_chat(user, SPAN_BAD("It seems to be offline."))
/obj/machinery/power/breakerbox/attack_ai(mob/user)
if(!ai_can_interact(user))
return
if(update_locked)
to_chat(user, "<span class='bad'>System locked. Please try again later.</span>")
to_chat(user, SPAN_BAD("System locked. Please try again later."))
return
if(busy)
to_chat(user, "<span class='bad'>System is busy. Please wait until current operation is finished before changing power settings.</span>")
to_chat(user, SPAN_BAD("System is busy. Please wait until current operation is finished before changing power settings."))
return
busy = 1
to_chat(user, "<span class='good'>Updating power settings..</span>")
to_chat(user, SPAN_GOOD("Updating power settings..."))
if(do_after(user, 50))
set_state(!on)
to_chat(user, "<span class='good'>Update Completed. New setting:[on ? "on": "off"]</span>")
to_chat(user, SPAN_GOOD("Update Completed. New setting:[on ? "on": "off"]"))
update_locked = 1
addtimer(CALLBACK(src, .proc/reset_locked), 600)
busy = 0
@@ -73,22 +75,21 @@
/obj/machinery/power/breakerbox/attack_hand(mob/user)
if(update_locked)
to_chat(user, "<span class='bad'>System locked. Please try again later.</span>")
to_chat(user, SPAN_BAD("System locked. Please try again later."))
return
if(busy)
to_chat(user, "<span class='bad'>System is busy. Please wait until current operation is finished before changing power settings.</span>")
to_chat(user, SPAN_BAD("System is busy. Please wait until current operation is finished before changing power settings."))
return
busy = 1
for(var/mob/O in viewers(user))
O.show_message(text("<span class='warning'>[user] started reprogramming [src]!</span>"), 1)
O.show_message(SPAN_WARNING("[user] started reprogramming [src]!"), 1)
if(do_after(user, 50))
set_state(!on)
user.visible_message(\
"<span class='notice'>[user.name] [on ? "enabled" : "disabled"] the breaker box!</span>",\
"<span class='notice'>You [on ? "enabled" : "disabled"] the breaker box!</span>")
user.visible_message(SPAN_NOTICE("[user.name] [on ? "enabled" : "disabled"] the breaker box!"), \
SPAN_NOTICE("You [on ? "enabled" : "disabled"] the breaker box!"))
update_locked = 1
addtimer(CALLBACK(src, .proc/reset_locked), 600)
busy = 0
@@ -98,13 +99,13 @@
var/newtag = input(user, "Enter new RCON tag. Use \"NO_TAG\" to disable RCON or leave empty to cancel.", "SMES RCON system") as text
if(newtag)
RCon_tag = newtag
to_chat(user, "<span class='notice'>You changed the RCON tag to: [newtag]</span>")
to_chat(user, SPAN_NOTICE("You changed the RCON tag to: [newtag]"))
SSmachinery.queue_rcon_update()
/obj/machinery/power/breakerbox/proc/set_state(var/state)
on = state
update_icon()
if(on)
icon_state = icon_state_on
var/list/connection_dirs = list()
for(var/direction in directions)
for(var/obj/structure/cable/C in get_step(src,direction))
@@ -129,7 +130,6 @@
C.mergeDiagonalsNetworks(C.d2)
else
icon_state = icon_state_off
for(var/obj/structure/cable/C in src.loc)
qdel(C)
@@ -139,3 +139,11 @@
set_state(!on)
update_locked = 1
addtimer(CALLBACK(src, .proc/reset_locked), 600)
/obj/machinery/power/breakerbox/activated
icon_state = "bbox_on"
// Enabled on server startup. Used in substations to keep them in bypass mode.
/obj/machinery/power/breakerbox/activated/Initialize()
. = ..()
set_state(1)
+12 -5
View File
@@ -3,7 +3,8 @@
name = "Placeholder Generator" //seriously, don't use this. It can't be anchored without VV magic.
desc = "A portable generator for emergency backup power"
icon = 'icons/obj/power.dmi'
icon_state = "portgen0"
icon_state = "portgen0_0"
var/base_icon = "portgen0"
density = TRUE
anchored = FALSE
@@ -57,6 +58,10 @@
soundloop.start()
return
/obj/machinery/power/port_gen/update_icon()
icon_state = "[base_icon]_[active]"
return ..()
/obj/machinery/power/port_gen/examine(mob/user)
if(!..(user, 1))
return
@@ -369,11 +374,11 @@
if(href_list["action"] == "enable")
if(!active && HasFuel() && !IsBroken())
active = TRUE
icon_state = "portgen1"
update_icon()
if(href_list["action"] == "disable")
if (active)
active = FALSE
icon_state = "portgen0"
update_icon()
if(href_list["action"] == "eject")
if(!active)
DropFuel()
@@ -388,7 +393,8 @@
/obj/machinery/power/port_gen/pacman/super
name = "S.U.P.E.R.P.A.C.M.A.N.-type Portable Generator"
desc = "A power generator that utilizes uranium sheets as fuel. Can run for much longer than the standard PACMAN type generators. Rated for 80 kW max safe output."
icon_state = "portgen1"
icon_state = "portgen1_0"
base_icon = "portgen1"
sheet_path = /obj/item/stack/material/uranium
sheet_name = "Uranium Sheets"
time_per_sheet = 576 //same power output, but a 50 sheet stack will last 2 hours at max safe power
@@ -415,7 +421,8 @@
/obj/machinery/power/port_gen/pacman/mrs
name = "M.R.S.P.A.C.M.A.N.-type Portable Generator"
desc = "An advanced power generator that runs on tritium. Rated for 200 kW maximum safe output!"
icon_state = "portgen2"
icon_state = "portgen2_0"
base_icon = "portgen2"
sheet_path = /obj/item/stack/material/tritium
sheet_name = "Tritium Fuel Sheets"
+2 -1
View File
@@ -329,9 +329,10 @@
// Parameters: None
// Description: Allows us to use special icon overlay for critical SMESs
/obj/machinery/power/smes/buildable/update_icon()
if (failing)
if(failing)
cut_overlays()
add_overlay("smes-crit")
add_overlay("smes-crit_screen")
else
..()