Commit Graph

30 Commits

Author SHA1 Message Date
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