From d0a6e957939e188a095fb84a8da1a407b79cb359 Mon Sep 17 00:00:00 2001
From: Artur
Date: Thu, 29 Jul 2021 20:26:04 +0300
Subject: [PATCH] gravitygenerator.dm now pretty much equal to tg's
Minus toggle_machine_stat and machine_stat mostly
---
code/modules/power/gravitygenerator.dm | 87 ++++++++++++++++----------
1 file changed, 55 insertions(+), 32 deletions(-)
diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm
index e37ae56e71..272a9deae2 100644
--- a/code/modules/power/gravitygenerator.dm
+++ b/code/modules/power/gravitygenerator.dm
@@ -27,12 +27,22 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
use_power = NO_POWER_USE
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
var/sprite_number = 0
+ ///Audio for when the gravgen is on
+ var/datum/looping_sound/gravgen/soundloop
+
+/obj/machinery/gravity_generator/main/Initialize()
+ . = ..()
+ soundloop = new(list(src), TRUE)
+
+/obj/machinery/gravity_generator/main/Destroy()
+ . = ..()
+ QDEL_NULL(soundloop)
/obj/machinery/gravity_generator/safe_throw_at(atom/target, range, speed, mob/thrower, spin = TRUE, diagonals_first = FALSE, datum/callback/callback, force = MOVE_FORCE_STRONG, gentle = FALSE)
return FALSE
/obj/machinery/gravity_generator/ex_act(severity, target)
- if(severity == 1) // Very sturdy.
+ if(severity >= EXPLODE_DEVASTATE) // Very sturdy.
set_broken()
/obj/machinery/gravity_generator/blob_act(obj/structure/blob/B)
@@ -40,12 +50,13 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
set_broken()
/obj/machinery/gravity_generator/zap_act(power, zap_flags)
- ..()
+ . = ..()
if(zap_flags & ZAP_MACHINE_EXPLOSIVE)
qdel(src)//like the singulo, tesla deletes it. stops it from exploding over and over
/obj/machinery/gravity_generator/update_icon_state()
icon_state = "[get_status()]_[sprite_number]"
+ return ..()
/obj/machinery/gravity_generator/proc/get_status()
return "off"
@@ -65,6 +76,7 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
if(main_part)
qdel(main_part)
set_broken()
+ QDEL_NULL(soundloop)
return ..()
//
@@ -80,14 +92,19 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
/obj/machinery/gravity_generator/part/get_status()
return main_part?.get_status()
-/obj/machinery/gravity_generator/part/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags)
- return main_part.attack_hand(user)
+/obj/machinery/gravity_generator/part/attack_hand(mob/user, list/modifiers)
+ return main_part.attack_hand(user, modifiers)
/obj/machinery/gravity_generator/part/set_broken()
..()
if(main_part && !(main_part.stat & BROKEN))
main_part.set_broken()
+/// Used to eat args
+/obj/machinery/gravity_generator/part/proc/on_update_icon(obj/machinery/gravity_generator/source, updates, updated)
+ SIGNAL_HANDLER
+ return update_appearance(updates)
+
//
// Generator which spawns with the station.
//
@@ -124,7 +141,7 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
var/charge_count = 100
var/current_overlay = null
var/broken_state = 0
- var/setting = 1 //Gravity value when on
+ var/setting = 1 //Gravity value when on
/obj/machinery/gravity_generator/main/Destroy() // If we somehow get deleted, remove all of our other parts.
investigate_log("was destroyed!", INVESTIGATE_GRAVITY)
@@ -149,13 +166,13 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
if(count == 5) // Middle
middle = part
if(count <= 3) // Their sprite is the top part of the generator
- part.density = FALSE
+ part.set_density(FALSE)
part.layer = WALL_OBJ_LAYER
part.sprite_number = count
part.main_part = src
parts += part
- part.update_icon()
- part.RegisterSignal(src, COMSIG_ATOM_UPDATED_ICON, /atom/proc/update_icon)
+ part.update_appearance()
+ part.RegisterSignal(src, COMSIG_ATOM_UPDATED_ICON, /obj/machinery/gravity_generator/part/proc/on_update_icon)
/obj/machinery/gravity_generator/main/proc/connected_parts()
return parts.len == 8
@@ -178,7 +195,7 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
if(M.stat & BROKEN)
M.set_fix()
broken_state = FALSE
- update_icon()
+ update_appearance()
set_power()
// Interaction
@@ -188,33 +205,33 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
switch(broken_state)
if(GRAV_NEEDS_SCREWDRIVER)
if(I.tool_behaviour == TOOL_SCREWDRIVER)
- to_chat(user, "You secure the screws of the framework.")
+ to_chat(user, span_notice("You secure the screws of the framework."))
I.play_tool_sound(src)
broken_state++
- update_icon()
+ update_appearance()
return
if(GRAV_NEEDS_WELDING)
if(I.tool_behaviour == TOOL_WELDER)
if(I.use_tool(src, user, 0, volume=50, amount=1))
- to_chat(user, "You mend the damaged framework.")
+ to_chat(user, span_notice("You mend the damaged framework."))
broken_state++
- update_icon()
+ update_appearance()
return
if(GRAV_NEEDS_PLASTEEL)
if(istype(I, /obj/item/stack/sheet/plasteel))
var/obj/item/stack/sheet/plasteel/PS = I
if(PS.get_amount() >= 10)
PS.use(10)
- to_chat(user, "You add the plating to the framework.")
+ to_chat(user, span_notice("You add the plating to the framework."))
playsound(src.loc, 'sound/machines/click.ogg', 75, TRUE)
broken_state++
- update_icon()
+ update_appearance()
else
- to_chat(user, "You need 10 sheets of plasteel!")
+ to_chat(user, span_warning("You need 10 sheets of plasteel!"))
return
if(GRAV_NEEDS_WRENCH)
if(I.tool_behaviour == TOOL_WRENCH)
- to_chat(user, "You secure the plating to the framework.")
+ to_chat(user, span_notice("You secure the plating to the framework."))
I.play_tool_sound(src)
set_fix()
return
@@ -233,12 +250,13 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
data["charge_count"] = charge_count
data["charging_state"] = charging_state
data["on"] = on
- data["operational"] = (stat & BROKEN) ? FALSE : TRUE
+ data["operational"] = (machine_stat & BROKEN) ? FALSE : TRUE
return data
/obj/machinery/gravity_generator/main/ui_act(action, params)
- if(..())
+ . = ..()
+ if(.)
return
switch(action)
@@ -252,7 +270,7 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
/obj/machinery/gravity_generator/main/power_change()
. = ..()
- investigate_log("has [stat & NOPOWER ? "lost" : "regained"] power.", INVESTIGATE_GRAVITY)
+ investigate_log("has [machine_stat & NOPOWER ? "lost" : "regained"] power.", INVESTIGATE_GRAVITY)
set_power()
/obj/machinery/gravity_generator/main/get_status()
@@ -270,7 +288,7 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
charging_state = new_state ? POWER_UP : POWER_DOWN // Startup sequence animation.
investigate_log("is now [charging_state == POWER_UP ? "charging" : "discharging"].", INVESTIGATE_GRAVITY)
- update_icon()
+ update_appearance()
// Set the state of the gravity.
/obj/machinery/gravity_generator/main/proc/set_state(new_state)
@@ -281,17 +299,19 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
var/alert = FALSE
if(SSticker.IsRoundInProgress())
if(on) // If we turned on and the game is live.
+ soundloop.start()
if(gravity_in_level() == FALSE)
alert = TRUE
investigate_log("was brought online and is now producing gravity for this level.", INVESTIGATE_GRAVITY)
message_admins("The gravity generator was brought online [ADMIN_VERBOSEJMP(src)]")
else
+ soundloop.stop()
if(gravity_in_level() == TRUE)
alert = TRUE
investigate_log("was brought offline and there is now no gravity for this level.", INVESTIGATE_GRAVITY)
message_admins("The gravity generator was brought offline with no backup generator. [ADMIN_VERBOSEJMP(src)]")
- update_icon()
+ update_appearance()
update_list()
src.updateUsrDialog()
if(alert)
@@ -391,13 +411,16 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
// Misc
/obj/item/paper/guides/jobs/engi/gravity_gen
- info = {"
-# Gravity Generator Instructions For Dummies
-Surprisingly, gravity isn't that hard to make! All you have to do is inject deadly radioactive minerals into a ball of energy and you have yourself gravity! You can turn the machine on or off when required but you must remember that the generator will EMIT RADIATION when charging or discharging, you can tell it is charging or discharging by the noise it makes, so please WEAR PROTECTIVE CLOTHING.
-### It blew up!
-Don't panic! The gravity generator was designed to be easily repaired. If, somehow, the sturdy framework did not survive then please proceed to panic; otherwise follow these steps.
-1. Secure the screws of the framework with a screwdriver.
-2. Mend the damaged framework with a welding tool.
-3. Add additional plasteel plating.
-4. Secure the additional plating with a wrench.
-"}
+ name = "paper- 'Generate your own gravity!'"
+ info = {"Gravity Generator Instructions For Dummies
+ Surprisingly, gravity isn't that hard to make! All you have to do is inject deadly radioactive minerals into a ball of
+ energy and you have yourself gravity! You can turn the machine on or off when required but you must remember that the generator
+ will EMIT RADIATION when charging or discharging, you can tell it is charging or discharging by the noise it makes, so please WEAR PROTECTIVE CLOTHING.
+
+ It blew up!
+ Don't panic! The gravity generator was designed to be easily repaired. If, somehow, the sturdy framework did not survive then
+ please proceed to panic; otherwise follow these steps.
+ - Secure the screws of the framework with a screwdriver.
+ - Mend the damaged framework with a welding tool.
+ - Add additional plasteel plating.
+ - Secure the additional plating with a wrench.
"}