rename a bunch of atom flags

This commit is contained in:
spookerton
2022-10-17 17:38:20 +01:00
parent bb472b4832
commit ffba11e5ab
76 changed files with 156 additions and 145 deletions

View File

@@ -17,13 +17,26 @@
/// The atom has been initialized. /// The atom has been initialized.
#define ATOM_INITIALIZED (1<<0) #define ATOM_INITIALIZED (1<<0)
#define NOCONDUCT (1<<1) // Conducts electricity. (metal etc.) /// The atom does not conduct electricity.
#define ON_BORDER (1<<2) // Item has priority to check when entering or leaving. #define ATOM_IS_INSULATED (1<<1)
#define OPENCONTAINER (1<<3) // Is an open container for chemistry purposes.
#define NOREACT (1<<4) // Reagents don't react inside this container. /// The atom should be considered ahead of others when changing turfs.
#define OVERLAY_QUEUED (1<<5) // Atom is queued for an overlay update #define ATOM_HAS_TRANSITION_PRIORITY (1<<2)
#define SLANDMARK_FLAG_AUTOSET (1<<6) // If set, will set base area and turf type to same as where it was spawned at
#define SLANDMARK_FLAG_ZERO_G (1<<7) // Zero-G shuttles moved here will lose gravity unless the area has ambient gravity. /// For the purpose of reagents transfer, this atom can be interacted with syringes etc.
#define ATOM_REAGENTS_IS_OPEN (1<<3)
/// Reagents do not react inside this atom, regardless of recipes.
#define ATOM_REAGENTS_SKIP_REACTIONS (1<<4)
/// This atom is queued for an overlay update.
#define ATOM_AWAITING_OVERLAY_UPDATE (1<<5)
/// This atom is a shuttle landmark that should create its own landing point.
#define LANDMARK_CREATES_SAFE_SITE (1<<6)
/// This atom is a shuttle landmark that causes arriving shuttles to have no gravity.
#define LANDMARK_REMOVES_GRAVITY (1<<7)
/* -- /turf/var/turf_flags -- */ /* -- /turf/var/turf_flags -- */

View File

@@ -183,7 +183,7 @@
//Used for border objects. This returns true if this atom is on the border between the two specified turfs //Used for border objects. This returns true if this atom is on the border between the two specified turfs
//This assumes that the atom is located inside the target turf //This assumes that the atom is located inside the target turf
/atom/proc/is_between_turfs(var/turf/origin, var/turf/target) /atom/proc/is_between_turfs(var/turf/origin, var/turf/target)
if (atom_flags & ON_BORDER) if (atom_flags & ATOM_HAS_TRANSITION_PRIORITY)
var/testdir = get_dir(target, origin) var/testdir = get_dir(target, origin)
return (dir & testdir) return (dir & testdir)
return TRUE return TRUE

View File

@@ -114,14 +114,14 @@ Quick adjacency (to turf):
/* /*
This checks if you there is uninterrupted airspace between that turf and this one. This checks if you there is uninterrupted airspace between that turf and this one.
This is defined as any dense ON_BORDER object, or any dense object without throwpass. This is defined as any dense ATOM_HAS_TRANSITION_PRIORITY object, or any dense object without throwpass.
The border_only flag allows you to not objects (for source and destination squares) The border_only flag allows you to not objects (for source and destination squares)
*/ */
/turf/proc/ClickCross(var/target_dir, var/border_only, var/target_atom = null) /turf/proc/ClickCross(var/target_dir, var/border_only, var/target_atom = null)
for(var/obj/O in src) for(var/obj/O in src)
if( !O.density || O == target_atom || O.throwpass) continue // throwpass is used for anything you can click through if( !O.density || O == target_atom || O.throwpass) continue // throwpass is used for anything you can click through
if( O.atom_flags&ON_BORDER) // windows have throwpass but are on border, check them first if( O.atom_flags&ATOM_HAS_TRANSITION_PRIORITY) // windows have throwpass but are on border, check them first
if( O.dir & target_dir || O.dir&(O.dir-1) ) // full tile windows are just diagonals mechanically if( O.dir & target_dir || O.dir&(O.dir-1) ) // full tile windows are just diagonals mechanically
var/obj/structure/window/W = target_atom var/obj/structure/window/W = target_atom
if(istype(W)) if(istype(W))

View File

@@ -24,7 +24,7 @@ SUBSYSTEM_DEF(overlays)
icon_cache.Cut() icon_cache.Cut()
cache_size = 0 cache_size = 0
for (var/atom/atom) for (var/atom/atom)
atom.atom_flags &= ~OVERLAY_QUEUED atom.atom_flags &= ~ATOM_AWAITING_OVERLAY_UPDATE
CHECK_TICK CHECK_TICK
@@ -85,7 +85,7 @@ SUBSYSTEM_DEF(overlays)
result += GetIconAppearance(entry) result += GetIconAppearance(entry)
else else
if (isloc(entry)) if (isloc(entry))
if (entry.atom_flags & OVERLAY_QUEUED) if (entry.atom_flags & ATOM_AWAITING_OVERLAY_UPDATE)
entry.ImmediateOverlayUpdate() entry.ImmediateOverlayUpdate()
if (!ispath(entry)) if (!ispath(entry))
result += entry.appearance result += entry.appearance
@@ -97,10 +97,10 @@ SUBSYSTEM_DEF(overlays)
/// Enqueues the atom for an overlay update if not already queued /// Enqueues the atom for an overlay update if not already queued
/atom/proc/QueueOverlayUpdate() /atom/proc/QueueOverlayUpdate()
if (atom_flags & OVERLAY_QUEUED) if (atom_flags & ATOM_AWAITING_OVERLAY_UPDATE)
return return
SSoverlays.queue += src SSoverlays.queue += src
atom_flags |= OVERLAY_QUEUED atom_flags |= ATOM_AWAITING_OVERLAY_UPDATE
/// Builds the atom's overlay state from caches /// Builds the atom's overlay state from caches
@@ -109,7 +109,7 @@ SUBSYSTEM_DEF(overlays)
if (length(overlays)) if (length(overlays))
overlays.Cut() overlays.Cut()
return return
atom_flags &= ~OVERLAY_QUEUED atom_flags &= ~ATOM_AWAITING_OVERLAY_UPDATE
if (length(priority_overlays)) if (length(priority_overlays))
if (length(our_overlays)) if (length(our_overlays))
overlays = priority_overlays + our_overlays overlays = priority_overlays + our_overlays

View File

@@ -33,7 +33,7 @@
gender = PLURAL gender = PLURAL
icon = 'icons/obj/soap.dmi' icon = 'icons/obj/soap.dmi'
icon_state = "soap" icon_state = "soap"
atom_flags = NOCONDUCT atom_flags = ATOM_IS_INSULATED
w_class = ITEMSIZE_SMALL w_class = ITEMSIZE_SMALL
slot_flags = SLOT_HOLSTER slot_flags = SLOT_HOLSTER
throwforce = 0 throwforce = 0

View File

@@ -22,7 +22,7 @@
var/datum/reagents/reagents = null var/datum/reagents/reagents = null
//var/chem_is_open_container = 0 //var/chem_is_open_container = 0
// replaced by OPENCONTAINER flags and atom/proc/is_open_container() // replaced by ATOM_REAGENTS_IS_OPEN flags and atom/proc/is_open_container()
///Chemistry. ///Chemistry.
// Overlays // Overlays
@@ -129,7 +129,7 @@ var/global/list/pre_init_created_atoms // atom creation ordering means some stuf
// returns true if open // returns true if open
// false if closed // false if closed
/atom/proc/is_open_container() /atom/proc/is_open_container()
return atom_flags & OPENCONTAINER return atom_flags & ATOM_REAGENTS_IS_OPEN
/*//Convenience proc to see whether a container can be accessed in a certain way. /*//Convenience proc to see whether a container can be accessed in a certain way.

View File

@@ -10,7 +10,7 @@
health = 150 health = 150
visible = 0.0 visible = 0.0
use_power = USE_POWER_OFF use_power = USE_POWER_OFF
atom_flags = ON_BORDER atom_flags = ATOM_HAS_TRANSITION_PRIORITY
opacity = 0 opacity = 0
var/obj/item/airlock_electronics/electronics = null var/obj/item/airlock_electronics/electronics = null
explosion_resistance = 5 explosion_resistance = 5

View File

@@ -167,7 +167,7 @@
center = locate(x+center_x, y+center_y, z) center = locate(x+center_x, y+center_y, z)
if(center) if(center)
for(var/obj/M in orange(magnetic_field, center)) for(var/obj/M in orange(magnetic_field, center))
if(!M.anchored && !(M.atom_flags & NOCONDUCT)) if(!M.anchored && !(M.atom_flags & ATOM_IS_INSULATED))
step_towards(M, center) step_towards(M, center)
for(var/mob/living/silicon/S in orange(magnetic_field, center)) for(var/mob/living/silicon/S in orange(magnetic_field, center))

View File

@@ -19,7 +19,7 @@
/obj/item/mecha_parts/mecha_equipment/tool/syringe_gun/Initialize() /obj/item/mecha_parts/mecha_equipment/tool/syringe_gun/Initialize()
. = ..() . = ..()
atom_flags |= NOREACT atom_flags |= ATOM_REAGENTS_SKIP_REACTIONS
syringes = new syringes = new
known_reagents = list("inaprovaline"="Inaprovaline","anti_toxin"="Dylovene") known_reagents = list("inaprovaline"="Inaprovaline","anti_toxin"="Dylovene")
processed_reagents = new processed_reagents = new
@@ -31,7 +31,7 @@
/obj/item/mecha_parts/mecha_equipment/tool/syringe_gun/critfail() /obj/item/mecha_parts/mecha_equipment/tool/syringe_gun/critfail()
..() ..()
atom_flags &= ~NOREACT atom_flags &= ~ATOM_REAGENTS_SKIP_REACTIONS
return return
/obj/item/mecha_parts/mecha_equipment/tool/syringe_gun/get_equip_info() /obj/item/mecha_parts/mecha_equipment/tool/syringe_gun/get_equip_info()

