* [MDB IGNORE] dir sanity, primarily on WALLITEMs (#62601)
About The Pull Request
Wall items mostly use the direction from the floor to the wall in the named mapping helper. Wall items mostly use the direction from the wall to the floor for the internal dir variable.
This leads to a headache when it comes to working out what conflicts with what, and what needs placing where.
Wall frames provided a member, inverse, which specified whether or not to invert the direction of the item when looking for conflicts. It was also used to specify whether to look for conflicts outside of the wall (cameras and lights appear external to the wall) or inside the wall (most wall items). This flag was set for Intercoms, APCs, and Lights. Since APCs and Lights expect a floor-to-wall direction, and Intercoms expect a wall-to-floor direction, this means that APCs and Lights were getting the correct direction, and Intercoms were getting the wrong direction.
Some implications of this setup were:
You could build an APC on top of another wall item, provided there was nothing external attached to the wall and the area didn't have an APC.
You could stack Intercoms indefinitely on top of the same wall, provided you weren't in a one-tile wide corridor with something on the opposite wall.
Or both! Here's twenty Intercoms placed on the wall, and a freshly placed APC frame after placing all Intercoms and deconstructing the old APC:
endless-stack-of-intercoms
Not everything used this inverse variable to adjust to the correct direction. For example, /obj/machinery/defibrillator_mount just used a negative pixel_offset to be visually placed in the correct direction, even though the internal direction was wrong, and never set! This also let you stack an indefinite number of defib mounts on the same wall, provided it wasn't a northern wall... except you could do this to northern walls too, since defibs weren't considered a wall item for the purposes of checking collisions at all!
Ultimately, every constructable interior wall item either used this inverse variable to adjust to the correct placement, set a negative pixel_offset variable to have its offset adjusted to the correct placement, or overrode New or Initialize to run its own checks and assignment to pixel_x and pixel_y!
Inventory: Table of various paths, related paths, and the adjustments they used
Unfortunately, untangling /obj/structure/sign is going to be another major headache, and this has already exploded in scope enough already, so we can't get rid of the get_turf_pixel call just yet. This also doesn't fix problems with the special 2x1 /obj/structure/sign/barsign.
Some non-wall items have been made to use the new MAPPING_DIRECTIONAL_HELPERS as part of the directional cleanup.
tl;dr: All wall mounted items and some directional objects now use the same direction that they were labelled as. More consistent directional types everywhere.
Why It's Good For The Game
fml
Changelog
cl
refactor: Wall mounted and directional objects have undergone major internal simplification. Please report anything unusual!
fix: You can no longer stack an indefinite amount of Intercoms on the same wall.
fix: Defibrillator Mounts, Bluespace Gas Vendors, Turret Controlers, and Ticket Machines are now considered wall items.
fix: Wall mounted items on top of the wall now consistently check against other items on top of the wall, and items coming out of the wall now consistently check against other items coming out of the wall.
fix: The various directional pixel offsets within an APC, Fire Extinguisher Cabinet, Intercom, or Newscaster have been made consistent with each other.
fix: The pixel offsets of Intercoms, Fire Alarms, Fire Extinguisher Cabinets, Flashers, and Newscasters have been made consistent between roundstart and constructed instances.
fix: Constructed Turret Controls will no longer oddly overhang the wall they were placed on.
qol: Defibrillator mounts now better indicate which side of the wall they are on.
fix: Some instances where there were multiple identical lights on the same tile have been fixed to only have one.
/cl
* [MDB IGNORE] dir sanity, primarily on WALLITEMs
* apc directionals
* bluespace vendor fix
* defib fix
Co-authored-by: esainane <esainane+github@gmail.com>
Co-authored-by: jjpark-kb <55967837+jjpark-kb@users.noreply.github.com>
* Fixes emissive appearances of vending machines being removed when the wire panel is opened/closed (#62592)
Replaces a cut_overlays() call with cut_overlay(panel_type) EDIT: moved the panel overlay to the update_overlays proc
* Fixes emissive appearances of vending machines being removed when the wire panel is opened/closed
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Modernizing Radiation -- TL;DR: Radiation is now a status effect healed by tox healing, and contamination is removed
* Fixing conflicts
* Makes it compile, yeet all the RAD armor from everywhere (thanks RegEx!)
* Removing more lingering rad armor (woo)
* Damnit powerarmors
* Bye bye rad collectors!
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* removes double spaces before symbols (#62397)
This can apparently cause some bugs on occasions, so I thought I might as well try to kill them all.
* removes double spaces before symbols
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* Moves vending prices from /atom to /obj/item (#62243)
* Moves 3 vars related to vending machines, from /atom to /obj/item
* Lazily removes some lines in a funky IDE of my choosing.
Removes all instances of custom_price and custom_premium_price within maps to prevent compilation errors due to invalid vars.
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Kat <evesovereign@hotmail.co.uk>
* Adds art stuff to the library games vendor (#62253)
* added game vendor art stuff
* spaces, ai canvas to premium
* Adds art stuff to the library games vendor
Co-authored-by: Mickyan <38563876+Mickyan@users.noreply.github.com>
* Oh hi Mark.
* hand dryer 4000
* E
* fur dyer
* actually makes it work
* Update fur_dyer.dm
* Update fur_dyer.dm
* Final touches!
* Update jobs.txt
* le straight razor
* f
* Update hhmirror.dm
* updoot
* Update IceBoxStation_skyrat.dmm
* E
* No more failure penalties, it's bad.
* logic errors
* actual hairdye
* Update barber.dm
* Rebases to newer map versions
Fixes multiple issues with the original map changes in this PR, which are as follows but not limited to:
• Trapping Lawyers in their office on Blueshift
• Incorrect curtain types
• Awkward atmos
• Broken disposals
• Missing wallmounts
• Missing firelocks
* camera on meta
* Update jobs.dm
* more dyesprays
Co-authored-by: Kat <evesovereign@hotmail.co.uk>
* Disco Elysium suits (#62113)
Re-opening goof's PR that was closed earlier this week: #61401 that ports Disco Elysium sprites from Fulp's old repo: TheSwain#306 but with fixes to armhole issue on the under/jobs/security sprites and minor punctuation corrections on some item descriptions.
* Disco Elysium suits
Co-authored-by: Horatio22 <69338705+Horatio22@users.noreply.github.com>
* memories are no longer added if the target isn't aware of them. (#61375)
Fixing an oversight with the memories system. Memories shouldn't be added to people who aren't possibly aware of them.
* memories are no longer added if the target isn't aware of them.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* [modular][ready]adds a fashionable baseball cap
* Update head.dm
* the rumors were true....
* Update head.dm
* timb living ass
* huh
* improved sprite
* Update head.dmi
* ok there
Co-authored-by: louiseedwardstuart <bonniefluff>
Repaths everything referring to "toxins" while actually meaning either the room in science or plasma gas. While this PR might be disrespectful to our forefathers, given this is (I believe) a holdover from as far back as the Exadv1 days, this has constantly irked me since I started working with the code. None of the player-facing stuff has referred to plasma as toxin since before 4407 hit, besides the Toxins Lab, and yet all of the type-paths are still pointing at toxins, making it a nightmare to search for in a map editor, and making the code needlessly easy to confuse with that of toxin damage. So this just fires it into the sun.
Anything relating to Toxins, the science subdepartment, now makes reference to Ordnance instead. This felt fitting enough given the focus of the subdepartment is around the creation of and testing of explosives.
Anything relating to plasma gas has, fittingly, been made to refer to plasma gas.
Edit: Ah yes, I feel I should probably apologise off the bat for the size of this PR- the code touched is mostly atmos machinery and simplemobs, a few sprites here and there, and of course the station maps + a few offstation maps.
Makes the code more legible and makes mapping less painful.
(The payment has been made)
Co-authored-by: EOBGames <58124831+EOBGames@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* AAAAAAAAAAA
* pollution scrubbbies
* fires cause smoke, right? Also NSS journey has scrubbies
* washing things removes the smell!
* what the fuck were you doing last night
* Update temporary_pollution_emission_component.dm
* space turfs shouldn't have pollution
* Fix air now fixes smoke
* Update pollution.dm
* Update pollution.dm
* Update bonfire.dm
* ANTI-TIDER-2500 (#60016)
Straight from CentComm's R&D lab, the
ANTI-TIDER-2500
is the ULTIMATE crowd-control device.
Tired of being harassed by the crew for petty reasons? Sick of permabrigged prisoners constantly rioting over soggy tofu rations? The ANTI-TIDER-2500 is for YOU! For the modest sum of 710 credits you'll finally be able to hose clowns and whiners alike in pepper spray!
Co-authored-by: coiax <yellowbounder@ gmail.com>
* ANTI-TIDER-2500
Co-authored-by: Malgover <56408561+Malgover@users.noreply.github.com>
Co-authored-by: coiax <yellowbounder@ gmail.com>
* OH BOY
* Not even dying harder than possible will save you from being revived.
* weh
* more improvements
* more fixes and improvements
* adds le vendor options
* Adds cortical stacks to cargo
* aaaa
* syndie cortical
* oops
* DELACE MACHINE GOES BRRT
* Are you a believer?
* buffs cortical stack remover on traitors
* Update code/game/objects/items/devices/scanners.dm
Co-authored-by: Tom <tomforde4@gmail.com>
* Update code/modules/mining/machine_vending.dm
Co-authored-by: Tom <tomforde4@gmail.com>
* Update code/game/objects/items/devices/scanners.dm
Co-authored-by: Tom <tomforde4@gmail.com>
* Update code/modules/mob/living/carbon/death.dm
Co-authored-by: Tom <tomforde4@gmail.com>
* Update modular_skyrat/modules/neural-lacing/code/delacer.dm
Co-authored-by: Tom <tomforde4@gmail.com>
* Update modular_skyrat/modules/neural-lacing/code/implanter.dm
Co-authored-by: Tom <tomforde4@gmail.com>
* Update modular_skyrat/modules/neural-lacing/code/stack.dm
Co-authored-by: Tom <tomforde4@gmail.com>
* Update modular_skyrat/modules/neural-lacing/code/stack.dm
Co-authored-by: Tom <tomforde4@gmail.com>
* Update modular_skyrat/modules/neural-lacing/code/stack.dm
Co-authored-by: Tom <tomforde4@gmail.com>
* Update modular_skyrat/modules/neural-lacing/code/stack.dm
Co-authored-by: Tom <tomforde4@gmail.com>
* Update delacer.dm
* aa
* a
* Update stack.dm
* weh
* More featureees
* Believer bundle
* i am deranged
* Update implanter.dm
Co-authored-by: Yawet330 <memeusniceus@gmail.com>
Co-authored-by: Tom <tomforde4@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
* New contraband peanuts (#59638)
Adds a new variety of peanuts to Getmore
Tweaks peanuts to have a higher price, since they're currently the best thing to buy in the vendor.
* New contraband peanuts
Co-authored-by: YakumoChen <king_yoshi42@yahoo.com>
* POLICE TAPE WOO
hmmgh
* Much things, read desc
Placed tape is a structure now instead of an item, door sprites are actually torn, all code besides destruction works (mostly)
* TAPE WORKS 99%
just need to have a visual for lifted tape..
* Adds lifted visual + starts on making tape obtainable
ahgghbkaghb
* finishes the vendors. 100% complete(?)
AAAAAAAAAAAAAAAAAAA
* detdrobe vending
abghb
* lifted alpha is better
hbgb
* change opacity hngh
* indentation bhgjknbg
im so tired
* walking can crumple the tape too
* desc