Harddel Fix Pack #42 + Better Live Reftracking Support (#63877)

* Hard Del Fixes, Ref Tracking Changes
This commit is contained in:
LemonInTheDark
2022-01-12 13:46:13 -08:00
committed by GitHub
parent f3f7720d7e
commit f8aad14ae8
109 changed files with 865 additions and 733 deletions
@@ -12,7 +12,7 @@
desc = "An industrial computer integrated with a camera-assisted rapid construction drone."
networks = list("ss13")
circuit = /obj/item/circuitboard/computer/base_construction
off_action = new/datum/action/innate/camera_off/base_construction
off_action = /datum/action/innate/camera_off/base_construction
jump_action = null
icon_screen = "mining"
icon_keyboard = "rd_key"
@@ -23,8 +23,6 @@
var/list/structures = list()
///Internal RCD. Some construction actions rely on having this.
var/obj/item/construction/rcd/internal/internal_rcd
///Actions given to the console user to help with base building. Actions are generally carried out at the location of the eyeobj
var/list/datum/action/innate/construction_actions
/obj/machinery/computer/camera_advanced/base_construction/Initialize(mapload)
. = ..()
@@ -38,10 +36,10 @@
* Fill the construction_actios list with actions
*
* Instantiate each action object that we'll be giving to users of
* this console, and put it in the construction actions list.
* this console, and put it in the actions list
*/
/obj/machinery/computer/camera_advanced/base_construction/proc/populate_actions_list()
construction_actions = list()
return
/**
* Reload materials used by the console
@@ -81,11 +79,6 @@
///Go through every action object in the construction_action list (which should be fully initialized by now) and grant it to the user.
/obj/machinery/computer/camera_advanced/base_construction/GrantActions(mob/living/user)
..()
for (var/datum/action/innate/construction_action in construction_actions)
if(construction_action)
construction_action.target = src
construction_action.Grant(user)
actions += construction_action
//When the eye is in use, make it visible to players so they know when someone is building.
eyeobj.invisibility = 0
@@ -15,13 +15,12 @@
structures["turrets"] = 4
/obj/machinery/computer/camera_advanced/base_construction/aux/populate_actions_list()
construction_actions = list()
construction_actions.Add(new /datum/action/innate/construction/switch_mode())//Action for switching the RCD's build modes
construction_actions.Add(new /datum/action/innate/construction/build()) //Action for using the RCD
construction_actions.Add(new /datum/action/innate/construction/airlock_type()) //Action for setting the airlock type
construction_actions.Add(new /datum/action/innate/construction/window_type()) //Action for setting the window type
construction_actions.Add(new /datum/action/innate/construction/place_structure/fan()) //Action for spawning fans
construction_actions.Add(new /datum/action/innate/construction/place_structure/turret()) //Action for spawning turrets
actions += new /datum/action/innate/construction/switch_mode(src) //Action for switching the RCD's build modes
actions += new /datum/action/innate/construction/build(src) //Action for using the RCD
actions += new /datum/action/innate/construction/airlock_type(src) //Action for setting the airlock type
actions += new /datum/action/innate/construction/window_type(src) //Action for setting the window type
actions += new /datum/action/innate/construction/place_structure/fan(src) //Action for spawning fans
actions += new /datum/action/innate/construction/place_structure/turret(src) //Action for spawning turrets
/obj/machinery/computer/camera_advanced/base_construction/aux/find_spawn_spot()
//Aux base controller. Where the eyeobj will spawn.
@@ -11,6 +11,5 @@
internal_rcd.matter = internal_rcd.max_matter
/obj/machinery/computer/camera_advanced/base_construction/centcom/populate_actions_list()
construction_actions = list()
construction_actions.Add(new /datum/action/innate/construction/switch_mode())//Action for switching the RCD's build modes
construction_actions.Add(new /datum/action/innate/construction/build()) //Action for using the RCD
actions += new /datum/action/innate/construction/switch_mode(src) //Action for switching the RCD's build modes
actions += new /datum/action/innate/construction/build(src) //Action for using the RCD
@@ -29,6 +29,10 @@
AddElement(/datum/element/climbable, climb_time = crate_climb_time, climb_stun = 0)
update_appearance()
/obj/structure/closet/crate/Destroy()
QDEL_NULL(manifest)
return ..()
/obj/structure/closet/crate/update_overlays()
. = ..()
if(broken)
@@ -80,7 +84,7 @@
/obj/structure/closet/crate/open(mob/living/user, force = FALSE)
. = ..()
if(. && manifest)
if(. && !QDELETED(manifest))
to_chat(user, span_notice("The manifest is torn off [src]."))
playsound(src, 'sound/items/poster_ripped.ogg', 75, TRUE)
manifest.forceMove(get_turf(src))