View File

@@ -28,7 +28,7 @@
/obj/item/reagent_containers/glass/beaker/vial/random/Initialize() /obj/item/reagent_containers/glass/beaker/vial/random/Initialize()
. = ..() . = ..()
if(is_open_container()) if(is_open_container())
atom_flags ^= OPENCONTAINER atom_flags ^= ATOM_REAGENTS_IS_OPEN
var/list/picked_reagents = pickweight(random_reagent_list) var/list/picked_reagents = pickweight(random_reagent_list)
for(var/reagent in picked_reagents) for(var/reagent in picked_reagents)
reagents.add_reagent(reagent, picked_reagents[reagent]) reagents.add_reagent(reagent, picked_reagents[reagent])

View File

@@ -381,7 +381,7 @@ HALOGEN COUNTER - Radcount on mobs
drop_sound = 'sound/items/drop/device.ogg' drop_sound = 'sound/items/drop/device.ogg'
icon_state = "spectrometer" icon_state = "spectrometer"
w_class = ITEMSIZE_SMALL w_class = ITEMSIZE_SMALL
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
slot_flags = SLOT_BELT slot_flags = SLOT_BELT
throwforce = 5 throwforce = 5
throw_speed = 4 throw_speed = 4
@@ -463,7 +463,7 @@ HALOGEN COUNTER - Radcount on mobs
return return
if(!isnull(O.reagents)) if(!isnull(O.reagents))
if(!(O.atom_flags & OPENCONTAINER)) // The idea is that the scanner has to touch the reagents somehow. This is done to prevent cheesing unidentified autoinjectors. if(!(O.atom_flags & ATOM_REAGENTS_IS_OPEN)) // The idea is that the scanner has to touch the reagents somehow. This is done to prevent cheesing unidentified autoinjectors.
to_chat(user, span("warning", "\The [O] is sealed, and cannot be scanned by \the [src] until unsealed.")) to_chat(user, span("warning", "\The [O] is sealed, and cannot be scanned by \the [src] until unsealed."))
return return

View File

@@ -27,7 +27,7 @@
/obj/item/clothing/mask/chewable/Initialize() /obj/item/clothing/mask/chewable/Initialize()
. = ..() . = ..()
atom_flags |= NOREACT // so it doesn't react until you light it atom_flags |= ATOM_REAGENTS_SKIP_REACTIONS // so it doesn't react until you light it
create_reagents(chem_volume) // making the cigarrete a chemical holder with a maximum volume of 15 create_reagents(chem_volume) // making the cigarrete a chemical holder with a maximum volume of 15
for(var/R in filling) for(var/R in filling)
reagents.add_reagent(R, filling[R]) reagents.add_reagent(R, filling[R])

View File

@@ -105,7 +105,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/clothing/mask/smokable/Initialize() /obj/item/clothing/mask/smokable/Initialize()
. = ..() . = ..()
atom_flags |= NOREACT // so it doesn't react until you light it atom_flags |= ATOM_REAGENTS_SKIP_REACTIONS // so it doesn't react until you light it
create_reagents(chem_volume) // making the cigarrete a chemical holder with a maximum volume of 15 create_reagents(chem_volume) // making the cigarrete a chemical holder with a maximum volume of 15
if(smoketime && !max_smoketime) if(smoketime && !max_smoketime)
max_smoketime = smoketime max_smoketime = smoketime
@@ -183,7 +183,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
e.start() e.start()
qdel(src) qdel(src)
return return
atom_flags &= ~NOREACT // allowing reagents to react after being lit atom_flags &= ~ATOM_REAGENTS_SKIP_REACTIONS // allowing reagents to react after being lit
reagents.handle_reactions() reagents.handle_reactions()
var/turf/T = get_turf(src) var/turf/T = get_turf(src)
T.visible_message(flavor_text) T.visible_message(flavor_text)

View File

@@ -153,7 +153,7 @@
icon_state = "ecartridge" icon_state = "ecartridge"
matter = list("metal" = 50, "glass" = 10) matter = list("metal" = 50, "glass" = 10)
volume = 20 volume = 20
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
/obj/item/reagent_containers/ecig_cartridge/Initialize() /obj/item/reagent_containers/ecig_cartridge/Initialize()
. = ..() . = ..()

View File

@@ -44,7 +44,7 @@
matter[material_type] *= force_divisor // May require a new var instead. matter[material_type] *= force_divisor // May require a new var instead.
if(!(material.conductive)) if(!(material.conductive))
atom_flags |= NOCONDUCT atom_flags |= ATOM_IS_INSULATED
/obj/item/material/get_material() /obj/item/material/get_material()
return material return material

View File

@@ -7,7 +7,7 @@
sharp = 0 sharp = 0
edge = 0 edge = 0
armor_penetration = 50 armor_penetration = 50
atom_flags = NOCONDUCT atom_flags = ATOM_IS_INSULATED
item_flags = NOBLOODY item_flags = NOBLOODY
var/lrange = 2 var/lrange = 2
var/lpower = 2 var/lpower = 2

View File

@@ -10,7 +10,7 @@ GLOBAL_LIST_BOILERPLATE(all_mops, /obj/item/mop)
throw_speed = 5 throw_speed = 5
throw_range = 10 throw_range = 10
w_class = ITEMSIZE_NORMAL w_class = ITEMSIZE_NORMAL
atom_flags = NOCONDUCT atom_flags = ATOM_IS_INSULATED
attack_verb = list("mopped", "bashed", "bludgeoned", "whacked") attack_verb = list("mopped", "bashed", "bludgeoned", "whacked")
var/mopping = 0 var/mopping = 0
var/mopcount = 0 var/mopcount = 0

View File

@@ -15,7 +15,7 @@ var/global/list/cached_icons = list()
possible_transfer_amounts = list(10,20,30,60) possible_transfer_amounts = list(10,20,30,60)
volume = 60 volume = 60
unacidable = 0 unacidable = 0
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
var/paint_type = "red" var/paint_type = "red"
/obj/item/reagent_containers/glass/paint/afterattack(turf/simulated/target, mob/user, proximity) /obj/item/reagent_containers/glass/paint/afterattack(turf/simulated/target, mob/user, proximity)

View File

@@ -118,7 +118,7 @@
icon_state = "eshield" icon_state = "eshield"
item_state = "eshield" item_state = "eshield"
slot_flags = SLOT_EARS slot_flags = SLOT_EARS
atom_flags = NOCONDUCT atom_flags = ATOM_IS_INSULATED
force = 3.0 force = 3.0
throwforce = 5.0 throwforce = 5.0
throw_speed = 1 throw_speed = 1

View File

@@ -219,9 +219,9 @@
/obj/item/storage/fancy/cigarettes/Initialize() /obj/item/storage/fancy/cigarettes/Initialize()
. = ..() . = ..()
atom_flags |= NOREACT atom_flags |= ATOM_REAGENTS_SKIP_REACTIONS
create_reagents(15 * storage_slots)//so people can inject cigarettes without opening a packet, now with being able to inject the whole one create_reagents(15 * storage_slots)//so people can inject cigarettes without opening a packet, now with being able to inject the whole one
atom_flags |= OPENCONTAINER atom_flags |= ATOM_REAGENTS_IS_OPEN
if(brand) if(brand)
for(var/obj/item/clothing/mask/smokable/cigarette/C in src) for(var/obj/item/clothing/mask/smokable/cigarette/C in src)
C.brand = brand C.brand = brand
@@ -333,7 +333,7 @@
/obj/item/storage/fancy/cigar/Initialize() /obj/item/storage/fancy/cigar/Initialize()
. = ..() . = ..()
atom_flags |= NOREACT atom_flags |= ATOM_REAGENTS_SKIP_REACTIONS
create_reagents(15 * storage_slots) create_reagents(15 * storage_slots)
/obj/item/storage/fancy/cigar/update_icon() /obj/item/storage/fancy/cigar/update_icon()

View File

@@ -9,7 +9,7 @@
sharp = 0 sharp = 0
edge = 0 edge = 0
throwforce = 7 throwforce = 7
atom_flags = NOCONDUCT atom_flags = ATOM_IS_INSULATED
w_class = ITEMSIZE_NORMAL w_class = ITEMSIZE_NORMAL
drop_sound = 'sound/items/drop/metalweapon.ogg' drop_sound = 'sound/items/drop/metalweapon.ogg'
pickup_sound = 'sound/items/pickup/metalweapon.ogg' pickup_sound = 'sound/items/pickup/metalweapon.ogg'

View File

@@ -237,7 +237,7 @@
if(!istype(W)) if(!istype(W))
return return
if((W.atom_flags & NOCONDUCT) || !shock(user, 70, pick(BP_L_HAND, BP_R_HAND))) if((W.atom_flags & ATOM_IS_INSULATED) || !shock(user, 70, pick(BP_L_HAND, BP_R_HAND)))
user.setClickCooldown(user.get_attack_speed(W)) user.setClickCooldown(user.get_attack_speed(W))
user.do_attack_animation(src) user.do_attack_animation(src)
playsound(src, 'sound/effects/grillehit.ogg', 40, 1) playsound(src, 'sound/effects/grillehit.ogg', 40, 1)

View File

@@ -93,7 +93,7 @@
if(istype(O,/obj/structure)) if(istype(O,/obj/structure))
var/obj/structure/S = O var/obj/structure/S = O
if(S.climbable) continue if(S.climbable) continue
if(O && O.density && !(O.atom_flags & ON_BORDER)) //ON_BORDER structures are handled by the Adjacent() check. if(O && O.density && !(O.atom_flags & ATOM_HAS_TRANSITION_PRIORITY)) //ATOM_HAS_TRANSITION_PRIORITY structures are handled by the Adjacent() check.
return O return O
return 0 return 0

View File

