Commit Graph

337 Commits

Author SHA1 Message Date
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
MarinaGryphon
593246b595 Linter diagnostics + bans non-var relative pathing (#8150)
* Linter diagnostics + bans non-var relative pathing

* Enable DreamChecker Annotations

* make it executable

* update hashFiles

* oops

* tries to fix it... again

* trying again

* path

* repath

* fix perms

* fixes weird capitalisation issue
2021-06-20 13:14:29 -09:00
Neerti
fdabe51ee8 Linter Introduction + Cleanup (#8085)
* Adds linter defines to repo.

* Uncomments linter defines already in the code.

* Resolves unreachable code linter errors.

* Nukes decade+ old syndie specops code except for computer since that's mapped in?????

* Resolves procs has no parent linter error.

* Proc signature fixes

* Bad comments

* "In" danger

* Type safety

* Implied nested list abuse

* Top level ..() usage

* Sleepy coder typos

* Invalid kwargs calls

* Pointless returns

* Linter hacks (see full message)

Byond doesn't care and it has no effect but linter doesn't like var/proc
for holding references to procs, despite that it's valid byond code.

Also, the linter seems to have serious issues figuring out relative
proc names. This commit is a sort of take-it-or-leave-it thing. It's not
required, it just cuts down on warnings, but this code is valid DM code.

* WHATEVER THIS IS

* Trick dreamchecker linter into ignoring this file's sins in it's weird use of vars

* Fix list decoration syntax - Its a list, not list of lists

- To declare that a var is a list you can `var/list/blah = list()` syntax or the `var/blah[0]` syntax.  Both do exactly the same thing. But if you do `var/list/blah[0]` that is just like doing `var/list/list/blah = list()`

* Hopefully stops the ai holder subtype folder from going quantum and sometimes changes capitalization over time, and incidentally causing 20+ linter errors.

* Fixes unwrapped negated object in list linter error.

* Resolves colon-like list accessing linter error.

* Turns linter on in linter config.

* Fixes closet indentation properly and cleans up suit storage unit switch.

Co-authored-by: Aronai Sieyes <arokha@arokha.com>
Co-authored-by: Leshana <Leshana@users.noreply.github.com>
2021-05-25 18:17:26 -09:00
Meghan-Rossi
3de281b4f7 Allows removing omni filters/mixers at any pressure (same as non-omni)
🆑
tweak - Omni filters and mixers can now be removed regardless of pressure, just like their non-omni versions.
/🆑
Tested.
2021-03-05 22:49:42 +00:00
ShadowLarkens
c6229dcd89 remove to_chat(world 2020-12-24 15:23:58 -08:00
ShadowLarkens
b2b8f068bb TGUI Fixes 2020-12-24 05:17:34 -08:00
ShadowLarkens
dad9020f9a TGUI Engineering... and a bunch of other random things 2020-10-21 13:02:19 -07:00
Meghan-Rossi
124d9337ce Fix omni filters reacting incorrectly to some configuration changes (#7633)
*Fixes omni filters reacting incorrectly to configuration changes that swap ports.
2020-09-11 00:12:19 -07:00
Rykka
d728339cfb Updates a comment 2020-08-27 21:45:19 -04: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
Cyantime
6b4c8b7b0e Fixes heater examining 2020-06-16 18:08:41 -04:00
Aronai Sieyes
ad75bb86bd Alter playsound paradigm 2020-05-19 11:06:28 -04:00
Aronai Sieyes
b7aae34335 Merge branch 'master' into pol-defaultparts 2020-05-05 22:51:02 -04:00
Aronai Sieyes
6c6644f86c Rewrite examine() to pass a list around (#7038) 2020-04-29 13:42:16 -07:00
Atermonera
8b1d3a3908 Merge pull request #7006 from VOREStation/pol-powersprites
Ports some power.dmi sprites from Bay
2020-04-28 14:56:31 -07:00
Aronai Sieyes
b3e9960029 Move machines to use default_apply_parts() 2020-04-27 11:57:43 -04:00
Aronai Sieyes
51846b4bfe Port some power sprites from Bay 2020-04-27 10:50:56 -04:00
Aronai Sieyes
c9086829ec Convert some telecomms constants into defines 2020-04-27 10:34:13 -04:00
Leshana
21c8c94971 Fix remaining code that directly modified use_power to call update_use_power. 2020-04-21 13:15:32 -04:00
Atermonera
974919151b Merge pull request #6967 from VOREStation/pol-pipes
Add 2 new pipe types
2020-04-12 23:00:41 -07:00
Leshana
6f5fb88922 Removed area.uid var and /area/New()
- var/uid was used in only a handful of places.  Because areas are singletons
  it is safe to replace the uid with \ref, areas don't get deleted.
- And with that /area/New() is empty, we can remove it!
2020-04-10 14:58:59 -04:00
Aronai Sieyes
1abf90b306 Add 2 new pipe types 2020-04-05 22:50:11 -04:00
Aronai Sieyes
ad5f0485f7 Clean up things 2020-03-25 22:10:56 -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
Leshana
c2d16acdca Always call update_use_power() instead of directly setting the use_power var.
- This will let us react to the change appropriately.
- While we're here, lets define some constants so we can stop using bare numbers.
- Always use those constants when calling update_use_power()
2020-03-21 16:40:22 -04:00
Leshana
d9adfb795f Fix Runtime in filter.dm,91: Cannot execute null.set machine() 2020-02-23 23:54:54 -05:00
Arokha Sieyes
5b15917d32 to_chat replacing stream operator 2020-02-17 13:14:08 -05:00
Atermonera
31340ad244 shutoff valves actually find leaks before they decide to close (#6660) 2020-02-02 14:17:15 -08:00
Atermonera
acf5b7d836 Unregulated passive regulators don't limit flow (#6657) 2020-02-02 14:09:28 -08:00
Shadow
46d7ca5d31 Round Two 2020-01-11 11:53:07 -06:00
Meghan-Rossi
1f17b58975 Improve analyzers and gas mixers
Analyzers can now analyze more things:
-Turfs (also stops runtimes from people trying to analyze turfs)
-Meters (gives results for whatever the meter's attached to)
-All atmos components except valves (gives results for the input, except on mixers.  Gives results for the output on mixers)
Gas mixers now show what direction each input is in the menu where you adjust the concentrations of the input nodes.
2019-11-14 10:28:00 +00:00
Rykka Stormheart
23cc197e4c Add Sounds to stuff! (Port from VOREStation) (#6494)
* Add Sounds to stuff! (Port from VOREStation)

* Port of https://github.com/VOREStation/VOREStation/pull/6119

* Adds to_chat as described

* Change << to , , not entirely sure what it does but it's the same as others
2019-10-29 13:30:56 -08:00
Kore
3ef99b8ff2 Fixed air injectors 2019-08-29 20:23:35 +01:00
Atermonera
5e38b8e401 Adds shutoff valve monitor (#6353)
* Adds shutoff valve monitor

* uses the other half of the mapmerger, hopefully appeases travis (it probably won't)
2019-07-30 17:03:28 -07:00
Mechoid
814dac95a1 Shutoff valves now behave like other valves. (#6339)
* Shutoff valves now behave like other valves, and only attach to Regular pipes.

* Update polaris.dme
2019-07-24 13:37:17 -08: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
kevinz000
46c79c7d3e [READY]Makes a bunch of processes subsystems instead (#5814
* Converts various New() definitions to Initialization()
* Adds absolute pathing
2019-01-15 22:58:06 -08:00
Neerti
8ec3691911 Merge pull request #5770 from Atermonera/standard_rotation
Standardizes rotation verbs
2018-12-28 04:36:52 -05:00
atermonera
b8c9bb6c31 Standardizes rotation verbs 2018-12-08 21:27:10 -08:00
kevinz000
c2c688c4c8 caps 2018-12-06 18:34:37 -08:00
Anewbe
f452e66934 Scrubbers no longer automatically scrub phoron (#5512) 2018-09-06 15:51:58 -07:00
Atermonera
de65c3c643 NanoUI now processes again 2018-08-25 21:13:16 -07: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
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
ba36595263 Consolidated digital t-valves type paths.
- Because mirroring is now *much* easier to setup than digital remote control, we reverse the order of inheritance to de-duplicate all the radio code from digital t-valves!
- This requires changing the following type paths:
    /obj/machinery/atmospherics/tvalve/mirrored/digital  -> /obj/machinery/atmospherics/tvalve/digital/mirrored
    /obj/machinery/atmospherics/tvalve/mirrored/digital/bypass -> /obj/machinery/atmospherics/tvalve/digital/mirrored/bypass
- Change made on all maps.

- We can eliminate any overriden methods at all on flipped trinary devices by making a `mirrored` and `tee` variable!  This allows us to do things like flip them without delete/spawning.
- T-Valves are also basically trinary.  Sadly they are not a subtype, so to share code with them I have to put it into an outside proc.  But still worth it.
2018-02-22 15:11:55 -05:00
Leshana
1d3697c68a Went even farther in consolidation of trinary atmospherics.
- We can eliminate any overridden methods at all on flipped trinary devices by making a `mirrored` and `tee` variable!  This allows us to do things like flip them without delete/spawning.
- T-Valves are also basically trinary.  Sadly they are not a subtype, so to share code with them I have to put it into an outside proc.  But still worth it.
2018-02-22 15:10:43 -05: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