Commit Graph

33 Commits

Author SHA1 Message Date
spookerton
1f3ffc2433 non-flagged, non-complex overlay -> ssoverlays 2022-04-24 07:51:12 +01:00
spookerton
1ccb2df2de trivial 1:1 overlays -> overlay proc changes
NB. In some cases we go from a more complex image() to a single icon_state string and I assume this works for every case but do not care to check because of the sheer scale of extra fiddly effort. Buyer beware, not my code.
2022-04-24 07:50:21 +01:00
Felix
76b195f1a9 HE pipe turf interaction (#8409)
* HE pipe turf interaction

* Update code/ATMOSPHERICS/pipes/he_pipes.dm

Co-authored-by: Spookerton <spkrtn@pm.me>

* Update code/ATMOSPHERICS/pipes/he_pipes.dm

Co-authored-by: Spookerton <spkrtn@pm.me>

Co-authored-by: Spookerton <spkrtn@pm.me>
2022-04-19 21:29:09 -08:00
atermonera
9d71839ac6 Removes devices 2022-04-17 19:14:43 -08:00
atermonera
7a9806d9b4 Removes weapons 2022-04-17 19:14:32 -08:00
atermonera
c7f1880394 Revert "What was supposed to be another straightforward major system overhaul that once again spiraled out of control (#8220)"
This reverts commit 4d8c43f106.
2022-03-29 16:01:32 -08:00
Atermonera
4d8c43f106 What was supposed to be another straightforward major system overhaul that once again spiraled out of control (#8220)
* get_tool_quality has numerical meaning

* Basic tools set tool quality

* Toolspeed is replaced by tool quality checks

* Addresses assorted results from live test

* Extra cleanup
2022-01-16 15:52:55 -08:00
Atermonera
0232be9531 Repaths obj/effect/effect, datum/effect/effect [MDB_IGNORE] (#8312)
* Repaths obj/effect/effect, datum/effect/effect

* linter fixes

* No new

Co-authored-by: Atermonera <forslandm@gmail.com>
2022-01-16 00:14:39 -08:00
MistakeNot4892
2f0a618d45 /atom New() => Initialize() [MDB IGNORE] (#8298)
* Find and replace argless atom New() to Initialize().

* Manual replacement of no-arg New() to Initialize().

* Manually replacing remaining New() overrides.

* Fixing linter issues with now-removed New() args.

* Tidying area init overrides.

* Porting Neb's atom subsystem.

* Trying to isolate init problems.

* Adjusting Init code post-test.

* Merging duplicate Initialize() procs.

* Merge resolution.
2021-11-14 00:09:14 -08:00
Meghan-Rossi
4cd1f55467 Fix duplicate results from analyzing some objects (#7660) 2020-09-20 04:17:40 -07:00
Rykka
324cb1f12d Replace "Sleeping Agent" with Nitrous Oxide
This makes it identical to it's real-life counterpart, and brings some actual sprite improvements upstream from Virgo.

Earlyport of https://github.com/VOREStation/VOREStation/pull/8812 with an actual rename of the gas, ID, and sprite used.
2020-08-27 21:45:19 -04:00
lbnesquik
aebb9d93f3 Make it quicker to unfasten pipes.
- We already don't have a delay on FASTENING them, so why does the thing in reverse have one?
2020-08-13 20:29:07 +02:00
Aronai Sieyes
ad75bb86bd Alter playsound paradigm 2020-05-19 11:06:28 -04:00
Atlantiscze
123383c7f4 Fixes HE pipes not leaking when breached 2020-04-18 06:00:23 +02:00
Atermonera
8e63aa69c7 Merge pull request #6986 from VOREStation/vplk-fix-manifold-underlays
Fix manifold and manifold4w underlay rendering.
2020-04-12 23:18:32 -07:00
Leshana
1feb05d8b3 Change "passive vent" to "passive_vent" icon state.
Best practice to avoid spaces in icon state names, works better with CSS class names too.
2020-04-11 18:07:24 -04:00
Leshana
22844cfb5c Fix manifold and manifold4w underlay rendering.
Don't add twice as many underlays as you need, thanks!
2020-04-10 11:48:17 -04:00
Aronai Sieyes
7a2ea43c08 Couple tweaks for pipes PR (sprite adjustments) 2020-04-06 01:02:22 -04:00
Aronai Sieyes
1abf90b306 Add 2 new pipe types 2020-04-05 22:50:11 -04:00
Leshana
938384cb1b In fact lets use the constants instead of bare numbers for use_power everywhere. 2020-03-21 19:41:01 -04:00
Shadow
46d7ca5d31 Round Two 2020-01-11 11:53:07 -06:00
Mechoid
739caa1c1d Manifolds now obey the laws of pipes. 2019-07-24 17:27:27 -07:00
Mechoid
40277238a4 Pipe Clamps, Shutoff Valves, and Leaking Tubes, oh my. (#6279)
* Pipe Clamps, Shutoff Valves, and Leaking Tubes, oh my.

* Fix processing fuckery.

* Deal with Forever-Seals, and Infini-clamps.

* Update clamp.dm
2019-07-24 00:44:59 -08:00
Heroman3003
3eb4c7a531 Fixes endcaps on the specialized pipes (#6283) 2019-07-10 01:52:43 -07:00
Anewbe
eebb627f00 Partially ports the GLOB system 2018-08-14 18:14:09 -05:00
Anewbe
729ce71aa0 Converts most istype(thing,tool) procs into an appropriate thing.is_tool() format 2018-08-02 21:45:15 -05: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
741e02407a Port SSoverlays & Convert turfs to use it (#5004)
* Added "Display Initialize() Log" admin debug command so you can see it mid-round.

* Ported the core of the overlays management subsystem from /tg

- Added SSoverlays subsystem for compiling overlay lists and applying them to atoms in a controlled anti-lag subsystem.
- Added vars and procs to atom which should eventually replace all direct interaction with BYOND's /atom/overlays var outside the subsystem.
- Added OVERLAY_QUEUED flag to var/atom/flags bitfield.
- Added small framework for subsystem performance tracking. So far used only by SSoverlays
- Added admin debug command "Display overlay Log" to see performance stats mid-round.

* Fix runtime on universal pipe adaptor update_icons

* Workaround for appearance_bro not initialized

Unfortuantely BYOND's initialization order is strange, and the appearance_bro var is only half initialized when map starts to load, causing errors.  We temporarily fix by moving it to be a global-scoped global.

* Convert fire alarms to use add_overlay() A good first test.

* Convert turfs to use add_overlays(), eliminating the turf_overlay_holder!

- Converted as much as I could find about turf overlays to use add_overlay().
- This should be enough to stop BYOND from crashing, so we can eliminate the turf_overlay_holder hack.
- This also lets us remove the anti-corruption hacks from walls and open space.
- ZAS gas overlays can use priority overlays, so this also fixes the gas-goes-away-when-crowbarring-plating issue.
- Stuff like that

* Convert turf overlay interactions to use add_overlay.

Note: This is a plain and simple conversion of existing code to use SSoverlays. However I look at the line changed, and note that that line likely never fully worked as intended, as it has no way of re-applying itself.
I would make it use a priority overlay, but there is no code present for *removing* said overlay from neighbors when it is no longer required.  That code should be implemented by original author.
2018-03-05 19:43:23 -06:00
Leshana
89f77e78ff Reorganizes atmos pipes into separate files by type.
This changes absolutely nothing codewise, it is straight up just splitting pipes.dm into separate files because it was over a thousand lines long.
2018-02-25 03:30:50 -05:00