@@ -150,7 +150,7 @@
return return
//window placing end //window placing end
else if((W.atom_flags & NOCONDUCT) || !shock(user, 70)) else if((W.atom_flags & ATOM_IS_INSULATED) || !shock(user, 70))
user.setClickCooldown(user.get_attack_speed(W)) user.setClickCooldown(user.get_attack_speed(W))
user.do_attack_animation(src) user.do_attack_animation(src)
playsound(src, 'sound/effects/grillehit.ogg', 80, 1) playsound(src, 'sound/effects/grillehit.ogg', 80, 1)

View File

@@ -8,7 +8,7 @@ GLOBAL_LIST_BOILERPLATE(all_janitorial_carts, /obj/structure/janitorialcart)
icon_state = "cart" icon_state = "cart"
anchored = 0 anchored = 0
density = 1 density = 1
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
climbable = TRUE climbable = TRUE
//copypaste sorry //copypaste sorry
var/amount_per_transfer_from_this = 5 //shit I dunno, adding this so syringes stop runtime erroring. --NeoFite var/amount_per_transfer_from_this = 5 //shit I dunno, adding this so syringes stop runtime erroring. --NeoFite
@@ -304,7 +304,7 @@ GLOBAL_LIST_BOILERPLATE(all_janitorial_carts, /obj/structure/janitorialcart)
icon_state = "pussywagon" icon_state = "pussywagon"
anchored = 1 anchored = 1
density = 1 density = 1
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
//copypaste sorry //copypaste sorry
var/amount_per_transfer_from_this = 5 //shit I dunno, adding this so syringes stop runtime erroring. --NeoFite var/amount_per_transfer_from_this = 5 //shit I dunno, adding this so syringes stop runtime erroring. --NeoFite
var/obj/item/storage/bag/trash/mybag = null var/obj/item/storage/bag/trash/mybag = null

View File

@@ -7,7 +7,7 @@
climbable = 1 climbable = 1
anchored = 1 anchored = 1
var/solidledge = 1 var/solidledge = 1
atom_flags = ON_BORDER atom_flags = ATOM_HAS_TRANSITION_PRIORITY
layer = STAIRS_LAYER layer = STAIRS_LAYER
icon_state = "ledge" icon_state = "ledge"

View File

@@ -7,7 +7,7 @@
climbable = 1 climbable = 1
w_class = ITEMSIZE_NORMAL w_class = ITEMSIZE_NORMAL
pressure_resistance = 5 pressure_resistance = 5
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
var/amount_per_transfer_from_this = 5 //shit I dunno, adding this so syringes stop runtime erroring. --NeoFite var/amount_per_transfer_from_this = 5 //shit I dunno, adding this so syringes stop runtime erroring. --NeoFite
GLOBAL_LIST_BOILERPLATE(all_mopbuckets, /obj/structure/mopbucket) GLOBAL_LIST_BOILERPLATE(all_mopbuckets, /obj/structure/mopbucket)

View File

@@ -8,7 +8,7 @@
climbable = 1 climbable = 1
layer = WINDOW_LAYER layer = WINDOW_LAYER
anchored = 1 anchored = 1
atom_flags = ON_BORDER atom_flags = ATOM_HAS_TRANSITION_PRIORITY
icon_state = "railing0" icon_state = "railing0"
var/broken = FALSE var/broken = FALSE
var/health = 70 var/health = 70
@@ -326,5 +326,5 @@
if(istype(O,/obj/structure)) if(istype(O,/obj/structure))
var/obj/structure/S = O var/obj/structure/S = O
if(S.climbable) continue if(S.climbable) continue
if(O && O.density && !(O.atom_flags & ON_BORDER && !(turn(O.dir, 180) & dir))) if(O && O.density && !(O.atom_flags & ATOM_HAS_TRANSITION_PRIORITY && !(turn(O.dir, 180) & dir)))
return O return O

View File

@@ -9,7 +9,7 @@
layer = WINDOW_LAYER layer = WINDOW_LAYER
pressure_resistance = 4*ONE_ATMOSPHERE pressure_resistance = 4*ONE_ATMOSPHERE
anchored = 1.0 anchored = 1.0
atom_flags = ON_BORDER atom_flags = ATOM_HAS_TRANSITION_PRIORITY
var/maxhealth = 14.0 var/maxhealth = 14.0
var/maximal_heat = T0C + 100 // Maximal heat before this window begins taking damage from fire var/maximal_heat = T0C + 100 // Maximal heat before this window begins taking damage from fire
var/damage_per_fire_tick = 2.0 // Amount of damage per fire tick. Regular windows are not fireproof so they might as well break quickly. var/damage_per_fire_tick = 2.0 // Amount of damage per fire tick. Regular windows are not fireproof so they might as well break quickly.

View File

@@ -197,7 +197,7 @@
mover.Bump(thing) mover.Bump(thing)
continue continue
else else
if(!firstbump || ((thing.layer > firstbump.layer || thing.atom_flags & ON_BORDER) && !(firstbump.atom_flags & ON_BORDER))) if(!firstbump || ((thing.layer > firstbump.layer || thing.atom_flags & ATOM_HAS_TRANSITION_PRIORITY) && !(firstbump.atom_flags & ATOM_HAS_TRANSITION_PRIORITY)))
firstbump = thing firstbump = thing
if(QDELETED(mover)) //Mover deleted from Cross/CanPass/Bump, do not proceed. if(QDELETED(mover)) //Mover deleted from Cross/CanPass/Bump, do not proceed.
return FALSE return FALSE
@@ -217,7 +217,7 @@
continue continue
var/atom/movable/thing = i var/atom/movable/thing = i
if(!thing.Uncross(mover, newloc)) if(!thing.Uncross(mover, newloc))
if(thing.atom_flags & ON_BORDER) if(thing.atom_flags & ATOM_HAS_TRANSITION_PRIORITY)
mover.Bump(thing) mover.Bump(thing)
if(!CHECK_BITFIELD(mover.movement_type, UNSTOPPABLE)) if(!CHECK_BITFIELD(mover.movement_type, UNSTOPPABLE))
return FALSE return FALSE
@@ -272,7 +272,7 @@
if(density) if(density)
return 1 return 1
for(var/atom/A in src) for(var/atom/A in src)
if(A.density && !(A.atom_flags & ON_BORDER)) if(A.density && !(A.atom_flags & ATOM_HAS_TRANSITION_PRIORITY))
return 1 return 1
return 0 return 0

View File

@@ -5,7 +5,7 @@
description_info = "Some blob types will have core effects when the chunk is used in-hand, toggled with an alt click, or constantly active." description_info = "Some blob types will have core effects when the chunk is used in-hand, toggled with an alt click, or constantly active."
icon = 'icons/mob/blob.dmi' icon = 'icons/mob/blob.dmi'
icon_state = "blobcore" icon_state = "blobcore"
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
var/datum/blob_type/blob_type // The blob type this dropped from. var/datum/blob_type/blob_type // The blob type this dropped from.
var/active_ability_cooldown = 20 SECONDS var/active_ability_cooldown = 20 SECONDS

View File

@@ -31,7 +31,7 @@
//Reagent Rings //Reagent Rings
/obj/item/clothing/gloves/ring/reagent /obj/item/clothing/gloves/ring/reagent
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
origin_tech = list(TECH_MATERIAL = 2, TECH_ILLEGAL = 4) origin_tech = list(TECH_MATERIAL = 2, TECH_ILLEGAL = 4)
/obj/item/clothing/gloves/ring/reagent/Initialize() /obj/item/clothing/gloves/ring/reagent/Initialize()

View File

@@ -23,7 +23,7 @@
possible_transfer_amounts = list(5) possible_transfer_amounts = list(5)
volume = 10 volume = 10
can_be_placed_into = null can_be_placed_into = null
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
item_flags = NOBLUDGEON item_flags = NOBLUDGEON
unacidable = 0 unacidable = 0
drop_sound = 'sound/items/drop/cloth.ogg' drop_sound = 'sound/items/drop/cloth.ogg'

View File

@@ -23,7 +23,7 @@ var/global/const/DRINK_ICON_NOISY = "_noise"
amount_per_transfer_from_this = 5 amount_per_transfer_from_this = 5
possible_transfer_amounts = list(5,10,15,30) possible_transfer_amounts = list(5,10,15,30)
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
matter = list("glass" = 60) matter = list("glass" = 60)

View File

@@ -10,7 +10,7 @@
desc = "Just your average condiment container." desc = "Just your average condiment container."
icon = 'icons/obj/food.dmi' icon = 'icons/obj/food.dmi'
icon_state = "emptycondiment" icon_state = "emptycondiment"
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
possible_transfer_amounts = list(1,5,10) possible_transfer_amounts = list(1,5,10)
center_of_mass = list("x"=16, "y"=6) center_of_mass = list("x"=16, "y"=6)
volume = 50 volume = 50

View File

@@ -8,7 +8,7 @@
drop_sound = 'sound/items/drop/drinkglass.ogg' drop_sound = 'sound/items/drop/drinkglass.ogg'
pickup_sound = 'sound/items/pickup/drinkglass.ogg' pickup_sound = 'sound/items/pickup/drinkglass.ogg'
icon_state = null icon_state = null
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
amount_per_transfer_from_this = 5 amount_per_transfer_from_this = 5
possible_transfer_amounts = list(5,10,15,25,30) possible_transfer_amounts = list(5,10,15,25,30)
volume = 50 volume = 50
@@ -49,7 +49,7 @@
playsound(src,"canopen", rand(10,50), 1) playsound(src,"canopen", rand(10,50), 1)
GLOB.cans_opened_roundstat++ GLOB.cans_opened_roundstat++
to_chat(user, "<span class='notice'>You open [src] with an audible pop!</span>") to_chat(user, "<span class='notice'>You open [src] with an audible pop!</span>")
atom_flags |= OPENCONTAINER atom_flags |= ATOM_REAGENTS_IS_OPEN
/obj/item/reagent_containers/food/drinks/attack(mob/M as mob, mob/user as mob, def_zone) /obj/item/reagent_containers/food/drinks/attack(mob/M as mob, mob/user as mob, def_zone)
if(force && !(item_flags & NOBLUDGEON) && user.a_intent == I_HURT) if(force && !(item_flags & NOBLUDGEON) && user.a_intent == I_HURT)
@@ -124,7 +124,7 @@
amount_per_transfer_from_this = 20 amount_per_transfer_from_this = 20
possible_transfer_amounts = null possible_transfer_amounts = null
volume = 150 volume = 150
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
/obj/item/reagent_containers/food/drinks/golden_cup/on_reagent_change() /obj/item/reagent_containers/food/drinks/golden_cup/on_reagent_change()
..() ..()

