* 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
* 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
* 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
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.
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*
- 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.
- 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)
* 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.
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.
-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
- 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
- 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.
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>
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
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
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