Commit Graph

45 Commits

Author SHA1 Message Date
Kashargul fa113ea3f5 next set of globals (#19131) 2026-02-09 00:36:52 +01:00
Will 395f618b0f Ventcrawler update (#18709)
* mob atmos properly handled

* Ventcrawling signals

* ventcrawler blowout

* clarity

* fix

* fix again

* again

* consistency

* Teshari rattler

* scrubbers can be welded shut
2025-11-07 14:29:14 +01:00
Cameron Lennox 84dc5535dc var/global/list -> GLOB. conversion (#17928)
* These two are easy

* !!!runlevel_flags

the fact it was global.runlevel_flags.len has me a bit...iffy on this.

* !!!json_cache

Same as above. used global.

* player_list & observer_mob_list

* mechas_list

* this wasn't even used

* surgery_steps

* event_triggers

* landmarks_list

* dead_mob_list

* living_mob_list

* ai_list

* cable_list

* cleanbot_reserved_turfs

* listening_objects

* silicon_mob_list

* human_mob_list

* Update global_lists.dm

* joblist

* mob_list

* Update global_lists.dm

* holomap_markers

* mapping_units

* mapping_beacons

* hair_styles_list

* facial_hair_styles_list

* Update global_lists.dm

* facial_hair_styles_male_list

* facial_hair_styles_female_list

* body_marking_styles_list

* body_marking_nopersist_list

* ear_styles_list

* hair_styles_male_list

* tail_styles_list

* wing_styles_list

* escape_list & rune_list & endgame_exits

these were all really small

* endgame_safespawns

* stool_cache

* emotes_by_key

* random_maps & map_count

* item_tf_spawnpoints

* narsie_list

* active_radio_jammers

* unused

* paikeys

* pai_software_by_key & default_pai_software

* plant_seed_sprites

* magazine_icondata_keys  & magazine_icondata_states

* unused

* ashtray_cache

* light_type_cache

* HOLIDAY!!!

this one was annoying

* faction stuff (red?!)

* Update preferences_factions.dm

* vs edit removal

* backbaglist, pdachoicelist, exclude_jobs

* item_digestion_blacklist, edible_tech, blacklisted_artifact_effect, selectable_footstep, hexNums, syndicate_access

* string_slot_flags and hexdigits->hexNums

* possible_changeling_IDs

* vr_mob_tf_options

* vr_mob_spawner_options

* pipe_colors

* vr_mob_spawner_options

* common_tools

* newscaster_standard_feeds

* Update periodic_news.dm

* changeling_fabricated_clothing

* semirandom_mob_spawner_decisions

* id_card_states

* Update syndicate_ids.dm

* overlay_cache & gear_distributed_to

* more

* radio_channels_by_freq

* Update global_lists.dm

* proper

* default_medbay_channels & default_internal_channels

default_internal_channels is weird as it has a mapbased proc() but that proc is never called...

* valid_ringtones

* move this

* possible_plants

* more

* separate these

moves xeno2chemlist from a hook to a new global list.

* tube_dir_list

* valid_bloodreagents & monitor_states

* Junk

* valid_bloodtypes

* breach_burn_descriptors & burn

* more!!

appliance_available_recipes seems uber cursed, re-look at later

* Appliance code is cursed

* wide_chassis & flying_chassis

* allows_eye_color

* all_tooltip_styles

* direction_table

* gun_choices

* severity_to_string

* old event_viruses

* description_icons

* MOVE_KEY_MAPPINGS

* more more

* pai & robot modules

* Update global_lists.dm

* GEOSAMPLES

Also swaps a .len to LAZYLEN()

* shieldgens

* reagent recipies

* global ammo types

* rad collector

* old file and unused global

* nif_look_messages

* FESH

* nifsoft

* chamelion

* the death of sortAtom

* globulins

* lazylen that

* Update global_lists.dm

* LAZY

* Theese too

* quick fix

---------

Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
2025-07-14 20:14:31 +02:00
Cameron Lennox 2e38926234 Removes sleeping from the code in more places (#17418)
* Axes unused 'paused' variable from projectile code

* Remove TGUI in scrubber init

Moves it to only happen when a user interacts with it.

* Ghostpod tgui input from init -> LateInit

Ghost query REQUIRES a tgui input. It can't be fixed on that level.
Ghost pods however created a ghost query when spawned if they are NOT mapspawn. This means it can only be moved to lateinit, as far as I can see

* Moves borer ghost query from init to lateinit

* Better mob chasing. Gets rid of sleep in mob chasing

Moves Noodle's and Ian's snack tracking var to base /simple_mob
Moves Noodle's and Ian's tracking process from a individual proc of each to /simple_mob
Moves the sleeps out from the tracking proc and makes it a repeating timer.
Noodle now gets nutrition when you feed him.

* Moves blob query to lateinit

Once again, blob HAS to do a ghost query when it's created.
Ghost query will ALWAYS make a tgui window.

* No sleep in cyborg code

Moves pick_module() from /init on robot_module to /LateInit on /robot
photo showing it popped up the module select when I spawned in as a borg: https://i.imgur.com/5rGbqIR.png

* Moves AI controlled human's 'death' proc to LateInitialize

* Moves Corpse's processing from Init to LateInit

death() has a LOT that happens inside of it.

* Let's actually make it lateload on the human itself

* In case we don't want to auto kill ai controlled mobs

* Fixes death() some more

- Protean blobs will ALWAYS have a humanform, so that segment of code was unused.
- Makes the bulk of the exit VR section in a new perform_exit() proc
- Gets rid of the WIP proof of concept hack in there.

* whoops duplicate

* We will ALWAYS have a humanform. ALWAYS.

The server will CRASH if we do not.

* get rid of this...

* Makes corpsespawn work better

* more VR stuff

* No suspending the whole machines subsystem

* avatar

* as anything

* u2

* nolist

* forgot this one

* fix

* VR fix

Fixes an oversight with VR sleepers

* player initiated

* OVERSIGHT

* Update borer.dm

OF course WE DON'T have a mind, we're a GHOST.
Fixes borer spawning

* this was unused

no
2025-04-07 17:16:07 -04:00
Cameron Lennox ddc95236e0 Fixes some runtimes [IDB IGNORE] (#17194)
* Fixes some runtimes

* typo

* No more infinite mannequins

* crash

* More runtime fixes and  pressure fling

Makes it so you can unwrench pipes that are pressurized, at the cost of being flung back from the pipe. Higher pressure = longer distance and faster.

* Fixes a memory leak and a bug
2025-03-06 13:17:13 -05:00
ShadowLarkens 80ec15a777 Atmospherics/Initialize (#16519) 2024-10-31 12:07:23 +01:00
Guti 409aaba802 Remove 2024-09-09 02:36:53 +02:00
Kashargul 3796850a2f fixes an issue with disposal junctions ending with weird directions & RPD icons (#15900)
* fixes an issue with disposal junctions ending with weird directions

* fixed an issue of wrong icon states used on mirrored tvalves
2024-04-07 10:33:37 +10:00
Drathek 7c8bb85de3 Whitespace Standardization [MDB IGNORE] (#15748)
* Update settings

* Whitespace changes

* Comment out merger hooks in gitattributes

Corrupt maps would have to be resolved in repo before hooks could be updated

* Revert "Whitespace changes"

This reverts commit afbdd1d844.

* Whitespace again minus example

* Gitignore example changelog

* Restore changelog merge setting

* Keep older dmi hook attribute until hooks can be updated

* update vscode settings too

* Renormalize remaining

* Revert "Gitignore example changelog"

This reverts commit de22ad375d.

* Attempt to normalize example.yml (and another file I guess)

* Try again
2024-02-20 11:28:51 +01:00
Novacat 1aa4c73e8d Revert "[MIRROR] /atom New() => Initialize() [MDB IGNORE]" 2022-08-27 08:49:56 -04:00
MistakeNot4892 3f9af78f3a /atom New() => Initialize() [MDB IGNORE] 2021-11-14 03:09:51 -05:00
Sym ed7f4b9e75 Fixes corrosive acid, makes most important things unacidable
Makes pretty much anything important to the crew unacidable, fixes how acid interacts with floors.
2021-08-14 10:49:44 -04:00
MarinaGryphon 577b986ba6 Convert some bools to TRUE/FALSE instead of 1/0. (#11100)
Co-authored-by: Aronai Sieyes <arokha@arokha.com>
2021-07-16 13:43:25 -04:00
Neerti 767e655310 Linter Introduction + Cleanup 2021-05-25 23:19:34 -04:00
Aronai Sieyes bd298810f2 Redo examining in general and tweak getFlatIcon 2020-05-06 18:37:46 -04:00
Arokha Sieyes f0bc46cc49 Add 2 new pipe types 2020-04-05 23:05:33 -04:00
Leshana 7da46a6dcc Switch cables and pipes to use define constants instead of literals for layers.
Also fix a few things to be on the correct plane.  Basically the under-floor stuff is supposed to be on PLATING_PLANE.
Portable atmospherics go on object layer so they are above stationary machinery, given that they move around.
Fixed wires to be on top of pipes like they used to be, otherwise they'd be obscured too often.
2018-04-02 21:50:03 -04:00
Leshana 1ae7f45f1f Merge branch 'master' into vplk-port-pipeland-theta 2018-03-28 17:47:21 -04:00
Aronai Sieyes 7d3aec96fd Arranges lots of things into planes (#5072)
* Rearranges a billion things into planes

* Make cryotubes fancy

* Update Travis

* Fix hiding logic
2018-03-28 12:59:12 -07:00
Leshana 131636c6b5 Fix pipe construction conflicting with existing pipes too much.
Bug in the init_dirs_cache was not setting direction of pipes, making all cached dirs be for south.
Because mapped in pipes didn't have piping layer set, mapped in pipes conflicted.
The full-tile check for unary machines forgot to exclude *itself*
2018-03-20 23:30:05 -04:00
Leshana 776b221828 Rewrite pipe construction
- Moved pipe construction defines into __defines/construction.dm
- Unified pipe *unwrenching* by creating a standard proc along with the `construction_type` var.
- Eliminated the pipe fitting name & icon_state lookup tables by adding `pipe_state` var on atmos machinery and referencing that.
    - Each pipe which can be made from a fitting object should override `pipe_state` with the icon state to be used on the pipe fitting object.
- Eliminated the giant switch statement of doom in pipe construction by delegating that work to `on_construction` proc.
    - To make this work, every pipe must implement `get_neighbor_nodes_for_init` which returns a list of nodes which should be re-initialized on that pipe's construction.
- Combined the SCRUBBERS, SUPPLY and REGULAR pipe fitting classes together by storing the `piping_layer` variable and using the `setPipingLayer` procs
- Standardized the code for searching for node neighbors into the `can_be_node` proc.
    - This proc is also improved in that is a mutual check, `check_connectable` is called on BOTH objects, so they have to mutually agree to connect as nodes. Eliminates lots of special edge case logic.
    - Updated all the `amos_init` procs to use `can_be_node`.  In the most common cases, even that boilerplate code is consolidated into the `STANDARD_ATMOS_CHOOSE_NODE` macro.
- Implemented `pipe_flags` which lets pipes declare (or override) certain requirements.
- Adds a "pipe_recipe" datum to help out things that construct pipes.  By taking it out of the dispenser, we open the road for multiple dispenser types.  No, no RPD yet.  Soon.
    - Enhances the pipe dispenser to operate on pipe recipe datums instead of hard coded lists of pipes it can construct.   These datums are also (partially) initialized from the pipe machine types themselves, reducing having to define stuff in multiple places.
    - Switched pipe dispenser UI to use browse().   Not a NanoUI, but makes it a bit prettier with low effort.
    - Changed pipe dispenser to use a button selector to switch between Regular/Scrubbers/Supply instead of having separate list items.
- Added icon states to HE pipes to support the "connected on neither side" state.
2018-03-20 23:29:27 -04:00
Leshana b70451cda6 Eliminated duplicate code in trinary components.
- Consolidate common functions into trinary_base
- The only real difference in atmos_init was which direction each node would connect in.  Delegated that to an overridable proc, and the rest can be consolidated. Same story for update_underlays()
- Used similar patterns on tvalves which also are trinary even tho they are not subtyes of trinary (for some reason)
2018-02-22 15:10:29 -05:00
Leshana 224fe42e77 Prepare Atmospherics Machinery for SSatoms (#4501)
* to_chat() replacement.

* Revert calling target.init_dir() before connecting.

* This change was added in https://github.com/PolarisSS13/Polaris/pull/3775 to counteract `dir` not being set prior to New() for dynamically loaded maps.  The root cause was /atom/New() not calling _preloader.load().  Undoing the change now that /atom/New() is fixed.
* The addition of the init_dir() proc itself however, is useful, because there ARE other times some atmos machinery will want to re-initialize its dir, specifically whenever it is rotated.
* init_dir() must be called in the constructor of all atmospherics machines capable of connecting to another.   Since it has to happen for ALL machines, lets move that call to /obj/machinery/atmospherics/New()

* Rename /obj/machinery/atmospherics initialize() to atmos_init()

* These days `initialize()` is used to handle general object initialization that is moved outside of New().  The node connection discovery of atmos machinery needs to happen after all that, and so needs to be in a separate proc.
* Make sure to actually call atmos_init during system startup.
2018-01-06 10:52:56 -06:00
Cyantime 82626c6936 Removes pipe pressure check copypaste. Fixes pipe caps to always be removable. 2017-09-09 21:24:52 -04:00
Zuhayr 18c2f33eab Ported ventcrawling from vg. 2016-09-21 17:16:03 +01:00
Neerti 0a389a418b Revert "Ported ventcrawling from vg." 2016-09-20 17:21:58 -04:00
Zuhayr 843c48a9ee Ported ventcrawling from vg. 2016-09-16 04:05:49 +01:00
Zuhayr 3b712adb5f Removed intact var in favour of is_plating() proc, fixed issues with invisible initialized pipes. 2015-08-16 17:51:19 -07:00
PsiOmega 85d0d6fcd3 Wrenching times no longer runtime.
Fixes #9175.
2015-06-28 18:17:53 +02:00
mwerezak bf231a2925 Fixes #9600
All atmos machines now reset last_flow_rate and last_power_draw when
processing.
2015-06-02 22:33:26 -04:00
mwerezak f9344a5a2d Atmos machine update
Takes a pass at updating ATMOSPHERICS to take advantage of the new powernet changes.

Also removes var/on definitions from many atmos machines. Machines generally shouldn't
be doing "on" things if they aren't using power, and most players don't expect a machine
to use power if it isn't "on," so I guess this is fair game.

Also, further refactoring.
2015-01-02 01:46:18 -05:00
mwerezak d4a193808b Replaces awful connect type system with bitflags 2014-12-23 18:59:54 -05:00
RavingManiac 9801dfa9a9 NewPipe
-Supply and scrubber pipes can be run in parallel without connecting to each other
-Supply pipes will only connect to supply pipes, vents and Universal Pipe Adapters(UPAs)
-Scrubber pipes will only connect to scrubber pipes, scrubbers and UPAs
-Supply and scrubber pipes are offset along the x and y axes to prevent sprite overlap
-UPAs will connect to regular, scrubber and supply pipes, as well as anything else that connects to a regular pipe. UPAs will be used to interface between the supply/scrubber loops and atmos
2014-09-05 00:18:33 +08:00
Loganbacca fb6c928c4d Atmos update tweaks
- Updated pump and volume pump icons
- Reverted air scrubber icon
- Fixed passive gate icon
- Updated pipe_item sprites
- Fixed an oversight in the pipe color check
- Cleaned up the map
2014-07-18 13:41:59 +00:00
Loganbacca e05b5c0bfb Pipe rendering rewrite
- Complete rewrite of pipe rendering code. It now selects icons from a shared cache.
- Manifolds and other devices (pumps, filters, etc.) now match the color of the connected pipes.
- Updated omni devices to use the shared cache.
- Set separate pipe color definitions.
- Cleaned up a lot of pipe code, converting it to absolute paths and removing old commented out code.
- Tweaked t-ray rendering code.
- Tweaked pipe painter.
- Enhanced pipe checking debug command.
- Expanded tank capacity and resprited them.
2014-07-18 13:39:39 +00:00
Mloc-Argent e9bf414820 Refactors code to work with BYOND 500.
500 adds a "color" var to /atom, which conflicts with /obj/item/color, /obj/atmospherics/color and various simple_animals.
  /obj/item/color is now item_color
  /obj/atmospherics/color is now pipe_color
  simple_animals color is now body_color
Removes transformer.dm since it conflicted with transform() and was never used.

Signed-off-by: Mloc-Argent <colmohici@gmail.com>
2013-09-22 12:39:48 +01:00
giacomand@gmail.com b9bb759cd8 -Multiple fixes for machinery not correctly updating their icons when depowered.
-Gave request consoles an off sprite.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5421 316c924e-a436-60f5-8080-3fe189b3f50e
2012-12-30 02:20:03 +00:00
baloh.matevz 0c96a0f8eb - one file's proc definitions standardized
- added feedback logging for handcuff use

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3783 316c924e-a436-60f5-8080-3fe189b3f50e
2012-06-10 10:31:29 +00:00
vageyenaman@gmail.com d29e3be8d4 Removes poo. XSI and co. weren't very fond of it, and the last thing I would do is make them uncomfortable and challenge their leadership by keeping poo in.
An experimental lagfix, which removes a couple THOUSAND unnecessary machines from the machine processing list. Please report any unresponsive machinery (as result of this commit) as HIGH PRIORITY issues. I'm not quite sure how much lag this will kill, but I'm confident that it will be at least slightly noticeable.

More work on step_triggers. The escape shuttle should no longer blast things forever and give them infinite momentum.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3370 316c924e-a436-60f5-8080-3fe189b3f50e
2012-03-29 03:53:38 +00:00
mport2004@gmail.com 50f282f8b2 Engineering got a new machine that spawns/feeds the singularity.
Redid the power use code, should be working better now.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@999 316c924e-a436-60f5-8080-3fe189b3f50e
2011-02-09 06:07:32 +00:00
n3ophyt3@gmail.com 9d8e8573b4 Mappers, this one's for you. New debug verb added for Coders and Hosts, when pressed, it goes through every obj/machinery/atmospherics in the map, and lists all of the ones that have the nodealert var set to 1, which should only be the case if not all the nodes are connected to something.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@970 316c924e-a436-60f5-8080-3fe189b3f50e
2011-02-06 03:33:01 +00:00
mport2004@gmail.com cd79ae951d Updated:
Singularity Engine
-Recoded some parts, still works mostly the same
Welders
-Recoded, it works mostly the same but is easier to use in code
-Cyborgs have a larger fuel tank
-Brought most if not all of the areas that use welders upto spec
Moved the changeling chem recharge code into the human life proc
New players who log out before spawning in are now deleted
New minor Common event
Machines around the station use more power, system might need some changes later
Likely few other minor changes that I just cant think of atm

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@945 316c924e-a436-60f5-8080-3fe189b3f50e
2011-02-03 08:15:17 +00:00
n3ophyt3@gmail.com bd9819c272 Made items that get unbloodied update their icon during the unbloodying, so you can tell how much you used your gun between getting blood on it and cleaning it.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@791 316c924e-a436-60f5-8080-3fe189b3f50e
2011-01-06 17:08:33 +00:00
n3ophyt3@gmail.com c38ba98498 More work on buildable piping
Manifolds, unary vents, scrubbers, manual valves, connectors, and pumps are now also makable
  testing has not been overly robust thus far
  Known issues:
    scrubbers don't seem to be able to grab nodes properly when constructed
    runtime errors if you try making a pipe/manifold that doesn't connect to an already-constructed atmos object
    corner pipe sections have a tendency to defy euclidian logic (most notable example has been a section of pipe that somehow had both ends tied to the same end of a different pipe section)
    Added a disposal pipe dispenser that had been sitting unused in the code to Atmos. No clue if it actually works, I know the regular pipe dispenser worked fine
    Did NOT add a pipe dispenser to the map, but it is there if admins want to spawn one

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@396 316c924e-a436-60f5-8080-3fe189b3f50e
2010-11-10 05:24:56 +00:00
only.lurking 662c08272a git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2 316c924e-a436-60f5-8080-3fe189b3f50e 2010-08-23 14:29:20 +00:00