View File

@@ -119,14 +119,14 @@
to_chat(user, "<span class='notice'>You stuff [R] into [src].</span>") to_chat(user, "<span class='notice'>You stuff [R] into [src].</span>")
rag = R rag = R
rag.forceMove(src) rag.forceMove(src)
atom_flags &= ~OPENCONTAINER atom_flags &= ~ATOM_REAGENTS_IS_OPEN
update_icon() update_icon()
/obj/item/reagent_containers/food/drinks/bottle/proc/remove_rag(mob/user) /obj/item/reagent_containers/food/drinks/bottle/proc/remove_rag(mob/user)
if(!rag) return if(!rag) return
user.put_in_hands(rag) user.put_in_hands(rag)
rag = null rag = null
atom_flags |= (initial(atom_flags) & OPENCONTAINER) atom_flags |= (initial(atom_flags) & ATOM_REAGENTS_IS_OPEN)
update_icon() update_icon()
/obj/item/reagent_containers/food/drinks/bottle/open(mob/user) /obj/item/reagent_containers/food/drinks/bottle/open(mob/user)
@@ -182,7 +182,7 @@
throw_speed = 3 throw_speed = 3
throw_range = 5 throw_range = 5
item_state = "beer" item_state = "beer"
atom_flags = NOCONDUCT atom_flags = ATOM_IS_INSULATED
attack_verb = list("stabbed", "slashed", "attacked") attack_verb = list("stabbed", "slashed", "attacked")
sharp = 1 sharp = 1
edge = 0 edge = 0

View File

@@ -1816,7 +1816,7 @@
filling_color = "#ADAC7F" filling_color = "#ADAC7F"
center_of_mass = list("x"=16, "y"=14) center_of_mass = list("x"=16, "y"=14)
w_class = ITEMSIZE_TINY w_class = ITEMSIZE_TINY
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
var/wrapped = 0 var/wrapped = 0
var/contents_type = "item" var/contents_type = "item"
var/monkey_type = "Monkey" var/monkey_type = "Monkey"
@@ -1849,7 +1849,7 @@
desc = "Just add water!" desc = "Just add water!"
to_chat(user, "You unwrap the cube.") to_chat(user, "You unwrap the cube.")
wrapped = 0 wrapped = 0
atom_flags |= OPENCONTAINER atom_flags |= ATOM_REAGENTS_IS_OPEN
return return
/obj/item/reagent_containers/food/snacks/cube/On_Consume(var/mob/M) /obj/item/reagent_containers/food/snacks/cube/On_Consume(var/mob/M)
@@ -6869,7 +6869,7 @@
to_chat(user, "It is [sealed ? "" : "un"]sealed.") to_chat(user, "It is [sealed ? "" : "un"]sealed.")
/obj/item/reagent_containers/food/snacks/canned/proc/unseal() /obj/item/reagent_containers/food/snacks/canned/proc/unseal()
atom_flags |= OPENCONTAINER atom_flags |= ATOM_REAGENTS_IS_OPEN
sealed = FALSE sealed = FALSE
update_icon() update_icon()

View File

@@ -2,7 +2,7 @@
/obj/item/reagent_containers/glass/bottle/robot /obj/item/reagent_containers/glass/bottle/robot
amount_per_transfer_from_this = 10 amount_per_transfer_from_this = 10
possible_transfer_amounts = list(5,10,15,25,30,50,100) possible_transfer_amounts = list(5,10,15,25,30,50,100)
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
volume = 60 volume = 60
var/reagent = "" var/reagent = ""

View File

