mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-19 20:15:47 +01:00
[MIRROR] Scopes NODECONSTRUCT_1 from flags_1 to obj_flags [MDB IGNORE] (#25496)
* Scopes `NODECONSTRUCT_1` from `flags_1` to `obj_flags` * Update bitfields.dm * Modular * Update rack.dm --------- Co-authored-by: san7890 <the@san7890.com> Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
This commit is contained in:
+17
-19
@@ -17,45 +17,43 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204
|
||||
|
||||
/// Is this object currently processing in the atmos object list?
|
||||
#define ATMOS_IS_PROCESSING_1 (1<<0)
|
||||
/// For machines and structures that should not break into parts, eg, holodeck stuff
|
||||
#define NODECONSTRUCT_1 (1<<1)
|
||||
/// item has priority to check when entering or leaving
|
||||
#define ON_BORDER_1 (1<<2)
|
||||
#define ON_BORDER_1 (1<<1)
|
||||
///Whether or not this atom shows screentips when hovered over
|
||||
#define NO_SCREENTIPS_1 (1<<3)
|
||||
#define NO_SCREENTIPS_1 (1<<2)
|
||||
/// Prevent clicking things below it on the same turf eg. doors/ fulltile windows
|
||||
#define PREVENT_CLICK_UNDER_1 (1<<4)
|
||||
#define PREVENT_CLICK_UNDER_1 (1<<3)
|
||||
///specifies that this atom is a hologram that isnt real
|
||||
#define HOLOGRAM_1 (1<<5)
|
||||
#define HOLOGRAM_1 (1<<4)
|
||||
///Whether /atom/Initialize() has already run for the object
|
||||
#define INITIALIZED_1 (1<<6)
|
||||
#define INITIALIZED_1 (1<<5)
|
||||
/// was this spawned by an admin? used for stat tracking stuff.
|
||||
#define ADMIN_SPAWNED_1 (1<<7)
|
||||
#define ADMIN_SPAWNED_1 (1<<6)
|
||||
/// should not get harmed if this gets caught by an explosion?
|
||||
#define PREVENT_CONTENTS_EXPLOSION_1 (1<<8)
|
||||
#define PREVENT_CONTENTS_EXPLOSION_1 (1<<7)
|
||||
/// Should this object be paintable with very dark colors?
|
||||
#define ALLOW_DARK_PAINTS_1 (1<<9)
|
||||
#define ALLOW_DARK_PAINTS_1 (1<<8)
|
||||
/// Should this object be unpaintable?
|
||||
#define UNPAINTABLE_1 (1<<10)
|
||||
#define UNPAINTABLE_1 (1<<9)
|
||||
/// Is this atom on top of another atom, and as such has click priority?
|
||||
#define IS_ONTOP_1 (1<<11)
|
||||
#define IS_ONTOP_1 (1<<10)
|
||||
/// Is this atom immune to being dusted by the supermatter?
|
||||
#define SUPERMATTER_IGNORES_1 (1<<12)
|
||||
#define SUPERMATTER_IGNORES_1 (1<<11)
|
||||
/// If a turf can be made dirty at roundstart. This is also used in areas.
|
||||
#define CAN_BE_DIRTY_1 (1<<13)
|
||||
#define CAN_BE_DIRTY_1 (1<<12)
|
||||
/// Should we use the initial icon for display? Mostly used by overlay only objects
|
||||
#define HTML_USE_INITAL_ICON_1 (1<<14)
|
||||
#define HTML_USE_INITAL_ICON_1 (1<<13)
|
||||
/// Can players recolor this in-game via vendors (and maybe more if support is added)?
|
||||
#define IS_PLAYER_COLORABLE_1 (1<<15)
|
||||
#define IS_PLAYER_COLORABLE_1 (1<<14)
|
||||
/// Whether or not this atom has contextual screentips when hovered OVER
|
||||
#define HAS_CONTEXTUAL_SCREENTIPS_1 (1<<16)
|
||||
#define HAS_CONTEXTUAL_SCREENTIPS_1 (1<<15)
|
||||
/// Whether or not this atom is storing contents for a disassociated storage object
|
||||
#define HAS_DISASSOCIATED_STORAGE_1 (1<<17)
|
||||
#define HAS_DISASSOCIATED_STORAGE_1 (1<<16)
|
||||
/// If this atom has experienced a decal element "init finished" sourced appearance update
|
||||
/// We use this to ensure stacked decals don't double up appearance updates for no rasin
|
||||
/// Flag as an optimization, don't make this a trait without profiling
|
||||
/// Yes I know this is a stupid flag, no you can't take him from me
|
||||
#define DECAL_INIT_UPDATE_EXPERIENCED_1 (1<<18)
|
||||
#define DECAL_INIT_UPDATE_EXPERIENCED_1 (1<<17)
|
||||
|
||||
// Update flags for [/atom/proc/update_appearance]
|
||||
/// Update the atom's name
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
#define IGNORE_DENSITY (1<<11) //! Can we ignore density when building on this object? (for example, directional windows and grilles)
|
||||
#define INFINITE_RESKIN (1<<12) // We can reskin this item infinitely
|
||||
#define CONDUCTS_ELECTRICITY (1<<13) //! Can this object conduct electricity?
|
||||
#define NO_DECONSTRUCTION (1<<14) //! Prevent deconstruction of this object.
|
||||
|
||||
// If you add new ones, be sure to add them to /obj/Initialize as well for complete mapping support
|
||||
|
||||
|
||||
@@ -126,9 +126,6 @@ DEFINE_BITFIELD(flags_1, list(
|
||||
"IS_ONTOP_1" = IS_ONTOP_1,
|
||||
"IS_PLAYER_COLORABLE_1" = IS_PLAYER_COLORABLE_1,
|
||||
"NO_SCREENTIPS_1" = NO_SCREENTIPS_1,
|
||||
"NODECONSTRUCT_1" = NODECONSTRUCT_1,
|
||||
"NO_SCREENTIPS_1" = NO_SCREENTIPS_1,
|
||||
"NODECONSTRUCT_1" = NODECONSTRUCT_1,
|
||||
"ON_BORDER_1" = ON_BORDER_1,
|
||||
"PREVENT_CLICK_UNDER_1" = PREVENT_CLICK_UNDER_1,
|
||||
"PREVENT_CONTENTS_EXPLOSION_1" = PREVENT_CONTENTS_EXPLOSION_1,
|
||||
@@ -299,6 +296,7 @@ DEFINE_BITFIELD(obj_flags, list(
|
||||
"EMAGGED" = EMAGGED,
|
||||
"IGNORE_DENSITY" = IGNORE_DENSITY,
|
||||
"IN_USE" = IN_USE,
|
||||
"NO_DECONSTRUCTION" = NO_DECONSTRUCTION,
|
||||
"UNIQUE_RENAME" = UNIQUE_RENAME,
|
||||
))
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ GLOBAL_LIST_INIT(freon_color_matrix, list("#2E5E69", "#60A2A8", "#A1AFB1", rgb(0
|
||||
SIGNAL_HANDLER
|
||||
var/obj/obj_target = target
|
||||
obj_target.visible_message(span_danger("[obj_target] shatters into a million pieces!"))
|
||||
obj_target.flags_1 |= NODECONSTRUCT_1 // disable item spawning
|
||||
obj_target.obj_flags |= NO_DECONSTRUCTION // disable item spawning
|
||||
obj_target.deconstruct(FALSE) // call pre-deletion specialized code -- internals release gas etc
|
||||
|
||||
/// signal handler for COMSIG_MOVABLE_MOVED that unfreezes our target if it moves onto an open turf thats hotter than
|
||||
|
||||
@@ -35,7 +35,7 @@ Example:
|
||||
|
||||
```dm
|
||||
/obj/structure/table/Initialize(mapload)
|
||||
if (!(flags_1 & NODECONSTRUCT_1))
|
||||
if (!(obj_flags & NO_DECONSTRUCTION))
|
||||
var/static/list/tool_behaviors = list(
|
||||
TOOL_SCREWDRIVER = list(
|
||||
SCREENTIP_CONTEXT_RMB = "Disassemble",
|
||||
|
||||
@@ -799,7 +799,7 @@
|
||||
SEND_SIGNAL(src, COMSIG_MACHINERY_REFRESH_PARTS)
|
||||
|
||||
/obj/machinery/proc/default_pry_open(obj/item/crowbar, close_after_pry = FALSE, open_density = FALSE, closed_density = TRUE)
|
||||
. = !(state_open || panel_open || is_operational || (flags_1 & NODECONSTRUCT_1)) && crowbar.tool_behaviour == TOOL_CROWBAR
|
||||
. = !(state_open || panel_open || is_operational || (obj_flags & NO_DECONSTRUCTION)) && crowbar.tool_behaviour == TOOL_CROWBAR
|
||||
if(!.)
|
||||
return
|
||||
crowbar.play_tool_sound(src, 50)
|
||||
@@ -809,14 +809,14 @@
|
||||
close_machine(density_to_set = closed_density)
|
||||
|
||||
/obj/machinery/proc/default_deconstruction_crowbar(obj/item/crowbar, ignore_panel = 0, custom_deconstruct = FALSE)
|
||||
. = (panel_open || ignore_panel) && !(flags_1 & NODECONSTRUCT_1) && crowbar.tool_behaviour == TOOL_CROWBAR
|
||||
. = (panel_open || ignore_panel) && !(obj_flags & NO_DECONSTRUCTION) && crowbar.tool_behaviour == TOOL_CROWBAR
|
||||
if(!. || custom_deconstruct)
|
||||
return
|
||||
crowbar.play_tool_sound(src, 50)
|
||||
deconstruct(TRUE)
|
||||
|
||||
/obj/machinery/deconstruct(disassembled = TRUE)
|
||||
if(flags_1 & NODECONSTRUCT_1)
|
||||
if(obj_flags & NO_DECONSTRUCTION)
|
||||
return ..() //Just delete us, no need to call anything else.
|
||||
|
||||
on_deconstruction()
|
||||
@@ -874,7 +874,7 @@
|
||||
|
||||
/obj/machinery/atom_break(damage_flag)
|
||||
. = ..()
|
||||
if(!(machine_stat & BROKEN) && !(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(machine_stat & BROKEN) && !(obj_flags & NO_DECONSTRUCTION))
|
||||
set_machine_stat(machine_stat | BROKEN)
|
||||
SEND_SIGNAL(src, COMSIG_MACHINERY_BROKEN, damage_flag)
|
||||
update_appearance()
|
||||
@@ -921,7 +921,7 @@
|
||||
qdel(atom_part)
|
||||
|
||||
/obj/machinery/proc/default_deconstruction_screwdriver(mob/user, icon_state_open, icon_state_closed, obj/item/screwdriver)
|
||||
if((flags_1 & NODECONSTRUCT_1) || screwdriver.tool_behaviour != TOOL_SCREWDRIVER)
|
||||
if((obj_flags & NO_DECONSTRUCTION) || screwdriver.tool_behaviour != TOOL_SCREWDRIVER)
|
||||
return FALSE
|
||||
|
||||
screwdriver.play_tool_sound(src, 50)
|
||||
@@ -948,7 +948,7 @@
|
||||
if(!istype(replacer_tool))
|
||||
return FALSE
|
||||
|
||||
if((flags_1 & NODECONSTRUCT_1) && !replacer_tool.works_from_distance)
|
||||
if((obj_flags & NO_DECONSTRUCTION) && !replacer_tool.works_from_distance)
|
||||
return FALSE
|
||||
|
||||
var/shouldplaysound = FALSE
|
||||
|
||||
@@ -88,11 +88,11 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/barsign, 32)
|
||||
|
||||
/obj/machinery/barsign/atom_break(damage_flag)
|
||||
. = ..()
|
||||
if((machine_stat & BROKEN) && !(flags_1 & NODECONSTRUCT_1))
|
||||
if((machine_stat & BROKEN) && !(obj_flags & NO_DECONSTRUCTION))
|
||||
set_sign(new /datum/barsign/hiddensigns/signoff)
|
||||
|
||||
/obj/machinery/barsign/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
if(disassembled)
|
||||
new disassemble_result(drop_location())
|
||||
else
|
||||
|
||||
@@ -440,7 +440,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/camera/xray, 0)
|
||||
toggle_cam(null, 0)
|
||||
|
||||
/obj/machinery/camera/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
if(disassembled)
|
||||
var/obj/structure/camera_assembly/assembly = assembly_ref?.resolve()
|
||||
if(!assembly)
|
||||
|
||||
@@ -269,7 +269,7 @@
|
||||
|
||||
|
||||
/obj/structure/camera_assembly/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
new /obj/item/stack/sheet/iron(loc)
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
/obj/machinery/computer/screwdriver_act(mob/living/user, obj/item/I)
|
||||
if(..())
|
||||
return TRUE
|
||||
if(circuit && !(flags_1&NODECONSTRUCT_1))
|
||||
if(circuit && !(obj_flags & NO_DECONSTRUCTION))
|
||||
to_chat(user, span_notice("You start to disconnect the monitor..."))
|
||||
if(I.use_tool(src, user, time_to_unscrew, volume=50))
|
||||
deconstruct(TRUE, user)
|
||||
@@ -100,7 +100,7 @@
|
||||
|
||||
/obj/machinery/computer/deconstruct(disassembled = TRUE, mob/user)
|
||||
on_deconstruction()
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
if(circuit) //no circuit, no computer frame
|
||||
var/obj/structure/frame/computer/A = new /obj/structure/frame/computer(src.loc)
|
||||
A.setDir(dir)
|
||||
|
||||
@@ -223,7 +223,7 @@
|
||||
return TOOL_ACT_TOOLTYPE_SUCCESS
|
||||
|
||||
/obj/item/air_sensor/deconstruct(disassembled)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
new /obj/item/analyzer(loc)
|
||||
new /obj/item/stack/sheet/iron(loc, 1)
|
||||
return ..()
|
||||
|
||||
@@ -230,7 +230,7 @@
|
||||
return ..() // This hotkey is BLACKLISTED since it's used by /datum/component/simple_rotation
|
||||
|
||||
/obj/structure/frame/computer/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
if(state == 4)
|
||||
new /obj/item/shard(drop_location())
|
||||
new /obj/item/shard(drop_location())
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
pixel_shift = 32
|
||||
|
||||
/obj/machinery/computer/security/telescreen/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
new frame_type(loc)
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
|
||||
/obj/structure/frame/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
new /obj/item/stack/sheet/iron(loc, 5)
|
||||
if(circuit)
|
||||
circuit.forceMove(loc)
|
||||
@@ -410,7 +410,7 @@
|
||||
return part
|
||||
|
||||
/obj/structure/frame/machine/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
if(state >= 2)
|
||||
new /obj/item/stack/cable_coil(loc , 5)
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
req_access = null
|
||||
anchored = TRUE
|
||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
||||
flags_1 = NODECONSTRUCT_1
|
||||
obj_flags = NO_DECONSTRUCTION
|
||||
|
||||
/datum/track
|
||||
var/song_name = "generic"
|
||||
@@ -92,7 +92,7 @@
|
||||
return ..()
|
||||
|
||||
/obj/machinery/jukebox/attackby(obj/item/O, mob/user, params)
|
||||
if(!active && !(flags_1 & NODECONSTRUCT_1))
|
||||
if(!active && !(obj_flags & NO_DECONSTRUCTION))
|
||||
if(O.tool_behaviour == TOOL_WRENCH)
|
||||
if(!anchored && !isinspace())
|
||||
to_chat(user,span_notice("You secure [src] to the floor."))
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
var/bar_material = METAL
|
||||
|
||||
/obj/structure/barricade/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
make_debris()
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
emag_act()
|
||||
|
||||
/obj/machinery/digital_clock/deconstruct(disassembled = TRUE)
|
||||
if(flags_1 & NODECONSTRUCT_1)
|
||||
if(obj_flags & NO_DECONSTRUCTION)
|
||||
return
|
||||
if(disassembled)
|
||||
new /obj/item/wallframe/digital_clock(drop_location())
|
||||
|
||||
@@ -1515,7 +1515,7 @@
|
||||
|
||||
/obj/machinery/door/airlock/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir)
|
||||
if((damage_amount >= atom_integrity) && (damage_flag == BOMB))
|
||||
flags_1 |= NODECONSTRUCT_1 //If an explosive took us out, don't drop the assembly
|
||||
obj_flags |= NO_DECONSTRUCTION //If an explosive took us out, don't drop the assembly
|
||||
. = ..()
|
||||
if(atom_integrity < (0.75 * max_integrity))
|
||||
update_appearance()
|
||||
@@ -1531,7 +1531,7 @@
|
||||
assembly.update_appearance()
|
||||
|
||||
/obj/machinery/door/airlock/deconstruct(disassembled = TRUE, mob/user)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
var/obj/structure/door_assembly/A
|
||||
if(assemblytype)
|
||||
A = new assemblytype(loc)
|
||||
|
||||
@@ -659,7 +659,7 @@
|
||||
correct_state() //So we should re-evaluate our state
|
||||
|
||||
/obj/machinery/door/firedoor/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
var/turf/targetloc = get_turf(src)
|
||||
if(disassembled || prob(40))
|
||||
var/obj/structure/firelock_frame/unbuilt_lock = new assemblytype(targetloc)
|
||||
|
||||
@@ -302,7 +302,7 @@
|
||||
|
||||
|
||||
/obj/machinery/door/window/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1) && !disassembled)
|
||||
if(!(obj_flags & NO_DECONSTRUCTION) && !disassembled)
|
||||
for(var/i in 1 to shards)
|
||||
drop_debris(new /obj/item/shard(src))
|
||||
if(rods)
|
||||
@@ -346,7 +346,7 @@
|
||||
|
||||
/obj/machinery/door/window/screwdriver_act(mob/living/user, obj/item/tool)
|
||||
. = ..()
|
||||
if(flags_1 & NODECONSTRUCT_1)
|
||||
if(obj_flags & NO_DECONSTRUCTION)
|
||||
return
|
||||
if(density || operating)
|
||||
to_chat(user, span_warning("You need to open the door to access the maintenance panel!"))
|
||||
@@ -359,7 +359,7 @@
|
||||
|
||||
/obj/machinery/door/window/crowbar_act(mob/living/user, obj/item/tool)
|
||||
. = ..()
|
||||
if(flags_1 & NODECONSTRUCT_1)
|
||||
if(obj_flags & NO_DECONSTRUCTION)
|
||||
return
|
||||
if(!panel_open || density || operating)
|
||||
return
|
||||
|
||||
@@ -262,7 +262,7 @@
|
||||
playsound(src, break_sound, 50, TRUE)
|
||||
|
||||
/obj/machinery/drone_dispenser/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
new /obj/item/stack/sheet/iron(loc, 5)
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -453,7 +453,7 @@
|
||||
return ..()
|
||||
|
||||
/obj/machinery/firealarm/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
new /obj/item/stack/sheet/iron(loc, 1)
|
||||
if(buildstage > FIRE_ALARM_BUILD_NO_CIRCUIT)
|
||||
var/obj/item/item = new /obj/item/electronics/firealarm(loc)
|
||||
|
||||
@@ -145,7 +145,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/flasher, 26)
|
||||
power_change()
|
||||
|
||||
/obj/machinery/flasher/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
if(bulb)
|
||||
bulb.forceMove(loc)
|
||||
if(disassembled)
|
||||
|
||||
@@ -171,7 +171,7 @@
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/harvester/default_pry_open(obj/item/tool) //wew
|
||||
. = !(state_open || panel_open || (flags_1 & NODECONSTRUCT_1)) && tool.tool_behaviour == TOOL_CROWBAR //We removed is_operational here
|
||||
. = !(state_open || panel_open || (obj_flags & NO_DECONSTRUCTION)) && tool.tool_behaviour == TOOL_CROWBAR //We removed is_operational here
|
||||
if(.)
|
||||
tool.play_tool_sound(src, 50)
|
||||
visible_message(span_notice("[usr] pries open \the [src]."), span_notice("You pry open [src]."))
|
||||
|
||||
@@ -123,7 +123,7 @@ Possible to do for anyone motivated enough:
|
||||
|
||||
/obj/machinery/holopad/tutorial
|
||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
||||
flags_1 = NODECONSTRUCT_1
|
||||
obj_flags = NO_DECONSTRUCTION
|
||||
on_network = FALSE
|
||||
///Proximity monitor associated with this atom, needed for proximity checks.
|
||||
var/datum/proximity_monitor/proximity_monitor
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
return TOOL_ACT_TOOLTYPE_SUCCESS
|
||||
|
||||
/obj/machinery/igniter/deconstruct(disassembled)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
new /obj/item/stack/sheet/iron(loc, 5)
|
||||
new /obj/item/assembly/igniter(loc)
|
||||
return ..()
|
||||
@@ -201,7 +201,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/sparker, 26)
|
||||
return TOOL_ACT_TOOLTYPE_SUCCESS
|
||||
|
||||
/obj/machinery/sparker/deconstruct(disassembled)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
new /obj/item/wallframe/sparker(loc)
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -165,7 +165,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/tram, 32)
|
||||
update_appearance()
|
||||
|
||||
/obj/machinery/incident_display/deconstruct()
|
||||
if(flags_1 & NODECONSTRUCT_1)
|
||||
if(obj_flags & NO_DECONSTRUCTION)
|
||||
return
|
||||
|
||||
new /obj/item/stack/sheet/mineral/titanium(drop_location(), 2)
|
||||
|
||||
@@ -218,7 +218,7 @@
|
||||
set_transfer_rate(transfer_rate > MIN_IV_TRANSFER_RATE ? MIN_IV_TRANSFER_RATE : MAX_IV_TRANSFER_RATE)
|
||||
|
||||
/obj/machinery/iv_drip/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
new /obj/item/stack/sheet/iron(loc)
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -106,7 +106,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/light_switch, 26)
|
||||
power_change()
|
||||
|
||||
/obj/machinery/light_switch/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
new /obj/item/wallframe/light_switch(loc)
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -283,7 +283,7 @@
|
||||
|
||||
/obj/machinery/limbgrower/fullupgrade //Inherently cheaper organ production. This is to NEVER be inherently emagged, no valids.
|
||||
desc = "It grows new limbs using Synthflesh. This alien model seems more efficient."
|
||||
flags_1 = NODECONSTRUCT_1
|
||||
obj_flags = NO_DECONSTRUCTION
|
||||
circuit = /obj/item/circuitboard/machine/limbgrower/fullupgrade
|
||||
|
||||
/obj/machinery/limbgrower/fullupgrade/Initialize(mapload)
|
||||
|
||||
@@ -534,7 +534,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/newscaster, 30)
|
||||
|
||||
|
||||
/obj/machinery/newscaster/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
new /obj/item/stack/sheet/iron(loc, 2)
|
||||
new /obj/item/shard(loc)
|
||||
new /obj/item/shard(loc)
|
||||
|
||||
@@ -236,9 +236,8 @@
|
||||
|
||||
/obj/machinery/recycler/deathtrap
|
||||
name = "dangerous old crusher"
|
||||
obj_flags = CAN_BE_HIT | EMAGGED
|
||||
obj_flags = CAN_BE_HIT | EMAGGED | NO_DECONSTRUCTION
|
||||
crush_damage = 120
|
||||
flags_1 = NODECONSTRUCT_1
|
||||
|
||||
/obj/item/paper/guides/recycler
|
||||
name = "paper - 'garbage duty instructions'"
|
||||
|
||||
@@ -395,7 +395,7 @@ GLOBAL_LIST_EMPTY(req_console_ckey_departments)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/requests_console/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
new /obj/item/wallframe/requests_console(loc)
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -147,7 +147,7 @@
|
||||
return FALSE
|
||||
|
||||
/obj/machinery/sleeper/default_pry_open(obj/item/I) //wew
|
||||
. = !(state_open || panel_open || (flags_1 & NODECONSTRUCT_1)) && I.tool_behaviour == TOOL_CROWBAR
|
||||
. = !(state_open || panel_open || (obj_flags & NO_DECONSTRUCTION)) && I.tool_behaviour == TOOL_CROWBAR
|
||||
if(.)
|
||||
I.play_tool_sound(src, 50)
|
||||
visible_message(span_notice("[usr] pries open [src]."), span_notice("You pry open [src]."))
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/status_display/deconstruct(disassembled = TRUE)
|
||||
if(flags_1 & NODECONSTRUCT_1)
|
||||
if(obj_flags & NO_DECONSTRUCTION)
|
||||
return
|
||||
if(!disassembled)
|
||||
new /obj/item/stack/sheet/iron(drop_location(), 2)
|
||||
|
||||
@@ -308,7 +308,7 @@
|
||||
set_occupant(null)
|
||||
|
||||
/obj/machinery/suit_storage_unit/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
open_machine()
|
||||
dump_inventory_contents()
|
||||
if(card_reader_installed)
|
||||
@@ -794,21 +794,21 @@
|
||||
causes the SSU to break due to state_open being set to TRUE at the end, and the panel becoming inaccessible.
|
||||
*/
|
||||
/obj/machinery/suit_storage_unit/default_deconstruction_screwdriver(mob/user, icon_state_open, icon_state_closed, obj/item/screwdriver)
|
||||
if(!(flags_1 & NODECONSTRUCT_1) && screwdriver.tool_behaviour == TOOL_SCREWDRIVER && (uv || locked))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION) && screwdriver.tool_behaviour == TOOL_SCREWDRIVER && (uv || locked))
|
||||
to_chat(user, span_warning("You cant open the panel while its [locked ? "locked" : "decontaminating"]"))
|
||||
return TRUE
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/machinery/suit_storage_unit/default_pry_open(obj/item/crowbar)//needs to check if the storage is locked.
|
||||
. = !(state_open || panel_open || is_operational || locked || (flags_1 & NODECONSTRUCT_1)) && crowbar.tool_behaviour == TOOL_CROWBAR
|
||||
. = !(state_open || panel_open || is_operational || locked || (obj_flags & NO_DECONSTRUCTION)) && crowbar.tool_behaviour == TOOL_CROWBAR
|
||||
if(.)
|
||||
crowbar.play_tool_sound(src, 50)
|
||||
visible_message(span_notice("[usr] pries open \the [src]."), span_notice("You pry open \the [src]."))
|
||||
open_machine()
|
||||
|
||||
/obj/machinery/suit_storage_unit/default_deconstruction_crowbar(obj/item/crowbar, ignore_panel, custom_deconstruct)
|
||||
. = (!locked && panel_open && !(flags_1 & NODECONSTRUCT_1) && crowbar.tool_behaviour == TOOL_CROWBAR)
|
||||
. = (!locked && panel_open && !(obj_flags & NO_DECONSTRUCTION) && crowbar.tool_behaviour == TOOL_CROWBAR)
|
||||
if(.)
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
/obj/machinery/telecomms/allinone/indestructible
|
||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
||||
flags_1 = NODECONSTRUCT_1
|
||||
obj_flags = NO_DECONSTRUCTION
|
||||
|
||||
/obj/machinery/telecomms/allinone/receive_signal(datum/signal/subspace/signal)
|
||||
if(!istype(signal) || signal.transmission_method != TRANSMISSION_SUBSPACE) // receives on subspace only
|
||||
|
||||
@@ -416,7 +416,7 @@ GLOBAL_LIST_INIT(dye_registry, list(
|
||||
return attack_hand_secondary(user, modifiers)
|
||||
|
||||
/obj/machinery/washing_machine/deconstruct(disassembled = TRUE)
|
||||
if (!(flags_1 & NODECONSTRUCT_1))
|
||||
if (!(obj_flags & NO_DECONSTRUCTION))
|
||||
new /obj/item/stack/sheet/iron(drop_location(), 2)
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
push_over()
|
||||
|
||||
/obj/item/cardboard_cutout/deconstruct(disassembled)
|
||||
if(!(flags_1 & (HOLOGRAM_1|NODECONSTRUCT_1)))
|
||||
if(!(flags_1 & HOLOGRAM_1) || !(obj_flags & NO_DECONSTRUCTION))
|
||||
new /obj/item/stack/sheet/cardboard(loc, 1)
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -177,7 +177,7 @@
|
||||
tool.forceMove(drop_point)
|
||||
|
||||
/obj/item/surgery_tray/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
dump_contents()
|
||||
new /obj/item/stack/rods(drop_location(), 2)
|
||||
new /obj/item/stack/sheet/mineral/silver(drop_location())
|
||||
|
||||
@@ -380,7 +380,7 @@ GLOBAL_LIST_EMPTY(objects_by_id_tag)
|
||||
|
||||
/// Try to unwrench an object in a WONDERFUL DYNAMIC WAY
|
||||
/obj/proc/default_unfasten_wrench(mob/user, obj/item/wrench, time = 20)
|
||||
if((flags_1 & NODECONSTRUCT_1) || wrench.tool_behaviour != TOOL_WRENCH)
|
||||
if((obj_flags & NO_DECONSTRUCTION) || wrench.tool_behaviour != TOOL_WRENCH)
|
||||
return CANT_UNFASTEN
|
||||
|
||||
var/turf/ground = get_turf(src)
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
icon_state = "gelmound"
|
||||
|
||||
/obj/structure/alien/gelpod/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
new /obj/effect/mob_spawn/corpse/human/damaged(get_turf(src))
|
||||
qdel(src)
|
||||
|
||||
@@ -447,7 +447,7 @@
|
||||
|
||||
/obj/structure/alien/egg/atom_break(damage_flag)
|
||||
. = ..()
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
if(status != BURST)
|
||||
Burst(kill=TRUE)
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
smoothing_groups = SMOOTH_GROUP_ALIEN_NEST
|
||||
canSmoothWith = SMOOTH_GROUP_ALIEN_NEST
|
||||
build_stack_type = null
|
||||
flags_1 = NODECONSTRUCT_1
|
||||
obj_flags = NO_DECONSTRUCTION
|
||||
elevation = 0
|
||||
var/static/mutable_appearance/nest_overlay = mutable_appearance('icons/mob/nonhuman-player/alien.dmi', "nestoverlay", LYING_MOB_LAYER)
|
||||
|
||||
|
||||
@@ -34,12 +34,12 @@
|
||||
|
||||
/obj/structure/bed/examine(mob/user)
|
||||
. = ..()
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
. += span_notice("It's held together by a couple of <b>bolts</b>.")
|
||||
|
||||
/obj/structure/bed/add_context(atom/source, list/context, obj/item/held_item, mob/living/user)
|
||||
if(held_item)
|
||||
if(held_item.tool_behaviour != TOOL_WRENCH || flags_1 & NODECONSTRUCT_1)
|
||||
if(held_item.tool_behaviour != TOOL_WRENCH || obj_flags & NO_DECONSTRUCTION)
|
||||
return
|
||||
|
||||
context[SCREENTIP_CONTEXT_RMB] = "Dismantle"
|
||||
@@ -50,7 +50,7 @@
|
||||
return CONTEXTUAL_SCREENTIP_SET
|
||||
|
||||
/obj/structure/bed/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
if(build_stack_type)
|
||||
new build_stack_type(loc, build_stack_amount)
|
||||
..()
|
||||
@@ -59,7 +59,7 @@
|
||||
return attack_hand(user, modifiers)
|
||||
|
||||
/obj/structure/bed/wrench_act_secondary(mob/living/user, obj/item/weapon)
|
||||
if(flags_1 & NODECONSTRUCT_1)
|
||||
if(obj_flags & NO_DECONSTRUCTION)
|
||||
return TRUE
|
||||
|
||||
..()
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
|
||||
/obj/structure/chair/deconstruct(disassembled)
|
||||
// If we have materials, and don't have the NOCONSTRUCT flag
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
if(buildstacktype)
|
||||
new buildstacktype(loc,buildstackamount)
|
||||
else
|
||||
@@ -56,7 +56,7 @@
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/chair/attackby(obj/item/W, mob/user, params)
|
||||
if(flags_1 & NODECONSTRUCT_1)
|
||||
if(obj_flags & NO_DECONSTRUCTION)
|
||||
return . = ..()
|
||||
if(istype(W, /obj/item/assembly/shock_kit) && !HAS_TRAIT(src, TRAIT_ELECTRIFIED_BUCKLE))
|
||||
electrify_self(W, user)
|
||||
@@ -85,7 +85,7 @@
|
||||
|
||||
|
||||
/obj/structure/chair/wrench_act_secondary(mob/living/user, obj/item/weapon)
|
||||
if(flags_1&NODECONSTRUCT_1)
|
||||
if(obj_flags & NO_DECONSTRUCTION)
|
||||
return TRUE
|
||||
..()
|
||||
weapon.play_tool_sound(src)
|
||||
@@ -282,7 +282,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/chair/stool, 0)
|
||||
/obj/structure/chair/MouseDrop(over_object, src_location, over_location)
|
||||
. = ..()
|
||||
if(over_object == usr && Adjacent(usr))
|
||||
if(!item_chair || has_buckled_mobs() || src.flags_1 & NODECONSTRUCT_1)
|
||||
if(!item_chair || has_buckled_mobs() || src.obj_flags & NO_DECONSTRUCTION)
|
||||
return
|
||||
if(!usr.can_perform_action(src, NEED_DEXTERITY|NEED_HANDS))
|
||||
return
|
||||
@@ -495,7 +495,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/chair/stool/bar, 0)
|
||||
icon_state = null
|
||||
buildstacktype = null
|
||||
item_chair = null
|
||||
flags_1 = NODECONSTRUCT_1
|
||||
obj_flags = NO_DECONSTRUCTION
|
||||
alpha = 0
|
||||
|
||||
/obj/structure/chair/mime/post_buckle_mob(mob/living/M)
|
||||
|
||||
@@ -646,7 +646,7 @@ LINEN BINS
|
||||
..()
|
||||
|
||||
/obj/structure/bedsheetbin/screwdriver_act(mob/living/user, obj/item/tool)
|
||||
if(flags_1 & NODECONSTRUCT_1)
|
||||
if(obj_flags & NO_DECONSTRUCTION)
|
||||
return FALSE
|
||||
if(amount)
|
||||
to_chat(user, span_warning("The [src] must be empty first!"))
|
||||
|
||||
@@ -536,7 +536,7 @@ GLOBAL_LIST_EMPTY(roundstart_station_closets)
|
||||
return open(user)
|
||||
|
||||
/obj/structure/closet/deconstruct(disassembled = TRUE)
|
||||
if (!(flags_1 & NODECONSTRUCT_1))
|
||||
if (!(obj_flags & NO_DECONSTRUCTION))
|
||||
if(ispath(material_drop) && material_drop_amount)
|
||||
new material_drop(loc, material_drop_amount)
|
||||
if (secure)
|
||||
@@ -553,7 +553,7 @@ GLOBAL_LIST_EMPTY(roundstart_station_closets)
|
||||
|
||||
/obj/structure/closet/atom_break(damage_flag)
|
||||
. = ..()
|
||||
if(!broken && !(flags_1 & NODECONSTRUCT_1))
|
||||
if(!broken && !(obj_flags & NO_DECONSTRUCTION))
|
||||
bust_open()
|
||||
|
||||
/obj/structure/closet/CheckParts(list/parts_list)
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
return FALSE
|
||||
|
||||
/obj/structure/closet/secure_closet/freezer/deconstruct(disassembled)
|
||||
if (!(flags_1 & NODECONSTRUCT_1))
|
||||
if (!(obj_flags & NO_DECONSTRUCTION))
|
||||
new /obj/item/assembly/igniter/condenser(drop_location())
|
||||
. = ..()
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
/obj/structure/destructible/deconstruct(disassembled = TRUE)
|
||||
if(!disassembled)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
if(islist(debris))
|
||||
for(var/I in debris)
|
||||
for(var/i in 1 to debris[I])
|
||||
|
||||
@@ -82,7 +82,7 @@
|
||||
playsound(src, 'sound/items/welder.ogg', 100, TRUE)
|
||||
|
||||
/obj/structure/displaycase/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
dump()
|
||||
if(!disassembled)
|
||||
new /obj/item/shard(drop_location())
|
||||
@@ -91,7 +91,7 @@
|
||||
|
||||
/obj/structure/displaycase/atom_break(damage_flag)
|
||||
. = ..()
|
||||
if(!broken && !(flags_1 & NODECONSTRUCT_1))
|
||||
if(!broken && !(obj_flags & NO_DECONSTRUCTION))
|
||||
set_density(FALSE)
|
||||
broken = TRUE
|
||||
new /obj/item/shard(drop_location())
|
||||
@@ -673,7 +673,7 @@
|
||||
|
||||
/obj/structure/displaycase/forsale/atom_break(damage_flag)
|
||||
. = ..()
|
||||
if(!broken && !(flags_1 & NODECONSTRUCT_1))
|
||||
if(!broken && !(obj_flags & NO_DECONSTRUCTION))
|
||||
broken = TRUE
|
||||
playsound(src, SFX_SHATTER, 70, TRUE)
|
||||
update_appearance()
|
||||
|
||||
@@ -363,7 +363,7 @@
|
||||
qdel(source)
|
||||
|
||||
/obj/structure/door_assembly/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
var/turf/T = get_turf(src)
|
||||
if(!disassembled)
|
||||
material_amt = rand(2,4)
|
||||
|
||||
@@ -272,7 +272,7 @@
|
||||
base_name = "large public airlock"
|
||||
|
||||
/obj/structure/door_assembly/door_assembly_material/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
var/turf/T = get_turf(src)
|
||||
for(var/material in custom_materials)
|
||||
var/datum/material/material_datum = material
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
return ..()
|
||||
|
||||
/obj/structure/dresser/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
new /obj/item/stack/sheet/mineral/wood(drop_location(), 10)
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -163,7 +163,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/extinguisher_cabinet, 29)
|
||||
|
||||
/obj/structure/extinguisher_cabinet/atom_break(damage_flag)
|
||||
. = ..()
|
||||
if(!broken && !(flags_1 & NODECONSTRUCT_1))
|
||||
if(!broken && !(obj_flags & NO_DECONSTRUCTION))
|
||||
broken = 1
|
||||
opened = 1
|
||||
if(stored_extinguisher)
|
||||
@@ -173,7 +173,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/extinguisher_cabinet, 29)
|
||||
|
||||
|
||||
/obj/structure/extinguisher_cabinet/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
if(disassembled)
|
||||
new /obj/item/wallframe/extinguisher_cabinet(loc)
|
||||
else
|
||||
|
||||
@@ -134,7 +134,7 @@
|
||||
deconstruct(disassembled)
|
||||
|
||||
/obj/structure/falsewall/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
if(disassembled)
|
||||
new girder_type(loc)
|
||||
if(mineral_amount)
|
||||
@@ -388,7 +388,7 @@
|
||||
material_flags = MATERIAL_EFFECTS | MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS
|
||||
|
||||
/obj/structure/falsewall/material/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
if(disassembled)
|
||||
new girder_type(loc)
|
||||
for(var/material in custom_materials)
|
||||
|
||||
@@ -11,14 +11,14 @@
|
||||
can_atmos_pass = ATMOS_PASS_NO
|
||||
|
||||
/obj/structure/fans/deconstruct()
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
if(buildstacktype)
|
||||
new buildstacktype(loc,buildstackamount)
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/fans/wrench_act(mob/living/user, obj/item/I)
|
||||
..()
|
||||
if(flags_1 & NODECONSTRUCT_1)
|
||||
if(obj_flags & NO_DECONSTRUCTION)
|
||||
return TRUE
|
||||
|
||||
user.visible_message(span_warning("[user] disassembles [src]."),
|
||||
|
||||
@@ -108,7 +108,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/fireaxecabinet, 32)
|
||||
|
||||
/obj/structure/fireaxecabinet/atom_break(damage_flag)
|
||||
. = ..()
|
||||
if(!broken && !(flags_1 & NODECONSTRUCT_1))
|
||||
if(!broken && !(obj_flags & NO_DECONSTRUCTION))
|
||||
update_appearance()
|
||||
broken = TRUE
|
||||
playsound(src, 'sound/effects/glassbr3.ogg', 100, TRUE)
|
||||
@@ -116,7 +116,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/fireaxecabinet, 32)
|
||||
new /obj/item/shard(loc)
|
||||
|
||||
/obj/structure/fireaxecabinet/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
if(held_item && loc)
|
||||
held_item.forceMove(loc)
|
||||
new /obj/item/wallframe/fireaxecabinet(loc)
|
||||
@@ -231,7 +231,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/fireaxecabinet/empty, 32)
|
||||
MAPPING_DIRECTIONAL_HELPERS(/obj/structure/fireaxecabinet/mechremoval, 32)
|
||||
|
||||
/obj/structure/fireaxecabinet/mechremoval/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
if(held_item && loc)
|
||||
held_item.forceMove(loc)
|
||||
new /obj/item/wallframe/fireaxecabinet/mechremoval(loc)
|
||||
|
||||
@@ -264,7 +264,7 @@
|
||||
transform = M.Turn(-previous_rotation)
|
||||
|
||||
/obj/structure/flora/deconstruct()
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
if(harvested)
|
||||
return ..()
|
||||
|
||||
@@ -446,7 +446,7 @@
|
||||
name = "xmas tree"
|
||||
desc = "A wondrous decorated Christmas tree."
|
||||
icon_state = "pine_c"
|
||||
flags_1 = NODECONSTRUCT_1 //protected by the christmas spirit
|
||||
obj_flags = NO_DECONSTRUCTION //protected by the christmas spirit
|
||||
|
||||
/obj/structure/flora/tree/pine/xmas/presents
|
||||
icon_state = "pinepresents"
|
||||
|
||||
@@ -384,7 +384,7 @@
|
||||
return FALSE
|
||||
|
||||
/obj/structure/girder/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
var/remains = pick(/obj/item/stack/rods, /obj/item/stack/sheet/iron)
|
||||
new remains(loc)
|
||||
qdel(src)
|
||||
@@ -462,7 +462,7 @@
|
||||
return
|
||||
|
||||
/obj/structure/girder/cult/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
new /obj/item/stack/sheet/runed_metal(drop_location(), 1)
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
|
||||
/obj/structure/grille/examine(mob/user)
|
||||
. = ..()
|
||||
if(flags_1 & NODECONSTRUCT_1)
|
||||
if(obj_flags & NO_DECONSTRUCTION)
|
||||
return
|
||||
|
||||
if(anchored)
|
||||
@@ -200,7 +200,7 @@
|
||||
add_fingerprint(user)
|
||||
if(shock(user, 100))
|
||||
return
|
||||
if(flags_1 & NODECONSTRUCT_1)
|
||||
if(obj_flags & NO_DECONSTRUCTION)
|
||||
return FALSE
|
||||
tool.play_tool_sound(src, 100)
|
||||
deconstruct()
|
||||
@@ -212,7 +212,7 @@
|
||||
add_fingerprint(user)
|
||||
if(shock(user, 90))
|
||||
return FALSE
|
||||
if(flags_1 & NODECONSTRUCT_1)
|
||||
if(obj_flags & NO_DECONSTRUCTION)
|
||||
return FALSE
|
||||
if(!tool.use_tool(src, user, 0, volume=100))
|
||||
return FALSE
|
||||
@@ -299,7 +299,7 @@
|
||||
/obj/structure/grille/deconstruct(disassembled = TRUE)
|
||||
if(!loc) //if already qdel'd somehow, we do nothing
|
||||
return
|
||||
if(!(flags_1&NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
var/obj/R = new rods_type(drop_location(), rods_amount)
|
||||
transfer_fingerprints_to(R)
|
||||
qdel(src)
|
||||
@@ -307,7 +307,7 @@
|
||||
|
||||
/obj/structure/grille/atom_break()
|
||||
. = ..()
|
||||
if(!broken && !(flags_1 & NODECONSTRUCT_1))
|
||||
if(!broken && !(obj_flags & NO_DECONSTRUCTION))
|
||||
icon_state = "brokengrille"
|
||||
set_density(FALSE)
|
||||
atom_integrity = 20
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
return T.attackby(C, user) //hand this off to the turf instead (for building plating, catwalks, etc)
|
||||
|
||||
/obj/structure/lattice/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
new build_material(get_turf(src), number_of_mats)
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -305,7 +305,7 @@ at the cost of risking a vicious bite.**/
|
||||
return TRUE
|
||||
|
||||
/obj/structure/steam_vent/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
new /obj/item/stack/sheet/iron(loc, 1)
|
||||
new /obj/item/stock_parts/water_recycler(loc, 1)
|
||||
qdel(src)
|
||||
|
||||
@@ -261,7 +261,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/mirror/broken, 28)
|
||||
|
||||
/obj/structure/mirror/atom_break(damage_flag, mapload)
|
||||
. = ..()
|
||||
if(broken || (flags_1 & NODECONSTRUCT_1))
|
||||
if(broken || (obj_flags & NO_DECONSTRUCTION))
|
||||
return
|
||||
icon_state = "mirror_broke"
|
||||
if(!mapload)
|
||||
@@ -271,7 +271,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/mirror/broken, 28)
|
||||
broken = TRUE
|
||||
|
||||
/obj/structure/mirror/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
if(!disassembled)
|
||||
new /obj/item/shard(loc)
|
||||
else
|
||||
|
||||
@@ -106,7 +106,7 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an
|
||||
return attack_hand(user)
|
||||
|
||||
/obj/structure/bodycontainer/deconstruct(disassembled = TRUE)
|
||||
if (!(flags_1 & NODECONSTRUCT_1))
|
||||
if (!(obj_flags & NO_DECONSTRUCTION))
|
||||
new /obj/item/stack/sheet/iron(loc, 5)
|
||||
toggle_organ_decay(src)
|
||||
qdel(src)
|
||||
|
||||
@@ -111,7 +111,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/noticeboard, 32)
|
||||
update_appearance(UPDATE_ICON)
|
||||
|
||||
/obj/structure/noticeboard/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
if(!disassembled)
|
||||
new /obj/item/stack/sheet/mineral/wood(loc)
|
||||
else
|
||||
|
||||
@@ -125,7 +125,7 @@
|
||||
|
||||
|
||||
/obj/structure/plasticflaps/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
new /obj/item/stack/sheet/plastic/five(loc)
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -100,7 +100,7 @@
|
||||
return TRUE
|
||||
|
||||
/obj/structure/railing/deconstruct(disassembled)
|
||||
if((flags_1 & NODECONSTRUCT_1))
|
||||
if((obj_flags & NO_DECONSTRUCTION))
|
||||
return ..()
|
||||
var/rods_to_make = istype(src,/obj/structure/railing/corner) ? 1 : 2
|
||||
var/obj/rod = new item_deconstruct(drop_location(), rods_to_make)
|
||||
@@ -110,7 +110,7 @@
|
||||
///Implements behaviour that makes it possible to unanchor the railing.
|
||||
/obj/structure/railing/wrench_act(mob/living/user, obj/item/I)
|
||||
. = ..()
|
||||
if(flags_1&NODECONSTRUCT_1)
|
||||
if(obj_flags & NO_DECONSTRUCTION)
|
||||
return
|
||||
to_chat(user, span_notice("You begin to [anchored ? "unfasten the railing from":"fasten the railing to"] the floor..."))
|
||||
if(I.use_tool(src, user, volume = 75, extra_checks = CALLBACK(src, PROC_REF(check_anchored), anchored)))
|
||||
|
||||
@@ -191,7 +191,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/shower, (-16))
|
||||
|
||||
/obj/machinery/shower/wrench_act(mob/living/user, obj/item/I)
|
||||
. = ..()
|
||||
if(flags_1 & NODECONSTRUCT_1)
|
||||
if(obj_flags & NO_DECONSTRUCTION)
|
||||
return
|
||||
|
||||
I.play_tool_sound(src)
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
context[SCREENTIP_CONTEXT_RMB] = "Deal card faceup"
|
||||
. = CONTEXTUAL_SCREENTIP_SET
|
||||
|
||||
if(!(flags_1 & NODECONSTRUCT_1) && deconstruction_ready)
|
||||
if(!(obj_flags & NO_DECONSTRUCTION) && deconstruction_ready)
|
||||
if(held_item.tool_behaviour == TOOL_SCREWDRIVER)
|
||||
context[SCREENTIP_CONTEXT_RMB] = "Disassemble"
|
||||
. = CONTEXTUAL_SCREENTIP_SET
|
||||
@@ -207,7 +207,7 @@
|
||||
pushed_mob.add_mood_event("table", /datum/mood_event/table_limbsmash, banged_limb)
|
||||
|
||||
/obj/structure/table/screwdriver_act_secondary(mob/living/user, obj/item/tool)
|
||||
if(flags_1 & NODECONSTRUCT_1 || !deconstruction_ready)
|
||||
if(obj_flags & NO_DECONSTRUCTION || !deconstruction_ready)
|
||||
return FALSE
|
||||
to_chat(user, span_notice("You start disassembling [src]..."))
|
||||
if(tool.use_tool(src, user, 2 SECONDS, volume=50))
|
||||
@@ -215,7 +215,7 @@
|
||||
return TOOL_ACT_TOOLTYPE_SUCCESS
|
||||
|
||||
/obj/structure/table/wrench_act_secondary(mob/living/user, obj/item/tool)
|
||||
if(flags_1 & NODECONSTRUCT_1 || !deconstruction_ready)
|
||||
if(obj_flags & NO_DECONSTRUCTION || !deconstruction_ready)
|
||||
return FALSE
|
||||
to_chat(user, span_notice("You start deconstructing [src]..."))
|
||||
if(tool.use_tool(src, user, 4 SECONDS, volume=50))
|
||||
@@ -298,7 +298,7 @@
|
||||
return
|
||||
|
||||
/obj/structure/table/deconstruct(disassembled = TRUE, wrench_disassembly = 0)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
var/turf/T = get_turf(src)
|
||||
if(buildstack)
|
||||
new buildstack(T, buildstackamount)
|
||||
@@ -437,7 +437,7 @@
|
||||
|
||||
/obj/structure/table/glass/proc/on_entered(datum/source, atom/movable/AM)
|
||||
SIGNAL_HANDLER
|
||||
if(flags_1 & NODECONSTRUCT_1)
|
||||
if(obj_flags & NO_DECONSTRUCTION)
|
||||
return
|
||||
if(!isliving(AM))
|
||||
return
|
||||
@@ -470,7 +470,7 @@
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/table/glass/deconstruct(disassembled = TRUE, wrench_disassembly = 0)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
if(disassembled)
|
||||
..()
|
||||
return
|
||||
@@ -851,7 +851,7 @@
|
||||
|
||||
/obj/structure/rack/attackby(obj/item/W, mob/living/user, params)
|
||||
var/list/modifiers = params2list(params)
|
||||
if (W.tool_behaviour == TOOL_WRENCH && !(flags_1&NODECONSTRUCT_1) && LAZYACCESS(modifiers, RIGHT_CLICK))
|
||||
if (W.tool_behaviour == TOOL_WRENCH && !(obj_flags & NO_DECONSTRUCTION) && LAZYACCESS(modifiers, RIGHT_CLICK))
|
||||
W.play_tool_sound(src)
|
||||
deconstruct(TRUE)
|
||||
return
|
||||
@@ -889,7 +889,7 @@
|
||||
*/
|
||||
|
||||
/obj/structure/rack/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1&NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
set_density(FALSE)
|
||||
var/obj/item/rack_parts/newparts = new(loc)
|
||||
transfer_fingerprints_to(newparts)
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
|
||||
|
||||
/obj/structure/tank_dispenser/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
for(var/X in src)
|
||||
var/obj/item/I = X
|
||||
I.forceMove(loc)
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
return ..()
|
||||
|
||||
/obj/structure/transit_tube_pod/deconstruct(disassembled = TRUE, mob/user)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
var/atom/location = get_turf(src)
|
||||
if(user)
|
||||
location = user.loc
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
return ..()
|
||||
|
||||
/obj/structure/toilet/deconstruct()
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
for(var/obj/toilet_item in contents)
|
||||
toilet_item.forceMove(drop_location())
|
||||
if(buildstacktype)
|
||||
@@ -105,7 +105,7 @@
|
||||
cistern = !cistern
|
||||
update_appearance()
|
||||
return COMPONENT_CANCEL_ATTACK_CHAIN
|
||||
else if(I.tool_behaviour == TOOL_WRENCH && !(flags_1&NODECONSTRUCT_1))
|
||||
else if(I.tool_behaviour == TOOL_WRENCH && !(obj_flags & NO_DECONSTRUCTION))
|
||||
I.play_tool_sound(src)
|
||||
deconstruct()
|
||||
return TRUE
|
||||
@@ -228,7 +228,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/urinal, 32)
|
||||
return TRUE
|
||||
|
||||
/obj/structure/urinal/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
new /obj/item/wallframe/urinal(loc)
|
||||
qdel(src)
|
||||
|
||||
@@ -419,7 +419,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sink, (-14))
|
||||
playsound(loc, 'sound/effects/slosh.ogg', 25, TRUE)
|
||||
return
|
||||
|
||||
if(O.tool_behaviour == TOOL_WRENCH && !(flags_1&NODECONSTRUCT_1))
|
||||
if(O.tool_behaviour == TOOL_WRENCH && !(obj_flags & NO_DECONSTRUCTION))
|
||||
O.play_tool_sound(src)
|
||||
deconstruct()
|
||||
return
|
||||
@@ -496,7 +496,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sink, (-14))
|
||||
return ..()
|
||||
|
||||
/obj/structure/sink/deconstruct()
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
drop_materials()
|
||||
if(has_water_reclaimer)
|
||||
new /obj/item/stock_parts/water_recycler(drop_location())
|
||||
@@ -572,7 +572,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sink/kitchen, (-16))
|
||||
return TRUE
|
||||
|
||||
/obj/structure/sinkframe/deconstruct()
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
drop_materials()
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
|
||||
/obj/structure/window/examine(mob/user)
|
||||
. = ..()
|
||||
if(flags_1 & NODECONSTRUCT_1)
|
||||
if(obj_flags & NO_DECONSTRUCTION)
|
||||
return
|
||||
|
||||
switch(state)
|
||||
@@ -210,7 +210,7 @@
|
||||
return TOOL_ACT_TOOLTYPE_SUCCESS
|
||||
|
||||
/obj/structure/window/screwdriver_act(mob/living/user, obj/item/tool)
|
||||
if(flags_1 & NODECONSTRUCT_1)
|
||||
if(obj_flags & NO_DECONSTRUCTION)
|
||||
return
|
||||
|
||||
switch(state)
|
||||
@@ -240,7 +240,7 @@
|
||||
/obj/structure/window/wrench_act(mob/living/user, obj/item/tool)
|
||||
if(anchored)
|
||||
return FALSE
|
||||
if((flags_1 & NODECONSTRUCT_1) || (reinf && state >= RWINDOW_FRAME_BOLTED))
|
||||
if((obj_flags & NO_DECONSTRUCTION) || (reinf && state >= RWINDOW_FRAME_BOLTED))
|
||||
return FALSE
|
||||
|
||||
to_chat(user, span_notice("You begin to disassemble [src]..."))
|
||||
@@ -255,7 +255,7 @@
|
||||
return TOOL_ACT_TOOLTYPE_SUCCESS
|
||||
|
||||
/obj/structure/window/crowbar_act(mob/living/user, obj/item/tool)
|
||||
if(!anchored || (flags_1 & NODECONSTRUCT_1))
|
||||
if(!anchored || (obj_flags & NO_DECONSTRUCTION))
|
||||
return FALSE
|
||||
|
||||
switch(state)
|
||||
@@ -335,7 +335,7 @@
|
||||
return
|
||||
if(!disassembled)
|
||||
playsound(src, break_sound, 70, TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
for(var/obj/item/shard/debris in spawn_debris(drop_location()))
|
||||
transfer_fingerprints_to(debris) // transfer fingerprints to shards only
|
||||
qdel(src)
|
||||
@@ -480,7 +480,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/window/unanchored/spawner, 0)
|
||||
return FALSE
|
||||
|
||||
/obj/structure/window/reinforced/attackby_secondary(obj/item/tool, mob/user, params)
|
||||
if(flags_1 & NODECONSTRUCT_1)
|
||||
if(obj_flags & NO_DECONSTRUCTION)
|
||||
return ..()
|
||||
|
||||
switch(state)
|
||||
@@ -546,7 +546,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/window/unanchored/spawner, 0)
|
||||
/obj/structure/window/reinforced/crowbar_act(mob/living/user, obj/item/tool)
|
||||
if(!anchored)
|
||||
return FALSE
|
||||
if((flags_1 & NODECONSTRUCT_1) || (state != WINDOW_OUT_OF_FRAME))
|
||||
if((obj_flags & NO_DECONSTRUCTION) || (state != WINDOW_OUT_OF_FRAME))
|
||||
return FALSE
|
||||
to_chat(user, span_notice("You begin to lever the window back into the frame..."))
|
||||
if(tool.use_tool(src, user, 10 SECONDS, volume = 75, extra_checks = CALLBACK(src, PROC_REF(check_state_and_anchored), state, anchored)))
|
||||
@@ -561,7 +561,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/window/unanchored/spawner, 0)
|
||||
|
||||
/obj/structure/window/reinforced/examine(mob/user)
|
||||
. = ..()
|
||||
if(flags_1 & NODECONSTRUCT_1)
|
||||
if(obj_flags & NO_DECONSTRUCTION)
|
||||
return
|
||||
switch(state)
|
||||
if(RWINDOW_SECURE)
|
||||
@@ -803,7 +803,8 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/window/reinforced/tinted/frosted/spaw
|
||||
|
||||
/obj/structure/window/reinforced/shuttle/indestructible
|
||||
name = "hardened shuttle window"
|
||||
flags_1 = PREVENT_CLICK_UNDER_1 | NODECONSTRUCT_1
|
||||
obj_flags = NO_DECONSTRUCTION
|
||||
flags_1 = PREVENT_CLICK_UNDER_1
|
||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
||||
|
||||
/obj/structure/window/reinforced/shuttle/indestructible/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
|
||||
|
||||
@@ -29,14 +29,14 @@
|
||||
|
||||
/obj/structure/statue/wrench_act(mob/living/user, obj/item/tool)
|
||||
. = ..()
|
||||
if(flags_1 & NODECONSTRUCT_1)
|
||||
if(obj_flags & NO_DECONSTRUCTION)
|
||||
return FALSE
|
||||
default_unfasten_wrench(user, tool)
|
||||
return TOOL_ACT_TOOLTYPE_SUCCESS
|
||||
|
||||
/obj/structure/statue/attackby(obj/item/W, mob/living/user, params)
|
||||
add_fingerprint(user)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
if(W.tool_behaviour == TOOL_WELDER)
|
||||
if(!W.tool_start_check(user, amount=1))
|
||||
return FALSE
|
||||
@@ -50,7 +50,7 @@
|
||||
return ..() // This hotkey is BLACKLISTED since it's used by /datum/component/simple_rotation
|
||||
|
||||
/obj/structure/statue/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
var/amount_mod = disassembled ? 0 : -2
|
||||
for(var/mat in custom_materials)
|
||||
var/datum/material/custom_material = GET_MATERIAL_REF(mat)
|
||||
|
||||
@@ -90,7 +90,7 @@
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/airalarm/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
new /obj/item/stack/sheet/iron(loc, 2)
|
||||
if((buildstage == AIR_ALARM_BUILD_NO_WIRES) || (buildstage == AIR_ALARM_BUILD_COMPLETE))
|
||||
var/obj/item/electronics/airalarm/alarm = new(loc)
|
||||
|
||||
@@ -466,7 +466,7 @@
|
||||
* Called by wrench_act(), create a pipe fitting and remove the pipe
|
||||
*/
|
||||
/obj/machinery/atmospherics/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
if(can_unwrench)
|
||||
var/obj/item/pipe/stored = new construction_type(loc, null, dir, src, pipe_color)
|
||||
stored.set_piping_layer(piping_layer)
|
||||
|
||||
@@ -135,7 +135,7 @@
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/meter/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
new /obj/item/pipe_meter(loc)
|
||||
. = ..()
|
||||
|
||||
|
||||
@@ -335,7 +335,7 @@
|
||||
take_damage(5, BURN, 0)
|
||||
|
||||
/obj/machinery/portable_atmospherics/canister/deconstruct(disassembled = TRUE)
|
||||
if((flags_1 & NODECONSTRUCT_1))
|
||||
if((obj_flags & NO_DECONSTRUCTION))
|
||||
qdel(src)
|
||||
return
|
||||
if(!(machine_stat & BROKEN))
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
|
||||
/obj/structure/window/reinforced/fulltile/indestructible
|
||||
name = "robust window"
|
||||
flags_1 = PREVENT_CLICK_UNDER_1 | NODECONSTRUCT_1
|
||||
obj_flags = NO_DECONSTRUCTION
|
||||
flags_1 = PREVENT_CLICK_UNDER_1
|
||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
||||
|
||||
/obj/structure/window/reinforced/fulltile/indestructible/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
|
||||
@@ -9,8 +10,7 @@
|
||||
|
||||
|
||||
/obj/structure/grille/indestructible
|
||||
flags_1 = NODECONSTRUCT_1
|
||||
obj_flags = CONDUCTS_ELECTRICITY
|
||||
obj_flags = CONDUCTS_ELECTRICITY | NO_DECONSTRUCTION
|
||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
||||
|
||||
/obj/structure/grille/indestructible/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
|
||||
|
||||
@@ -464,7 +464,7 @@
|
||||
|
||||
/obj/structure/table/reinforced/ctf
|
||||
resistance_flags = INDESTRUCTIBLE
|
||||
flags_1 = NODECONSTRUCT_1
|
||||
obj_flags = NO_DECONSTRUCTION
|
||||
|
||||
#define CTF_LOADING_UNLOADED 0
|
||||
#define CTF_LOADING_LOADING 1
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
anchored = FALSE
|
||||
use_power = NO_POWER_USE
|
||||
req_access = list(ACCESS_KITCHEN)
|
||||
flags_1 = NODECONSTRUCT_1
|
||||
obj_flags = NO_DECONSTRUCTION
|
||||
var/unpacked = FALSE
|
||||
var/obj/machinery/griddle/stand/cart_griddle
|
||||
var/obj/machinery/smartfridge/food/cart_smartfridge
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
/obj/machinery/griddle/crowbar_act(mob/living/user, obj/item/I)
|
||||
. = ..()
|
||||
if(flags_1 & NODECONSTRUCT_1)
|
||||
if(obj_flags & NO_DECONSTRUCTION)
|
||||
return
|
||||
if(default_deconstruction_crowbar(I, ignore_panel = TRUE))
|
||||
return
|
||||
|
||||
@@ -109,7 +109,7 @@
|
||||
/obj/machinery/grill/deconstruct(disassembled = TRUE)
|
||||
if(grilled_item)
|
||||
finish_grill()
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
new /obj/item/stack/sheet/iron(loc, 5)
|
||||
new /obj/item/stack/rods(loc, 5)
|
||||
..()
|
||||
|
||||
@@ -190,7 +190,7 @@
|
||||
return
|
||||
|
||||
/obj/machinery/icecream_vat/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
new /obj/item/stack/sheet/iron(loc, 4)
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -294,12 +294,12 @@ GLOBAL_LIST_INIT(typecache_holodeck_linked_floorcheck_ok, typecacheof(list(/turf
|
||||
holo_object.resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
||||
|
||||
if(isstructure(holo_object))
|
||||
holo_object.flags_1 |= NODECONSTRUCT_1
|
||||
holo_object.obj_flags |= NO_DECONSTRUCTION
|
||||
return
|
||||
|
||||
if(ismachinery(holo_object))
|
||||
var/obj/machinery/holo_machine = holo_object
|
||||
holo_machine.flags_1 |= NODECONSTRUCT_1
|
||||
holo_machine.obj_flags |= NO_DECONSTRUCTION
|
||||
holo_machine.power_change()
|
||||
|
||||
if(istype(holo_machine, /obj/machinery/button))
|
||||
|
||||
@@ -49,7 +49,8 @@
|
||||
var/static/banned_books = list(/obj/item/book/manual/random, /obj/item/book/manual/nuclear, /obj/item/book/manual/wiki)
|
||||
var/newtype = pick(subtypesof(/obj/item/book/manual) - banned_books)
|
||||
var/obj/item/book/manual/to_spawn = new newtype(loc)
|
||||
to_spawn.flags_1 |= (HOLOGRAM_1 | NODECONSTRUCT_1)
|
||||
to_spawn.flags_1 |= HOLOGRAM_1
|
||||
to_spawn.obj_flags |= NO_DECONSTRUCTION
|
||||
return to_spawn
|
||||
|
||||
/obj/effect/holodeck_effect/mobspawner
|
||||
|
||||
@@ -135,7 +135,7 @@
|
||||
eventstarted = TRUE
|
||||
|
||||
for(var/obj/structure/window/W in currentarea)
|
||||
if(W.flags_1&NODECONSTRUCT_1) // Just in case: only holo-windows
|
||||
if(W.obj_flags & NO_DECONSTRUCTION) // Just in case: only holo-windows
|
||||
qdel(W)
|
||||
|
||||
for(var/mob/M in currentarea)
|
||||
|
||||
@@ -1159,7 +1159,7 @@
|
||||
circuit = null
|
||||
density = FALSE
|
||||
use_power = NO_POWER_USE
|
||||
flags_1 = NODECONSTRUCT_1
|
||||
obj_flags = NO_DECONSTRUCTION
|
||||
unwrenchable = FALSE
|
||||
self_sustaining_overlay_icon_state = null
|
||||
maxnutri = 15
|
||||
|
||||
@@ -107,7 +107,7 @@
|
||||
|
||||
/obj/structure/sink/oil_well/attackby(obj/item/O, mob/living/user, params)
|
||||
flick("puddle-oil-splash",src)
|
||||
if(O.tool_behaviour == TOOL_SHOVEL && !(flags_1 & NODECONSTRUCT_1)) //attempt to deconstruct the puddle with a shovel
|
||||
if(O.tool_behaviour == TOOL_SHOVEL && !(obj_flags & NO_DECONSTRUCTION)) //attempt to deconstruct the puddle with a shovel
|
||||
to_chat(user, "You fill in the oil well with soil.")
|
||||
O.play_tool_sound(src)
|
||||
deconstruct()
|
||||
|
||||
@@ -100,7 +100,7 @@ GLOBAL_LIST_INIT(marker_beacon_colors, sort_list(list(
|
||||
update_appearance()
|
||||
|
||||
/obj/structure/marker_beacon/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
var/obj/item/stack/marker_beacon/M = new(loc)
|
||||
M.picked_color = picked_color
|
||||
M.update_appearance()
|
||||
|
||||
@@ -164,7 +164,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/window/reinforced/survival_pod/spawne
|
||||
|
||||
/obj/item/gps/computer/wrench_act(mob/living/user, obj/item/I)
|
||||
..()
|
||||
if(flags_1 & NODECONSTRUCT_1)
|
||||
if(obj_flags & NO_DECONSTRUCTION)
|
||||
return TRUE
|
||||
|
||||
user.visible_message(span_warning("[user] disassembles [src]."),
|
||||
@@ -201,7 +201,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/window/reinforced/survival_pod/spawne
|
||||
light_color = COLOR_VERY_PALE_LIME_GREEN
|
||||
max_n_of_items = 10
|
||||
pixel_y = -4
|
||||
flags_1 = NODECONSTRUCT_1
|
||||
obj_flags = NO_DECONSTRUCTION
|
||||
|
||||
/obj/machinery/smartfridge/survival_pod/Initialize(mapload)
|
||||
AddElement(/datum/element/update_icon_blocker)
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
return ..()
|
||||
|
||||
/obj/structure/ore_container/gutlunch_trough/deconstruct(disassembled = TRUE)
|
||||
if(flags_1 & NODECONSTRUCT_1)
|
||||
if(obj_flags & NO_DECONSTRUCTION)
|
||||
return
|
||||
new /obj/item/stack/sheet/mineral/wood(drop_location(), 5)
|
||||
qdel(src)
|
||||
|
||||
@@ -839,7 +839,7 @@
|
||||
/obj/item/modular_computer/deconstruct(disassembled = TRUE)
|
||||
remove_pai()
|
||||
eject_aicard()
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
if (disassembled)
|
||||
internal_cell?.forceMove(drop_location())
|
||||
computer_id_slot?.forceMove(drop_location())
|
||||
|
||||
@@ -134,7 +134,7 @@
|
||||
return ..()
|
||||
|
||||
/obj/machinery/modular_computer/attackby(obj/item/W as obj, mob/living/user)
|
||||
if (cpu && !user.combat_mode && !(flags_1 & NODECONSTRUCT_1))
|
||||
if (cpu && !user.combat_mode && !(obj_flags & NO_DECONSTRUCTION))
|
||||
return cpu.attackby(W, user)
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
I.forceMove(src)
|
||||
|
||||
/obj/structure/filingcabinet/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
new /obj/item/stack/sheet/iron(loc, 2)
|
||||
for(var/obj/item/I in src)
|
||||
I.forceMove(loc)
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
return ..()
|
||||
|
||||
/obj/machinery/ticket_machine/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
new /obj/item/wallframe/ticket_machine(loc)
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -173,7 +173,7 @@
|
||||
. += framed
|
||||
|
||||
/obj/structure/sign/picture_frame/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
var/obj/item/wallframe/picture/F = new /obj/item/wallframe/picture(loc)
|
||||
if(framed)
|
||||
F.displayed = framed
|
||||
|
||||
@@ -295,7 +295,7 @@
|
||||
. += "The cover is closed."
|
||||
|
||||
/obj/machinery/power/apc/deconstruct(disassembled = TRUE)
|
||||
if(flags_1 & NODECONSTRUCT_1)
|
||||
if(obj_flags & NO_DECONSTRUCTION)
|
||||
return
|
||||
if(!(machine_stat & BROKEN))
|
||||
set_broken()
|
||||
|
||||
@@ -142,7 +142,7 @@ GLOBAL_LIST_INIT(wire_node_generating_types, typecacheof(list(/obj/structure/gri
|
||||
return ..() // then go ahead and delete the cable
|
||||
|
||||
/obj/structure/cable/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(!(obj_flags & NO_DECONSTRUCTION))
|
||||
var/obj/item/stack/cable_coil/cable = new(drop_location(), 1)
|
||||
cable.set_cable_color(cable_color)
|
||||
qdel(src)
|
||||
|
||||
@@ -411,7 +411,7 @@
|
||||
electrocute_mob(user, get_area(src), src, (rand(7,10) * 0.1), TRUE)
|
||||
|
||||
/obj/machinery/light/deconstruct(disassembled = TRUE)
|
||||
if(flags_1 & NODECONSTRUCT_1)
|
||||
if(obj_flags & NO_DECONSTRUCTION)
|
||||
qdel(src)
|
||||
return
|
||||
var/obj/structure/light_construct/new_light = null
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user