@@ -8,7 +8,7 @@
var/max_space = 20//Maximum sum of w-classes of foods in this container at once var/max_space = 20//Maximum sum of w-classes of foods in this container at once
var/max_reagents = 80//Maximum units of reagents var/max_reagents = 80//Maximum units of reagents
var/food_items = 0 // Used for icon updates var/food_items = 0 // Used for icon updates
atom_flags = OPENCONTAINER | NOREACT atom_flags = ATOM_REAGENTS_IS_OPEN | ATOM_REAGENTS_SKIP_REACTIONS
var/list/insertable = list( var/list/insertable = list(
/obj/item/reagent_containers/food/snacks, /obj/item/reagent_containers/food/snacks,
/obj/item/holder, /obj/item/holder,
@@ -22,7 +22,7 @@
/obj/item/reagent_containers/cooking_container/Initialize() /obj/item/reagent_containers/cooking_container/Initialize()
. = ..() . = ..()
create_reagents(max_reagents) create_reagents(max_reagents)
atom_flags |= OPENCONTAINER | NOREACT atom_flags |= ATOM_REAGENTS_IS_OPEN | ATOM_REAGENTS_SKIP_REACTIONS
/obj/item/reagent_containers/cooking_container/examine(var/mob/user) /obj/item/reagent_containers/cooking_container/examine(var/mob/user)

View File

@@ -15,7 +15,7 @@
density = 1 density = 1
anchored = 0 anchored = 0
use_power = USE_POWER_OFF use_power = USE_POWER_OFF
atom_flags = OPENCONTAINER | NOREACT atom_flags = ATOM_REAGENTS_IS_OPEN | ATOM_REAGENTS_SKIP_REACTIONS
var/list/product_types = list() var/list/product_types = list()
var/dispense_flavour = ICECREAM_VANILLA var/dispense_flavour = ICECREAM_VANILLA

View File

@@ -11,7 +11,7 @@
active_power_usage = 2000 active_power_usage = 2000
clicksound = "button" clicksound = "button"
clickvol = "30" clickvol = "30"
atom_flags = OPENCONTAINER | NOREACT atom_flags = ATOM_REAGENTS_IS_OPEN | ATOM_REAGENTS_SKIP_REACTIONS
circuit = /obj/item/circuitboard/microwave circuit = /obj/item/circuitboard/microwave
var/operating = 0 // Is it on? var/operating = 0 // Is it on?
var/dirty = 0 // = {0..100} Does it need cleaning? var/dirty = 0 // = {0..100} Does it need cleaning?
@@ -100,7 +100,7 @@
src.icon_state = "mw" src.icon_state = "mw"
src.broken = 0 // Fix it! src.broken = 0 // Fix it!
src.dirty = 0 // just to be sure src.dirty = 0 // just to be sure
src.atom_flags = OPENCONTAINER | NOREACT src.atom_flags = ATOM_REAGENTS_IS_OPEN | ATOM_REAGENTS_SKIP_REACTIONS
else else
to_chat(user, "<span class='warning'>It's broken!</span>") to_chat(user, "<span class='warning'>It's broken!</span>")
return 1 return 1
@@ -119,7 +119,7 @@
src.dirty = 0 // It's clean! src.dirty = 0 // It's clean!
src.broken = 0 // just to be sure src.broken = 0 // just to be sure
src.icon_state = "mw" src.icon_state = "mw"
src.atom_flags = OPENCONTAINER | NOREACT src.atom_flags = ATOM_REAGENTS_IS_OPEN | ATOM_REAGENTS_SKIP_REACTIONS
else //Otherwise bad luck!! else //Otherwise bad luck!!
to_chat(user, "<span class='warning'>It's dirty!</span>") to_chat(user, "<span class='warning'>It's dirty!</span>")
return 1 return 1

View File

@@ -12,7 +12,7 @@
use_power = USE_POWER_IDLE use_power = USE_POWER_IDLE
idle_power_usage = 5 idle_power_usage = 5
active_power_usage = 100 active_power_usage = 100
atom_flags = NOREACT atom_flags = ATOM_REAGENTS_SKIP_REACTIONS
var/max_n_of_items = 999 // Sorry but the BYOND infinite loop detector doesn't look things over 1000. var/max_n_of_items = 999 // Sorry but the BYOND infinite loop detector doesn't look things over 1000.
var/list/item_records = list() var/list/item_records = list()
var/datum/stored_item/currently_vending = null //What we're putting out of the machine. var/datum/stored_item/currently_vending = null //What we're putting out of the machine.

View File

@@ -31,7 +31,7 @@
/obj/machinery/station_map/Initialize() /obj/machinery/station_map/Initialize()
. = ..() . = ..()
atom_flags |= ON_BORDER // Why? It doesn't help if its not density atom_flags |= ATOM_HAS_TRANSITION_PRIORITY // Why? It doesn't help if its not density
/obj/machinery/station_map/Initialize() /obj/machinery/station_map/Initialize()
. = ..() . = ..()

View File

@@ -5,7 +5,7 @@
icon = 'icons/obj/hydroponics_products.dmi' icon = 'icons/obj/hydroponics_products.dmi'
icon_state = "blank" icon_state = "blank"
desc = "Nutritious! Probably." desc = "Nutritious! Probably."
atom_flags = NOCONDUCT atom_flags = ATOM_IS_INSULATED
slot_flags = SLOT_HOLSTER slot_flags = SLOT_HOLSTER
drop_sound = 'sound/items/drop/herb.ogg' drop_sound = 'sound/items/drop/herb.ogg'
pickup_sound = 'sound/items/pickup/herb.ogg' pickup_sound = 'sound/items/pickup/herb.ogg'

View File

@@ -35,7 +35,7 @@
desc = "A reminder of meals gone by." desc = "A reminder of meals gone by."
icon = 'icons/obj/trash.dmi' icon = 'icons/obj/trash.dmi'
icon_state = "corncob" icon_state = "corncob"
atom_flags = NOCONDUCT atom_flags = ATOM_IS_INSULATED
w_class = ITEMSIZE_SMALL w_class = ITEMSIZE_SMALL
throwforce = 0 throwforce = 0
throw_speed = 4 throw_speed = 4
@@ -54,7 +54,7 @@
desc = "A peel from a banana." desc = "A peel from a banana."
icon = 'icons/obj/items.dmi' icon = 'icons/obj/items.dmi'
icon_state = "banana_peel" icon_state = "banana_peel"
atom_flags = NOCONDUCT atom_flags = ATOM_IS_INSULATED
w_class = ITEMSIZE_SMALL w_class = ITEMSIZE_SMALL
throwforce = 0 throwforce = 0
throw_speed = 4 throw_speed = 4

View File

@@ -5,7 +5,7 @@
icon_state = "hydrotray3" icon_state = "hydrotray3"
density = 1 density = 1
anchored = 1 anchored = 1
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
volume = 100 volume = 100
var/mechanical = 1 // Set to 0 to stop it from drawing the alert lights. var/mechanical = 1 // Set to 0 to stop it from drawing the alert lights.

View File

@@ -110,7 +110,7 @@
icon_state = "chemical_cell" icon_state = "chemical_cell"
extended_desc = "This is effectively an internal beaker. It will consume and produce power from phoron, slime jelly, welding fuel, carbon,\ extended_desc = "This is effectively an internal beaker. It will consume and produce power from phoron, slime jelly, welding fuel, carbon,\
ethanol, nutriments and blood, in order of decreasing efficiency. It will consume fuel only if the battery can take more energy." ethanol, nutriments and blood, in order of decreasing efficiency. It will consume fuel only if the battery can take more energy."
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
complexity = 4 complexity = 4
inputs = list() inputs = list()
outputs = list("volume used" = IC_PINTYPE_NUMBER,"self reference" = IC_PINTYPE_REF) outputs = list("volume used" = IC_PINTYPE_NUMBER,"self reference" = IC_PINTYPE_REF)

View File

@@ -15,7 +15,7 @@
icon_state = "smoke" icon_state = "smoke"
extended_desc = "This smoke generator creates clouds of smoke on command. It can also hold liquids inside, which will go \ extended_desc = "This smoke generator creates clouds of smoke on command. It can also hold liquids inside, which will go \
into the smoke clouds when activated. The reagents are consumed when smoke is made." into the smoke clouds when activated. The reagents are consumed when smoke is made."
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
complexity = 20 complexity = 20
cooldown_per_use = 30 SECONDS cooldown_per_use = 30 SECONDS
inputs = list() inputs = list()
@@ -52,7 +52,7 @@
icon_state = "injector" icon_state = "injector"
extended_desc = "This autoinjector can push reagents into another container or someone else outside of the machine. The target \ extended_desc = "This autoinjector can push reagents into another container or someone else outside of the machine. The target \
must be adjacent to the machine, and if it is a person, they cannot be wearing thick clothing. A negative amount makes the injector draw out reagents." must be adjacent to the machine, and if it is a person, they cannot be wearing thick clothing. A negative amount makes the injector draw out reagents."
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
complexity = 20 complexity = 20
cooldown_per_use = 6 SECONDS cooldown_per_use = 6 SECONDS
inputs = list("target" = IC_PINTYPE_REF, "injection amount" = IC_PINTYPE_NUMBER) inputs = list("target" = IC_PINTYPE_REF, "injection amount" = IC_PINTYPE_NUMBER)
@@ -186,7 +186,7 @@
extended_desc = "This is a pump, which will move liquids from the source ref to the target ref. The third pin determines \ extended_desc = "This is a pump, which will move liquids from the source ref to the target ref. The third pin determines \
how much liquid is moved per pulse, between 0 and 50. The pump can move reagents to any open container inside the machine, or \ how much liquid is moved per pulse, between 0 and 50. The pump can move reagents to any open container inside the machine, or \
outside the machine if it is next to the machine. Note that this cannot be used on entities." outside the machine if it is next to the machine. Note that this cannot be used on entities."
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
complexity = 8 complexity = 8
inputs = list("source" = IC_PINTYPE_REF, "target" = IC_PINTYPE_REF, "injection amount" = IC_PINTYPE_NUMBER) inputs = list("source" = IC_PINTYPE_REF, "target" = IC_PINTYPE_REF, "injection amount" = IC_PINTYPE_NUMBER)
inputs_default = list("3" = 5) inputs_default = list("3" = 5)
@@ -240,7 +240,7 @@
desc = "Stores liquid inside, and away from electrical components. Can store up to 60u." desc = "Stores liquid inside, and away from electrical components. Can store up to 60u."
icon_state = "reagent_storage" icon_state = "reagent_storage"
extended_desc = "This is effectively an internal beaker." extended_desc = "This is effectively an internal beaker."
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
complexity = 4 complexity = 4
inputs = list() inputs = list()
outputs = list("volume used" = IC_PINTYPE_NUMBER,"self reference" = IC_PINTYPE_REF) outputs = list("volume used" = IC_PINTYPE_NUMBER,"self reference" = IC_PINTYPE_REF)
@@ -264,7 +264,7 @@
desc = "Stores liquid inside, and away from electrical components. Can store up to 60u. This will also suppress reactions." desc = "Stores liquid inside, and away from electrical components. Can store up to 60u. This will also suppress reactions."
icon_state = "reagent_storage_cryo" icon_state = "reagent_storage_cryo"
extended_desc = "This is effectively an internal cryo beaker." extended_desc = "This is effectively an internal cryo beaker."
atom_flags = OPENCONTAINER | NOREACT atom_flags = ATOM_REAGENTS_IS_OPEN | ATOM_REAGENTS_SKIP_REACTIONS
complexity = 8 complexity = 8
spawn_flags = IC_SPAWN_RESEARCH spawn_flags = IC_SPAWN_RESEARCH
origin_tech = list(TECH_MATERIAL = 4, TECH_ENGINEERING = 2, TECH_DATA = 2, TECH_BIO = 2) origin_tech = list(TECH_MATERIAL = 4, TECH_ENGINEERING = 2, TECH_DATA = 2, TECH_BIO = 2)
@@ -274,7 +274,7 @@
desc = "Stores liquid inside, and away from electrical components. Can store up to 180u." desc = "Stores liquid inside, and away from electrical components. Can store up to 180u."
icon_state = "reagent_storage_big" icon_state = "reagent_storage_big"
extended_desc = "This is effectively an internal beaker." extended_desc = "This is effectively an internal beaker."
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
complexity = 16 complexity = 16
volume = 180 volume = 180
spawn_flags = IC_SPAWN_RESEARCH spawn_flags = IC_SPAWN_RESEARCH
@@ -285,7 +285,7 @@
desc = "Stores liquid inside, and away from electrical components. Can store up to 60u. On pulse this beaker will send list of contained reagents." desc = "Stores liquid inside, and away from electrical components. Can store up to 60u. On pulse this beaker will send list of contained reagents."
icon_state = "reagent_scan" icon_state = "reagent_scan"
extended_desc = "Mostly useful for reagent filter." extended_desc = "Mostly useful for reagent filter."
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
complexity = 8 complexity = 8
outputs = list("volume used" = IC_PINTYPE_NUMBER,"self reference" = IC_PINTYPE_REF,"list of reagents" = IC_PINTYPE_LIST) outputs = list("volume used" = IC_PINTYPE_NUMBER,"self reference" = IC_PINTYPE_REF,"list of reagents" = IC_PINTYPE_LIST)
activators = list("scan" = IC_PINTYPE_PULSE_IN) activators = list("scan" = IC_PINTYPE_PULSE_IN)
@@ -308,7 +308,7 @@
It will move all reagents, except list, given in fourth pin if amount value is positive.\ It will move all reagents, except list, given in fourth pin if amount value is positive.\
Or it will move only desired reagents if amount is negative, The third pin determines \ Or it will move only desired reagents if amount is negative, The third pin determines \
how much reagent is moved per pulse, between 0 and 50. Amount is given for each separate reagent." how much reagent is moved per pulse, between 0 and 50. Amount is given for each separate reagent."
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
complexity = 8 complexity = 8
inputs = list("source" = IC_PINTYPE_REF, "target" = IC_PINTYPE_REF, "injection amount" = IC_PINTYPE_NUMBER, "list of reagents" = IC_PINTYPE_LIST) inputs = list("source" = IC_PINTYPE_REF, "target" = IC_PINTYPE_REF, "injection amount" = IC_PINTYPE_NUMBER, "list of reagents" = IC_PINTYPE_LIST)
inputs_default = list("3" = 5) inputs_default = list("3" = 5)

View File

@@ -174,7 +174,7 @@ Book Cart End
item_state = "book" item_state = "book"
throw_speed = 1 throw_speed = 1
throw_range = 5 throw_range = 5
atom_flags = NOCONDUCT atom_flags = ATOM_IS_INSULATED
w_class = ITEMSIZE_NORMAL //upped to three because books are, y'know, pretty big. (and you could hide them inside eachother recursively forever) w_class = ITEMSIZE_NORMAL //upped to three because books are, y'know, pretty big. (and you could hide them inside eachother recursively forever)
attack_verb = list("bashed", "whacked", "educated") attack_verb = list("bashed", "whacked", "educated")
var/dat // Actual page content var/dat // Actual page content

View File

@@ -109,7 +109,7 @@ var/global/list/name_to_material
var/explosion_resistance = 5 // Only used by walls currently. var/explosion_resistance = 5 // Only used by walls currently.
var/negation = 0 // Objects that respect this will randomly absorb impacts with this var as the percent chance. var/negation = 0 // Objects that respect this will randomly absorb impacts with this var as the percent chance.
var/spatial_instability = 0 // Objects that have trouble staying in the same physical space by sheer laws of nature have this. Percent for respecting items to cause teleportation. var/spatial_instability = 0 // Objects that have trouble staying in the same physical space by sheer laws of nature have this. Percent for respecting items to cause teleportation.
var/conductive = 1 // Objects without this var add NOCONDUCT to flags on spawn. var/conductive = 1 // Objects without this var add ATOM_IS_INSULATED to flags on spawn.
var/conductivity = null // How conductive the material is. Iron acts as the baseline, at 10. var/conductivity = null // How conductive the material is. Iron acts as the baseline, at 10.
var/list/composite_material // If set, object matter var will be a list containing these values. var/list/composite_material // If set, object matter var will be a list containing these values.
var/luminescence var/luminescence

View File

@@ -41,7 +41,7 @@
color = material.icon_colour color = material.icon_colour
if(!material.conductive) if(!material.conductive)
atom_flags |= NOCONDUCT atom_flags |= ATOM_IS_INSULATED
matter = material.get_matter() matter = material.get_matter()
update_strings() update_strings()

View File

@@ -415,7 +415,7 @@
return 1 return 1
for(var/obj/O in B) for(var/obj/O in B)
if(O.density && !istype(O, /obj/machinery/door) && !(O.atom_flags & ON_BORDER)) if(O.density && !istype(O, /obj/machinery/door) && !(O.atom_flags & ATOM_HAS_TRANSITION_PRIORITY))
return 1 return 1
return 0 return 0

View File

@@ -268,7 +268,7 @@
// Things that prevent objects standing on them from falling into turf below // Things that prevent objects standing on them from falling into turf below
/obj/structure/catwalk/CanFallThru(atom/movable/mover as mob|obj, turf/target as turf) /obj/structure/catwalk/CanFallThru(atom/movable/mover as mob|obj, turf/target as turf)
if((target.z < z) && !hatch_open) if((target.z < z) && !hatch_open)
return FALSE // TODO - Technically should be density = 1 and flags |= ON_BORDER return FALSE // TODO - Technically should be density = 1 and flags |= ATOM_HAS_TRANSITION_PRIORITY
if(!isturf(mover.loc)) if(!isturf(mover.loc))
return FALSE // Only let loose floor items fall. No more snatching things off people's hands. return FALSE // Only let loose floor items fall. No more snatching things off people's hands.
else else
@@ -297,7 +297,7 @@
if(!isturf(mover.loc)) if(!isturf(mover.loc))
return FALSE // Only let loose floor items fall. No more snatching things off people's hands. return FALSE // Only let loose floor items fall. No more snatching things off people's hands.
else else
return FALSE // TODO - Technically should be density = 1 and flags |= ON_BORDER return FALSE // TODO - Technically should be density = 1 and flags |= ATOM_HAS_TRANSITION_PRIORITY
// So you'll slam when falling onto a grille // So you'll slam when falling onto a grille
/obj/structure/lattice/CheckFall(var/atom/movable/falling_atom) /obj/structure/lattice/CheckFall(var/atom/movable/falling_atom)
@@ -357,14 +357,14 @@
// Called on everything that falling_atom might hit. Return TRUE if you're handling it so find_fall_target() will stop checking. // Called on everything that falling_atom might hit. Return TRUE if you're handling it so find_fall_target() will stop checking.
/atom/proc/CheckFall(var/atom/movable/falling_atom) /atom/proc/CheckFall(var/atom/movable/falling_atom)
if(density && !(atom_flags & ON_BORDER)) if(density && !(atom_flags & ATOM_HAS_TRANSITION_PRIORITY))
return TRUE return TRUE
// If you are hit: how is it handled. // If you are hit: how is it handled.
// Return TRUE if the generic fall_impact should be called // Return TRUE if the generic fall_impact should be called
// Return FALSE if you handled it yourself or if there's no effect from hitting you // Return FALSE if you handled it yourself or if there's no effect from hitting you
/atom/proc/check_impact(var/atom/movable/falling_atom) /atom/proc/check_impact(var/atom/movable/falling_atom)
if(density && !(atom_flags & ON_BORDER)) if(density && !(atom_flags & ATOM_HAS_TRANSITION_PRIORITY))
return TRUE return TRUE
// By default all turfs are gonna let you hit them regardless of density. // By default all turfs are gonna let you hit them regardless of density.

View File

@@ -181,7 +181,7 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain)
decays = FALSE decays = FALSE
parent_organ = BP_TORSO parent_organ = BP_TORSO
clone_source = TRUE clone_source = TRUE
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
var/list/owner_flavor_text = list() var/list/owner_flavor_text = list()
/obj/item/organ/internal/brain/slime/is_open_container() /obj/item/organ/internal/brain/slime/is_open_container()

View File

@@ -84,7 +84,7 @@
/obj/effect/shuttle_landmark/ship /obj/effect/shuttle_landmark/ship
name = "Open Space" name = "Open Space"
landmark_tag = "ship" landmark_tag = "ship"
atom_flags = SLANDMARK_FLAG_ZERO_G // *Not* AUTOSET, these must be world.turf and world.area for lazy loading to work. atom_flags = LANDMARK_REMOVES_GRAVITY // *Not* AUTOSET, these must be world.turf and world.area for lazy loading to work.
var/shuttle_name var/shuttle_name
var/list/visitors // landmark -> visiting shuttle stationed there var/list/visitors // landmark -> visiting shuttle stationed there
@@ -117,7 +117,7 @@
// //
/obj/effect/shuttle_landmark/visiting_shuttle /obj/effect/shuttle_landmark/visiting_shuttle
atom_flags = SLANDMARK_FLAG_AUTOSET | SLANDMARK_FLAG_ZERO_G atom_flags = LANDMARK_CREATES_SAFE_SITE | LANDMARK_REMOVES_GRAVITY
var/obj/effect/shuttle_landmark/ship/core_landmark var/obj/effect/shuttle_landmark/ship/core_landmark
/obj/effect/shuttle_landmark/visiting_shuttle/Initialize(mapload, obj/effect/shuttle_landmark/ship/master, _name) /obj/effect/shuttle_landmark/visiting_shuttle/Initialize(mapload, obj/effect/shuttle_landmark/ship/master, _name)

View File

@@ -116,7 +116,7 @@
*/ */
/obj/item/pen/reagent /obj/item/pen/reagent
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
origin_tech = list(TECH_MATERIAL = 2, TECH_ILLEGAL = 5) origin_tech = list(TECH_MATERIAL = 2, TECH_ILLEGAL = 5)
/obj/item/pen/reagent/Initialize() /obj/item/pen/reagent/Initialize()

View File

@@ -231,7 +231,7 @@ var/global/list/possible_cable_coil_colours = list(
shock(user, 5, 0.2) shock(user, 5, 0.2)
else else
if(!(W.atom_flags & NOCONDUCT)) if(!(W.atom_flags & ATOM_IS_INSULATED))
shock(user, 50, 0.7) shock(user, 50, 0.7)
src.add_fingerprint(user) src.add_fingerprint(user)

View File

@@ -550,7 +550,7 @@ var/global/list/light_type_cache = list()
if(M == user) if(M == user)
continue continue
M.show_message("[user.name] smashed the light!", 3, "You hear a tinkle of breaking glass", 2) M.show_message("[user.name] smashed the light!", 3, "You hear a tinkle of breaking glass", 2)
if(on && !(W.atom_flags & NOCONDUCT)) if(on && !(W.atom_flags & ATOM_IS_INSULATED))
//if(!user.mutations & COLD_RESISTANCE) //if(!user.mutations & COLD_RESISTANCE)
if (prob(12)) if (prob(12))
electrocute_mob(user, get_area(src), src, 0.3) electrocute_mob(user, get_area(src), src, 0.3)
@@ -570,7 +570,7 @@ var/global/list/light_type_cache = list()
return return
to_chat(user, "You stick \the [W] into the light socket!") to_chat(user, "You stick \the [W] into the light socket!")
if(has_power() && !(W.atom_flags & NOCONDUCT)) if(has_power() && !(W.atom_flags & ATOM_IS_INSULATED))
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
s.set_up(3, 1, src) s.set_up(3, 1, src)
s.start() s.start()

View File

@@ -1,7 +1,7 @@
/datum/reagents/distilling/handle_reactions() /datum/reagents/distilling/handle_reactions()
if(QDELETED(my_atom)) if(QDELETED(my_atom))
return FALSE return FALSE
if(my_atom.atom_flags & NOREACT) if(my_atom.atom_flags & ATOM_REAGENTS_SKIP_REACTIONS)
return FALSE return FALSE
var/reaction_occurred var/reaction_occurred
var/list/eligible_reactions = list() var/list/eligible_reactions = list()

View File

@@ -78,7 +78,7 @@
/datum/reagents/proc/handle_reactions() /datum/reagents/proc/handle_reactions()
if(QDELETED(my_atom)) if(QDELETED(my_atom))
return FALSE return FALSE
if(my_atom.atom_flags & NOREACT) if(my_atom.atom_flags & ATOM_REAGENTS_SKIP_REACTIONS)
return FALSE return FALSE
var/reaction_occurred var/reaction_occurred
var/list/eligible_reactions = list() var/list/eligible_reactions = list()

View File

@@ -19,7 +19,7 @@
var/pillsprite = 1 var/pillsprite = 1
var/max_pill_count = 20 var/max_pill_count = 20
var/printing = FALSE var/printing = FALSE
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
clicksound = "button" clicksound = "button"
/obj/machinery/chem_master/Initialize() /obj/machinery/chem_master/Initialize()

View File

@@ -53,8 +53,8 @@
to_chat(user, span("notice", "Contains [R.volume]u of <b>[R.name]</b>.<br>[R.description]<br>")) to_chat(user, span("notice", "Contains [R.volume]u of <b>[R.name]</b>.<br>[R.description]<br>"))
// Last, unseal it if it's an autoinjector. // Last, unseal it if it's an autoinjector.
if(istype(I,/obj/item/reagent_containers/hypospray/autoinjector/biginjector) && !(I.atom_flags & OPENCONTAINER)) if(istype(I,/obj/item/reagent_containers/hypospray/autoinjector/biginjector) && !(I.atom_flags & ATOM_REAGENTS_IS_OPEN))
I.atom_flags |= OPENCONTAINER I.atom_flags |= ATOM_REAGENTS_IS_OPEN
to_chat(user, span("notice", "Sample container unsealed.<br>")) to_chat(user, span("notice", "Sample container unsealed.<br>"))
to_chat(user, span("notice", "Scanning of \the [I] complete.")) to_chat(user, span("notice", "Scanning of \the [I] complete."))

View File

@@ -55,10 +55,10 @@
..() ..()
if (is_open_container()) if (is_open_container())
to_chat(usr, "<span class = 'notice'>You put the cap on \the [src].</span>") to_chat(usr, "<span class = 'notice'>You put the cap on \the [src].</span>")
atom_flags ^= OPENCONTAINER atom_flags ^= ATOM_REAGENTS_IS_OPEN
else else
to_chat(usr, "<span class = 'notice'>You take the cap off \the [src].</span>") to_chat(usr, "<span class = 'notice'>You take the cap off \the [src].</span>")
atom_flags |= OPENCONTAINER atom_flags |= ATOM_REAGENTS_IS_OPEN
/obj/item/reagent_containers/chem_disp_cartridge/afterattack(obj/target, mob/user , flag) /obj/item/reagent_containers/chem_disp_cartridge/afterattack(obj/target, mob/user , flag)
if (!is_open_container() || !flag) if (!is_open_container() || !flag)

View File

@@ -14,7 +14,7 @@
possible_transfer_amounts = list(5,10,15,25,30,60) possible_transfer_amounts = list(5,10,15,25,30,60)
volume = 60 volume = 60
w_class = ITEMSIZE_SMALL w_class = ITEMSIZE_SMALL
atom_flags = OPENCONTAINER | NOCONDUCT atom_flags = ATOM_REAGENTS_IS_OPEN | ATOM_IS_INSULATED
unacidable = 1 //glass doesn't dissolve in acid unacidable = 1 //glass doesn't dissolve in acid
drop_sound = 'sound/items/drop/bottle.ogg' drop_sound = 'sound/items/drop/bottle.ogg'
pickup_sound = 'sound/items/pickup/bottle.ogg' pickup_sound = 'sound/items/pickup/bottle.ogg'
@@ -74,10 +74,10 @@
..() ..()
if(is_open_container()) if(is_open_container())
to_chat(usr, "<span class = 'notice'>You put the lid on \the [src].</span>") to_chat(usr, "<span class = 'notice'>You put the lid on \the [src].</span>")
atom_flags ^= OPENCONTAINER atom_flags ^= ATOM_REAGENTS_IS_OPEN
else else
to_chat(usr, "<span class = 'notice'>You take the lid off \the [src].</span>") to_chat(usr, "<span class = 'notice'>You take the lid off \the [src].</span>")
atom_flags |= OPENCONTAINER atom_flags |= ATOM_REAGENTS_IS_OPEN
update_icon() update_icon()
/obj/item/reagent_containers/glass/attack(mob/M as mob, mob/user as mob, def_zone) /obj/item/reagent_containers/glass/attack(mob/M as mob, mob/user as mob, def_zone)
@@ -134,7 +134,7 @@
update_name_label() update_name_label()
if(istype(W,/obj/item/storage/bag)) if(istype(W,/obj/item/storage/bag))
..() ..()
if(W && W.w_class <= w_class && (atom_flags & OPENCONTAINER) && user.a_intent != I_HELP) if(W && W.w_class <= w_class && (atom_flags & ATOM_REAGENTS_IS_OPEN) && user.a_intent != I_HELP)
to_chat(user, "<span class='notice'>You dip \the [W] into \the [src].</span>") to_chat(user, "<span class='notice'>You dip \the [W] into \the [src].</span>")
reagents.touch_obj(W, reagents.total_volume) reagents.touch_obj(W, reagents.total_volume)
@@ -209,7 +209,7 @@
volume = 120 volume = 120
amount_per_transfer_from_this = 10 amount_per_transfer_from_this = 10
possible_transfer_amounts = list(5,10,15,25,30,60,120) possible_transfer_amounts = list(5,10,15,25,30,60,120)
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
/obj/item/reagent_containers/glass/beaker/noreact /obj/item/reagent_containers/glass/beaker/noreact
name = "cryostasis beaker" name = "cryostasis beaker"
@@ -219,7 +219,7 @@
matter = list("glass" = 500) matter = list("glass" = 500)
volume = 60 volume = 60
amount_per_transfer_from_this = 10 amount_per_transfer_from_this = 10
atom_flags = OPENCONTAINER | NOREACT atom_flags = ATOM_REAGENTS_IS_OPEN | ATOM_REAGENTS_SKIP_REACTIONS
/obj/item/reagent_containers/glass/beaker/bluespace /obj/item/reagent_containers/glass/beaker/bluespace
name = "bluespace beaker" name = "bluespace beaker"
@@ -230,7 +230,7 @@
volume = 300 volume = 300
amount_per_transfer_from_this = 10 amount_per_transfer_from_this = 10
possible_transfer_amounts = list(5,10,15,25,30,60,120,300) possible_transfer_amounts = list(5,10,15,25,30,60,120,300)
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
/obj/item/reagent_containers/glass/beaker/vial /obj/item/reagent_containers/glass/beaker/vial
name = "vial" name = "vial"
@@ -242,7 +242,7 @@
w_class = ITEMSIZE_TINY w_class = ITEMSIZE_TINY
amount_per_transfer_from_this = 10 amount_per_transfer_from_this = 10
possible_transfer_amounts = list(5,10,15,30) possible_transfer_amounts = list(5,10,15,30)
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
/obj/item/reagent_containers/glass/beaker/cryoxadone /obj/item/reagent_containers/glass/beaker/cryoxadone
name = "beaker (cryoxadone)" name = "beaker (cryoxadone)"
@@ -259,7 +259,7 @@
volume = 120 volume = 120
amount_per_transfer_from_this = 10 amount_per_transfer_from_this = 10
possible_transfer_amounts = list(5,10,15,25,30,60,120) possible_transfer_amounts = list(5,10,15,25,30,60,120)
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
/obj/item/reagent_containers/glass/bucket /obj/item/reagent_containers/glass/bucket
desc = "It's a bucket." desc = "It's a bucket."
@@ -273,7 +273,7 @@
amount_per_transfer_from_this = 20 amount_per_transfer_from_this = 20
possible_transfer_amounts = list(10,20,30,60,120) possible_transfer_amounts = list(10,20,30,60,120)
volume = 120 volume = 120
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
unacidable = 0 unacidable = 0
drop_sound = 'sound/items/drop/helm.ogg' drop_sound = 'sound/items/drop/helm.ogg'
pickup_sound = 'sound/items/pickup/helm.ogg' pickup_sound = 'sound/items/pickup/helm.ogg'
@@ -331,7 +331,7 @@
amount_per_transfer_from_this = 20 amount_per_transfer_from_this = 20
possible_transfer_amounts = list(10,20,30,60,120) possible_transfer_amounts = list(10,20,30,60,120)
volume = 120 volume = 120
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
unacidable = 0 unacidable = 0
drop_sound = 'sound/items/drop/wooden.ogg' drop_sound = 'sound/items/drop/wooden.ogg'
pickup_sound = 'sound/items/pickup/wooden.ogg' pickup_sound = 'sound/items/pickup/wooden.ogg'

View File

@@ -12,7 +12,7 @@
unacidable = 1 unacidable = 1
volume = 30 volume = 30
possible_transfer_amounts = null possible_transfer_amounts = null
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
slot_flags = SLOT_BELT slot_flags = SLOT_BELT
drop_sound = 'sound/items/drop/gun.ogg' drop_sound = 'sound/items/drop/gun.ogg'
pickup_sound = 'sound/items/pickup/gun.ogg' pickup_sound = 'sound/items/pickup/gun.ogg'
@@ -115,7 +115,7 @@
if(!do_after(user,30) || loaded_vial || !(W in user)) if(!do_after(user,30) || loaded_vial || !(W in user))
return 0 return 0
if(W.is_open_container()) if(W.is_open_container())
W.atom_flags ^= OPENCONTAINER W.atom_flags ^= ATOM_REAGENTS_IS_OPEN
W.update_icon() W.update_icon()
user.drop_item() user.drop_item()
W.loc = src W.loc = src
@@ -152,13 +152,13 @@
/obj/item/reagent_containers/hypospray/autoinjector/used/Initialize() /obj/item/reagent_containers/hypospray/autoinjector/used/Initialize()
. = ..() . = ..()
atom_flags &= ~OPENCONTAINER atom_flags &= ~ATOM_REAGENTS_IS_OPEN
icon_state = "[initial(icon_state)]0" icon_state = "[initial(icon_state)]0"
/obj/item/reagent_containers/hypospray/autoinjector/do_injection(mob/living/carbon/human/H, mob/living/user) /obj/item/reagent_containers/hypospray/autoinjector/do_injection(mob/living/carbon/human/H, mob/living/user)
. = ..() . = ..()
if(.) // Will occur if successfully injected. if(.) // Will occur if successfully injected.
atom_flags &= ~OPENCONTAINER atom_flags &= ~ATOM_REAGENTS_IS_OPEN
update_icon() update_icon()
/obj/item/reagent_containers/hypospray/autoinjector/update_icon() /obj/item/reagent_containers/hypospray/autoinjector/update_icon()

View File

@@ -5,7 +5,7 @@
icon_state = "cleaner" icon_state = "cleaner"
item_state = "cleaner" item_state = "cleaner"
center_of_mass = list("x" = 16,"y" = 10) center_of_mass = list("x" = 16,"y" = 10)
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
item_flags = NOBLUDGEON item_flags = NOBLUDGEON
matter = list("glass" = 300, MAT_STEEL = 300) matter = list("glass" = 300, MAT_STEEL = 300)
slot_flags = SLOT_BELT slot_flags = SLOT_BELT

View File

@@ -7,7 +7,7 @@ using metal and glass, it uses glass and reagents (usually sulphuric acid).
/obj/machinery/r_n_d/circuit_imprinter /obj/machinery/r_n_d/circuit_imprinter
name = "Circuit Imprinter" name = "Circuit Imprinter"
icon_state = "circuit_imprinter" icon_state = "circuit_imprinter"
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
circuit = /obj/item/circuitboard/circuit_imprinter circuit = /obj/item/circuitboard/circuit_imprinter
var/list/datum/design/queue = list() var/list/datum/design/queue = list()
var/progress = 0 var/progress = 0

View File

@@ -1,7 +1,7 @@
/obj/machinery/r_n_d/protolathe /obj/machinery/r_n_d/protolathe
name = "Protolathe" name = "Protolathe"
icon_state = "protolathe" icon_state = "protolathe"
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
circuit = /obj/item/circuitboard/protolathe circuit = /obj/item/circuitboard/protolathe
use_power = USE_POWER_IDLE use_power = USE_POWER_IDLE
idle_power_usage = 30 idle_power_usage = 30

View File

@@ -7,7 +7,7 @@
unacidable = 1 unacidable = 1
simulated = 0 simulated = 0
invisibility = 101 invisibility = 101
atom_flags = SLANDMARK_FLAG_AUTOSET // We generally want to use current area/turf as base. atom_flags = LANDMARK_CREATES_SAFE_SITE // We generally want to use current area/turf as base.
//ID of the landmark //ID of the landmark
var/landmark_tag var/landmark_tag
@@ -30,7 +30,7 @@
. = INITIALIZE_HINT_LATELOAD . = INITIALIZE_HINT_LATELOAD
// Even if this flag is set, hardcoded values take precedence. // Even if this flag is set, hardcoded values take precedence.
if(atom_flags & SLANDMARK_FLAG_AUTOSET) if(atom_flags & LANDMARK_CREATES_SAFE_SITE)
if(ispath(base_area)) if(ispath(base_area))
var/area/A = locate(base_area) var/area/A = locate(base_area)
if(!istype(A)) if(!istype(A))
@@ -123,7 +123,7 @@
/obj/effect/shuttle_landmark/automatic /obj/effect/shuttle_landmark/automatic
name = "Navpoint" name = "Navpoint"
landmark_tag = "navpoint" landmark_tag = "navpoint"
atom_flags = SLANDMARK_FLAG_AUTOSET atom_flags = LANDMARK_CREATES_SAFE_SITE
/obj/effect/shuttle_landmark/automatic/Initialize() /obj/effect/shuttle_landmark/automatic/Initialize()
landmark_tag += "-[x]-[y]-[z]-[random_id("landmarks",1,9999)]" landmark_tag += "-[x]-[y]-[z]-[random_id("landmarks",1,9999)]"

View File

@@ -290,7 +290,7 @@
// If shuttle has no internal gravity, update our gravity with destination gravity // If shuttle has no internal gravity, update our gravity with destination gravity
if((flags & SHUTTLE_FLAGS_ZERO_G)) if((flags & SHUTTLE_FLAGS_ZERO_G))
var/new_grav = 1 var/new_grav = 1
if(destination.atom_flags & SLANDMARK_FLAG_ZERO_G) if(destination.atom_flags & LANDMARK_REMOVES_GRAVITY)
var/area/new_area = get_area(destination) var/area/new_area = get_area(destination)
new_grav = new_area.has_gravity new_grav = new_area.has_gravity
for(var/area/our_area in shuttle_area) for(var/area/our_area in shuttle_area)

View File

@@ -215,4 +215,4 @@
return //do nothing for now return //do nothing for now
/obj/effect/shuttle_landmark/transit /obj/effect/shuttle_landmark/transit
atom_flags = SLANDMARK_FLAG_ZERO_G|SLANDMARK_FLAG_AUTOSET atom_flags = LANDMARK_REMOVES_GRAVITY|LANDMARK_CREATES_SAFE_SITE

View File

@@ -88,7 +88,7 @@
layer = ABOVE_MOB_LAYER layer = ABOVE_MOB_LAYER
climbable = 0 //flipping tables allows them to be used as makeshift barriers climbable = 0 //flipping tables allows them to be used as makeshift barriers
flipped = 1 flipped = 1
atom_flags |= ON_BORDER atom_flags |= ATOM_HAS_TRANSITION_PRIORITY
for(var/D in list(turn(direction, 90), turn(direction, -90))) for(var/D in list(turn(direction, 90), turn(direction, -90)))
var/obj/structure/table/T = locate() in get_step(src,D) var/obj/structure/table/T = locate() in get_step(src,D)
if(T && T.flipped == 0 && material && T.material && T.material.name == material.name) if(T && T.flipped == 0 && material && T.material && T.material.name == material.name)
@@ -106,7 +106,7 @@
reset_plane_and_layer() reset_plane_and_layer()
flipped = 0 flipped = 0
climbable = initial(climbable) climbable = initial(climbable)
atom_flags &= ~ON_BORDER atom_flags &= ~ATOM_HAS_TRANSITION_PRIORITY
for(var/D in list(turn(dir, 90), turn(dir, -90))) for(var/D in list(turn(dir, 90), turn(dir, -90)))
var/obj/structure/table/T = locate() in get_step(src.loc,D) var/obj/structure/table/T = locate() in get_step(src.loc,D)
if(T && T.flipped == 1 && T.dir == src.dir && material && T.material&& T.material.name == material.name) if(T && T.flipped == 1 && T.dir == src.dir && material && T.material&& T.material.name == material.name)

View File

@@ -12,7 +12,7 @@
origin_tech = list(TECH_BIO = 4) origin_tech = list(TECH_BIO = 4)
var/uses = 1 // uses before it goes inert var/uses = 1 // uses before it goes inert
var/enhanced = FALSE var/enhanced = FALSE
atom_flags = OPENCONTAINER atom_flags = ATOM_REAGENTS_IS_OPEN
/obj/item/slime_extract/Initialize() /obj/item/slime_extract/Initialize()

View File

@@ -316,7 +316,7 @@
} \ } \
/obj/effect/shuttle_landmark/cynosure/escape_pod##NUMBER/transit { \ /obj/effect/shuttle_landmark/cynosure/escape_pod##NUMBER/transit { \
landmark_tag = "escape_pod_"+ #NUMBER +"_transit"; \ landmark_tag = "escape_pod_"+ #NUMBER +"_transit"; \
atom_flags = SLANDMARK_FLAG_AUTOSET; \ atom_flags = LANDMARK_CREATES_SAFE_SITE; \
} }
ESCAPE_POD(1) ESCAPE_POD(1)
@@ -349,7 +349,7 @@ ESCAPE_POD(1)
/obj/effect/shuttle_landmark/cynosure/large_escape_pod1/transit /obj/effect/shuttle_landmark/cynosure/large_escape_pod1/transit
landmark_tag = "large_escape_pod1_transit" landmark_tag = "large_escape_pod1_transit"
atom_flags = SLANDMARK_FLAG_AUTOSET atom_flags = LANDMARK_CREATES_SAFE_SITE
// Large Escape Pod 2 // Large Escape Pod 2
/datum/shuttle/autodock/ferry/escape_pod/large_escape_pod2 /datum/shuttle/autodock/ferry/escape_pod/large_escape_pod2
@@ -377,7 +377,7 @@ ESCAPE_POD(1)
/obj/effect/shuttle_landmark/cynosure/large_escape_pod2/transit /obj/effect/shuttle_landmark/cynosure/large_escape_pod2/transit
landmark_tag = "large_escape_pod2_transit" landmark_tag = "large_escape_pod2_transit"
atom_flags = SLANDMARK_FLAG_AUTOSET atom_flags = LANDMARK_CREATES_SAFE_SITE
//Cynosure Station Docks //Cynosure Station Docks

View File

@@ -234,7 +234,7 @@
} \ } \
/obj/effect/shuttle_landmark/southern_cross/escape_pod##NUMBER/transit { \ /obj/effect/shuttle_landmark/southern_cross/escape_pod##NUMBER/transit { \
landmark_tag = "escape_pod_"+ #NUMBER +"_transit"; \ landmark_tag = "escape_pod_"+ #NUMBER +"_transit"; \
flags = SLANDMARK_FLAG_AUTOSET; \ flags = LANDMARK_CREATES_SAFE_SITE; \
} }
ESCAPE_POD(1) ESCAPE_POD(1)
@@ -274,7 +274,7 @@ ESCAPE_POD(8)
/obj/effect/shuttle_landmark/southern_cross/cryostorage_transit /obj/effect/shuttle_landmark/southern_cross/cryostorage_transit
landmark_tag = "cryostorage_transit" landmark_tag = "cryostorage_transit"
flags = SLANDMARK_FLAG_AUTOSET flags = LANDMARK_CREATES_SAFE_SITE
// Large Escape Pod 1 // Large Escape Pod 1
/datum/shuttle/autodock/ferry/escape_pod/large_escape_pod1 /datum/shuttle/autodock/ferry/escape_pod/large_escape_pod1
@@ -302,7 +302,7 @@ ESCAPE_POD(8)
/obj/effect/shuttle_landmark/southern_cross/large_escape_pod1/transit /obj/effect/shuttle_landmark/southern_cross/large_escape_pod1/transit
landmark_tag = "large_escape_pod1_transit" landmark_tag = "large_escape_pod1_transit"
flags = SLANDMARK_FLAG_AUTOSET flags = LANDMARK_CREATES_SAFE_SITE
// Large Escape Pod 2 // Large Escape Pod 2
/datum/shuttle/autodock/ferry/escape_pod/large_escape_pod2 /datum/shuttle/autodock/ferry/escape_pod/large_escape_pod2
@@ -330,7 +330,7 @@ ESCAPE_POD(8)
/obj/effect/shuttle_landmark/southern_cross/large_escape_pod2/transit /obj/effect/shuttle_landmark/southern_cross/large_escape_pod2/transit
landmark_tag = "large_escape_pod2_transit" landmark_tag = "large_escape_pod2_transit"
flags = SLANDMARK_FLAG_AUTOSET flags = LANDMARK_CREATES_SAFE_SITE
// Destination datums // Destination datums
@@ -367,5 +367,3 @@ ESCAPE_POD(8)
// Heist shuttle // Heist shuttle