Commit Graph

45 Commits

Author SHA1 Message Date
SkyratBot 25092a85bb [MIRROR] Reworks plumbing reaction chamber, purity support (#3763)
* Rework plumbing reaction chamber, purity support (#57071)

Currently does four things:

The reaction chamber now supports purity! It has a yellow (acid) and green (basic) input for buffers, aswell as a setting to automatically dispense either an acidic or alkalic buffer when above/below a certain pH! Now you can make a 100% pure meth factory! The buffer connects are on an alternate layer.

Probably going to be less loved, but I removed the reaction chambers ability to pick reagents from the net. Instead, it will pull untill a set volume is reached. Then it'll start reacting. While this means that players will have to be more creative and use a wider array of machinery.

Also new machine! Buffers! They fill the hole that reagent chambers left. They can be set with a threshold volume and will only start putting out chems when ALL of their neighbouring buffers also are also above this threshold. You might have a lot of one chem and have to wait for a more specialized chem to be produced, and with the cleverness of reaction chambers gone, bufferers can do just that: wait.

I also removed all but two layers. I want to make it obvious what layer the buffer connects are on. Also layers are basically unusable and I'm gonna give them a rework very soon. I'll put the things back in then when they actually have something to contribute

* Reworks plumbing reaction chamber, purity support

Co-authored-by: Time-Green <timkoster1@hotmail.com>
2021-03-02 19:12:11 +00:00
SkyratBot 18eca27569 [MIRROR] update_appearance (#3508)
* update_appearance

* a

* a

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2021-02-19 16:08:09 +00:00
SkyratBot 7da4aa9adf [MIRROR] Reaction rates, pH, purity and more! Brings a heavily improved, less explosive and optimised fermichem to tg. (#3306)
* Reaction rates, pH, purity and more! Brings a heavily improved, less explosive and optimised fermichem to tg.

* a

Co-authored-by: Thalpy <33956696+Thalpy@users.noreply.github.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2021-02-12 00:04:39 +00:00
SkyratBot 3ccb75e743 [MIRROR] Makes reagent updates more event based, also makes plasma boil properly. (#2280)
* Makes reagent updates more event based, also makes plasma boil properly.

* Update drinkingglass.dm

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-12-23 06:25:03 +01:00
SkyratBot a9b197baff [MIRROR] Acclimator idles when emptying (#2089)
* Acclimator idles when emptying (#55358)

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@ users.noreply.github.com>

* Acclimator idles when emptying

Co-authored-by: Time-Green <timkoster1@hotmail.com>
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@ users.noreply.github.com>
2020-12-09 00:55:02 +00:00
SkyratBot 7d653f1f6b [MIRROR] Moves grown food to newfood (#1794)
* Moves grown food to newfood (#55040)

Moves grown food to newfood
Gives trash element support for callbacks for item creation override

* Moves grown food to newfood

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
2020-11-23 22:35:35 +00:00
SkyratBot bd58c6a157 [MIRROR] chem bottler changes (#1544)
* Merge pull request #54731 from Tlaltecuhtli/fdsd

chem bottler changes

* chem bottler changes

Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
2020-11-02 18:45:40 +01:00
SkyratBot 3b88d2e754 [MIRROR] Werewolves rejoice! (removes silver from the dispenser). (#1329)
* Werewolves rejoice! (removes silver from the dispenser). (#54327)

* Werewolves rejoice! (removes silver from the dispenser).

Co-authored-by: Krysonism <49783092+Krysonism@users.noreply.github.com>
2020-10-16 03:36:38 +02:00
SkyratBot 98568e191a [MIRROR] Enforce preserving parent proc return values across ui_act call stacks (#999)
* Enforce preserving parent proc return values across ui_act call stacks (#53964)

All ui_act procs should call parent by default. All procs should preserve the value of the parent proc when it's TRUTHY and pass it down the call stack. No UI should be interactible when its flags or state indicate it should not be, except when explicity overriden by child procs intentionally disregarding parent return values to achieve a specific goal.

* Enforce preserving parent proc return values across ui_act call stacks

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2020-09-26 17:17:59 +02:00
SkyratBot 1e705faa19 [MIRROR] Process procs now properly utilize deltatime when implementing rates, timers and probabilities (#709)
* Process procs now properly utilize deltatime when implementing rates, timers and probabilities (#52981)

* Process procs now properly use deltatime when implementing rates, timers and probabilities

* Review fixes

* Geiger counters cleanup

Made hardsuit geiger code more similar to geiger counter code
Geiger counters are more responsive now

* Moved SS*_DT defines to subsystems.dm

* Rebase fix

* Redefined the SS*_DT defines to use the subsystem wait vars

* Implemented suggested changes by @AnturK

* Commented /datum/proc/process about the deltatime stuff

* Send delta_time as a process parameter instead of the defines

Also DTfied acid_processing

* Dtfied new acid component

* Process procs now properly utilize deltatime when implementing rates, timers and probabilities

Co-authored-by: Donkie <daniel.cf.hultgren@gmail.com>
2020-09-09 08:19:23 +02:00
SkyratBot a5306924c3 [MIRROR] Makes reagent exposure methods bitflags (#527)
* Makes reagent exposure methods bitflags (#53164)

* Makes reagent exposure methods bitflags

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
2020-08-26 02:37:07 +02:00
SkyratBot 56f65770e2 [MIRROR] Plumbing teleporters (#321)
* Plumbing teleporters (#51881)

* Makes the plumbing RCD accept every object

* Adds simple plumbing teleporter

* Polishes plumbing teleporters

* Fixes runtime

* this to src

* circuitboard doesnt need anchoring

* Fixes overlay flickering being weird

* Makes the Chemical Recipient's positioning less awkward

* Comments and documentation

* uh

* Fixes dme

* Revert "uh"

This reverts commit af6f30089f9f31d527f6ab3e2b1c72cf6ab6d60d.

* Update code/_globalvars/lists/construction.dm

Co-authored-by: girl <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>

* Update code/game/objects/items/RCD.dm

Co-authored-by: girl <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>

* Update code/modules/plumbing/plumbers/_plumb_machinery.dm

Co-authored-by: girl <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>

* uncasts loop

* update icons

Co-authored-by: girl <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>

* Plumbing teleporters

Co-authored-by: Time-Green <timkoster1@hotmail.com>
Co-authored-by: girl <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>
2020-08-13 00:20:00 +02:00
ShizCalev 7b94d8cb7e Fixes pill presses not checking for bottles (#52589) 2020-08-01 05:46:42 -04:00
Aleksej Komarov 0cf00a2645 tgui 4.0 (#52085)
* tgui 4.0 hyper squash

* Upgrade dependencies
2020-07-16 20:13:04 +02:00
TemporalOroboros e78d82592f Refactors reagent exposure code (#51396)
* Refactors reagent exposure code

Removes istype clutter. Renames a few procs

* == TRUE

Adjusts COMPONENT_NO_EXPOSE_REAGENTS bitflag offset.

TODO: Remove comment

Co-authored-by: Rohesie <rohesie@gmail.com>

* == TRUE

Adjusts COMONENT_NO_EXPOSE REAGENTS bitflag offset.

Removes comment

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-06-21 20:03:19 -03:00
spessman-007 ab84042f94 [READY] Improve spelling (#51134)
* Improve spelling

* Spell isn't, ain't, shouldn't, hasn't, wasn't correctly

Co-authored-by: NewSta <spessman-007@users.noreply.github.com>
2020-05-25 02:13:37 +08:00
Tlaltecuhtli 4f44aa1ba9 re prs #50986 because the change didnt actually get merged because git hub broke things (#51153)
* 1

* Update bottler.dm
2020-05-25 02:10:31 +08:00
antropod 1a7c7aef0d Chemical press can now make patches and bottles (#51000)
* Pill press can now make patches

* Add bottles to Chem Press
2020-05-11 12:13:24 +03:00
Tlaltecuhtli 330c141228 new plumbing machines: fermenter and bottler (#50823)
* 1

* mystery commit

* space

* Update code/modules/plumbing/plumbers/fermenter.dm

Co-authored-by: trollbreeder <trollbreeder@users.noreply.github.com>

* Update code/modules/plumbing/plumbers/bottler.dm

Co-authored-by: trollbreeder <trollbreeder@users.noreply.github.com>

* Update code/modules/plumbing/plumbers/bottler.dm

Co-authored-by: trollbreeder <trollbreeder@users.noreply.github.com>

* Update bottler.dm

* inject and then move so the products are in the output tile

Co-authored-by: trollbreeder <trollbreeder@users.noreply.github.com>
2020-05-07 20:02:18 -04:00
actioninja b5dfd8880d id to component name 2020-04-19 19:36:35 +03:00
Time-Green d71964564d Fixes a dumb runtime and being able to spin anchored plumbing machines 2020-03-17 17:58:27 +01:00
Bobbahbrown 476399a346 the span of these changes is immense (#49432) 2020-02-20 13:48:13 +01:00
ShizCalev 7209ac3c93 Removes unnessacary math defines 2020-02-17 23:09:09 -05:00
Time-Green 980837fc79 PLUMBING: Lavaland geysers, pumps and regrettable balance decisions! (#49067)
Implements the geysers and pumps I originally added along with the first draft of plumbing.

Geysers
A geyser can be plungered with a reinforced plunger to activate. At wich point, it'll either produce clf3, hollow water, protozine or rarely wittel.

Pumps
Adds the liquid pump to the plumbing RCD. Place on an active geyser and wrench it to start pumping the geyser of its delicious juicess. I also changed it to not use power, because it would be awful drawing kilometer long wires along with the ducts.

Chems
Hollow water works basically like blood and mutage, where you can mix it with 1 unit of holy water for more holy water.

Protozine has a .2 healing, down from omnizine's .5. The healing is just kind of a side thing and not really what this chem was implemented for.

If it wasn't obvious, this allows chemists to industrialize strange reagent creation, with hollow water being able to create limitless holy water alongside protozine being a valid replacement for omnizine. Getting 2 geysers with those chems and on lavaland is quite the hassle, and you still need to get some holy water from the chaplain as kickstarter. I honestly think this is fine, and otherwise I could add a unique botany catalyst, so they don't become useless in the process.

Wittel
Adds wittel, wich is rare. Does nothing, but can be processed into two fun/regrettable chems.

Adds gravitum. Metabolizes very slowly. Drinking it makes you weightless, and spraying it makes that object temporarily weightless. Make 10u by mixing 1 wittel with 10 sorium

Adds metalgen. Created by mixing it with mutagen and bluespace powder. Must then be mixed with 40u of a powedered material and 1u of liquid dark matter.
The material used becomes imprinted on the chem. It can then be applied to anything, except mobs, to turn it into that material. Radiation is bad, and no you can't turn the nuke into plasma to blow it up.
The chem is difficult to get and use, but it can turn the escape shuttle into solid gold wich looks really cool. You could also turn it into plasma and vaporize everything. It can be used to, with some effort, duplicate materials.

🆑
add: Adds geysers to lavaland! They can be activated by using a reinforced plunger found in the medical vendor. They can be harvested by using a new plumbing device, magically powered liquid pumps!
add: Adds Hollow Water to geysers, wich can be combined with Holy Water as catalyst for more Holy Water
add: Adds Protozine to geyers, a very weak version of Omnizine. Can be used in Strange Reagent mixing
add: Adds Wittel, a very rare geyser chem. Can be processed into gravitum, wich removes gravity. Can also be processed into metalgen, wich has a strange tendency to transform objects into the imprinted material.
/🆑

Why:
This is what I originally wanted to do. The idea was to have a lot more chems, but I can't focus on one thing for that long. Hopefully this'll empower the bored chemist and make the rounds just that more interesting. Hopefully this'll spark the creation of some other geyser chems aswell.

That and makes shaft miners not the only ones hunting on lavaland.
2020-02-17 21:33:19 +13:00
Tlaltecuhtli 43f37969aa Fix plumbing constructor chemical grinders (#49037)
* 1

* Update grinder_chemical.dm

* reset travis

* Update grinder_chemical.dm

* it works anyway
2020-02-08 15:25:50 -05:00
Rohesie 7bef84f009 Mass-replacement of stat to machine_stat (#48758)
Living and machine stat vars are pretty different, one uses flags and other number-defines.
This should make some other mass-replacements and searches a bit easier.
2020-01-24 12:37:17 +13:00
MrPerson 26093e5ac2 Further update_icon splitup (#48784)
* Further update_icon splitup

After this there'll be just under 100 old update_icon() calls that need fixing.

* Thanks Travis
2020-01-22 10:18:05 -05:00
Emmett Gaines 53024590de Can pass refactor (#48659)
* Makes all CanPass procs call parent

* Makes CanPass more extendable and gives the mover a say in the matter

* Replace CanPass with CanAllowThrough to use the new system

Regex replace `(?<!proc)/CanPass\(` => `/CanAllowThrough(`

* Simple optimization pass
2020-01-08 21:31:49 +01:00
Tlaltecuhtli e63ebb94d9 adds plumbing machine that can grind/juice items (#47881)
cl
add: plumbing machine to grind/juice objects and put it on duct net
/cl
!! it doesnt move shit you need to add belts to feed it!!

sprite by arcanemagician
2019-12-05 09:56:35 +13:00
Rob Bailey eadbc14cde Chem Plumbing Interfaces V2 (#47983)
* chem interfaces v2

* reaction chamber cleanup

* rebuild + fixes

* Revert input style changes, add placeholder styles, reduce input width
2019-12-02 01:59:07 +02:00
spookydonut 2591ce17a6 Travis EOF newline detection v3 (#47539)
* scream

* aaa

* aaa

* new one
2019-11-04 19:16:50 -08:00
Rob Bailey 874ec7515a Plumbing Machines tgui-next (#47476)
* Chem Machines tgui-next

filter + acclimator rework

acclimator fix

splitter

splitter polish

more splitter polish

synthesizer

pill press

get rid of some unused imports

debug chem synth

rebuild

* format
2019-11-03 23:06:19 +01:00
Rob Bailey c49367f895 More tgui-next uis (#47333)
* More uis

cargo express console

cargo express routes

ui scale change

delete clockwork slab

chem acclimator proper

codex gigas

gigas cleanup

crew console

crew monitor work

scrap crew console for a later pr

lint fixes + rebuild

get rid of some temp files

get rid of more temp files

much better codex gigas

remove unused file

* rebuild

* rebuild
2019-10-25 11:55:40 +02:00
nemvar c62bfc5616 Travis warning begone (#47165)
* Travis begone

* Fixes other part of this
2019-10-17 20:41:10 -04:00
carlarctg cc999b2815 Twat carpets have reagents/ Oil is now considered Fuel (#46930)
* bra

* ME GRAMMAR GOOD?

* asbestos in your lung

* Merge branch 'master' into CARPET

* Merge branch 'master' into CARPET

* bruh

* Revert "bruh"

This reverts commit 186de868197ee5904ae2e72060736dc3a505f66d.

* Revert "Revert "bruh""

This reverts commit a855f2b838f02b852fb16f4a15123ca5a26b858f.

* orange man, reasonable

* Update code/modules/reagents/chemistry/reagents/other_reagents.dm

Co-Authored-By: Fel <fludd121@gmail.com>

* Update code/modules/reagents/chemistry/reagents/other_reagents.dm

Co-Authored-By: moo <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>

* cobby is a good amnitni

* e
2019-10-16 17:30:18 -04:00
Time-Green bca59b9a50 [READY] Plumbing: Endgame (#46759)
cl
add: Plumbing equipment is now available through the medical protolathe. It's under medical machinery boards
add: Add's a new chemistry area on metastation for chemical factories. It's located left of main surgery.
tweak: Chemistry has been turned into the Apothecary. It's basically normal chemistry, but Medical Doctors have acces aswell.
tweak: The smoke machine is now plumbing compatible. Put this knowledge to good use.
sprite: Thanks to @CRITAWAKETS for the plumbing RCD sprite!
/cl

Finally adds plumbing to the game!

Chemistry has been turned into the apothecary. For all intents and purposes it's old chem, but doctors have acces.

West of main surgery is now the new chemistry factory area.

I've also had to move stuff around alot, because you can't just add a big new room without having stuff in the way.

Currently only on metastation. I'm completely drained from adding it to meta alone and doing all maps right now will burn me out.
2019-10-17 00:10:30 +13:00
Aleksej Komarov 5521c8ebee [READY] tgui-next: Initial PR, speedy new Air Alarm interface. (#46764)
* Initial tgui-next commit

* Improve dev server, slight changes to layout.

* Add more components, fix dragging, finalize scrubber list

* Complete an air alarm interface.

* Multiple improvements based on feedback

- LabeledList now has a "buttons" prop, where you can put buttons.
- Improved Box and Flex components
- Whole UI is now dimmable if non-interactive
- Basic documentation of components (Box and Flex so far).
- Icon and Box now accept a "color" prop.
- Routing improved in "Layout" component, you can now specify whether an interface is scrollable.

* Less harsh dimming

* Redux, Toasts

- Fixed inconsistent backend updates with Redux.
- Added Toasts which are currently unused, but are functional.

* acclimator + ai airlock ui

* Add a progress bar component, implement resizing

* Fix a zero in title bar

* Add a linter to keep shit tidy, fix danger level mapping, add some more docs

* better ai door interact ui

* final ai airlock interface

* Fix issues with code, enforce hard 120 line length cap, automerge binaries

* Implement hot module reloading

* Fix progress bar, add color support

* Fix ProgressBar baseline alignment issues

* Remove unwanted padding on the bottom of the LabeledList.

* Component improvements

- Fix baseline issues with Button and ProgressBar components
- Box how inherits props from Box
- Atomic colors and Button colors are now auto-generated, all range of colors supported

* Chem Dispenser UI, animated numbers, more style fixes

* Add an IE8 polyfill

* Intermediate state of fixing IE8

* Lots of shimming and general misery

* Fully working old TGUI chainloader for IE8, more pipeline improvements

* Support title-less Sections

* Delete Yarn, use Lerna for workspace management

* Improve maths and animated numbers

* Fix loss of focus for scrollable content, activate buttons with keyboard

* Attempt to bust the cache, grab focus on keyboard presses too

* Fix hot module replacement by manually pulling replaced modules.

* backend logging

 un-nuke line endings

changes without insane line endings

* helper procs + href support

* slight optimization

* compiles

* Redux, Hotkeys, Kitchen Sink (for UI testing), Tabs component

* Push logs to backend, small kitchen sink changes, tab fixes

* Update component reference in README

* Small fixes

* Next bunch of IE8 fixes, PureComponent optimization for Inferno

* Delete old tgui html

* Log the event of loading the old tgui

* Enable tgui logging on server by default

* Final solution

* Extract routes into a separate file, fix ChemDispenser bug

- Chem dispenser was needlessly disabling transfer amount buttons

* Disable baseline alignment for vertical tabs

* Fix tabs and box units

- Tab content was not taking full page width
- Box can now accepts strings as units, which will be treated as raw style values.

* Fix tgui on Terry

* Fix sending all logs with an "error" flag

* Some macro UI component changes and improvements

- Refer to README.md diff to see what's new

* Tooltip component

* Add support for themes, nanotrasen logo is back

* Clockwork theme hotfix

* Slight adjustment to logo positioning

* Actually proper solution for logo positioning

* Fix color maps

* tgui-next thermomachine interface

* tgui-next canister interface

* Add icon_class_name proc to asset cache

* Lots of stuff backported from actioninja's repo

* Cleanup oopsies

* Cargo UI adjustments

* Nuke lodash

* Minor fixes and cleanup

- Remove local Inferno package in favor of upstream Inferno
- Fix "initial" prop on AnimatedNumber
- Force fancy=0 for IE8
- Click-through dimmer

* Add a bat file for dummies

* podlauncher interface fix

* Update README, assert code dominance

* Clarify usage of event handlers in Inferno

* Document LabeledList.Divider

* Fukken grammar

* fixes cellular emporium readapt button not working

* fixes incorrect action on button in atmos control interface

* remove unneeded data from airlock electronics ui

* Set +x mode on bin/tgui

* Fix filename cases

- They were untracked by git on windows

* Ignore package lock, make batch more robust

- package-lock.json is very random and unreliable as fuck. Yarn was better.

* Build tgui-next in travis

* bruh

- fixes tgui error reporting

* logging cleanup + always log
2019-10-15 17:20:37 +02:00
Time-Green 7aff176c9c Fixes floating point errors in plumbing (#46448)
* fixes floating point error and get_chem_id

* Fixes excessive floating point errors in plumbing

* unfucko wokie my disgusting attempt at conflict solving
2019-09-21 18:46:37 +02:00
Time-Green d81e1fab5c Plumbing Splitter, reaction chamber, destroyer and pill press (#46149)
* chemical splitters

* adds the pill press

also removes a debug variable from the splitter used for getting the perfect ui size

* chem disposer

* half a reaction chamber

i forgot to fucking merge upstream so I cant do anything without making ungodly conflicts

* wip

* more work on the reaction chamber

* fixes big brain maths

* removes one / because travis is throwing a shitfit
2019-09-02 23:52:29 -07:00
skoglol 8e6276d450 Adds UI dimension vars to machinery (#45959)
* Adds dimension var to machinery.

* cleaner

* newlines

* Cleanup
2019-08-22 00:33:10 -07:00
Time-Green b5159fbf31 [READY] Plumbing: Chemical Filters (#45473)
Adds chemical filters to the plumbing arsenal

They have one input, and three outputs. The left and right outputs can be given filters. It's basically the exact same as atmos filters but it has TWO filter sides.

It doesn't have an enormous list of chems to select from, you just enter a chem and it's added if it's valid.

cl
add: Adds chemical filters to plumbing
/cl
I was planning to do a bunch at once, but europe is on fire and im delirious

I also moved the existing unique plumbing datums into their own folder, wich was only chemical acclimators
2019-08-09 10:59:36 +12:00
nemvar e587b970da Adds parent calls to almost all tool_acts (#45582)
* Adds parent calls to almost all tool_acts

* actually compiles
2019-08-03 22:25:57 -07:00
Time-Green d4bfdd2a40 Plumbing: Chemical Acclimators (#45243)
* Finishes pump and fixes visual bug with disconnecting plumbing objects

* More bugfixes, finishes liquid pump

* Chemical synthesizer, wrench signal to handle unwrenching

* adds input and output pipes and changes ob into obj

* dmdocs all of plumbing through proper means

* adds sprites by meyhaza

also added wrenching interaction and fixed a dumb dumb with me fucking up an object path

* brightens the sprites a little by me

* removes big select from synthesizer ui

* update tgui.js thing

* unfuck pump color

apparently the replace all of spriting has downsides

* chemical acclimator

only heats and cools but i gotta commit and do other stuff

* finishes chemical acclimators

* uodates .dme

* updates .dme again

forgot plumbing component
2019-07-26 17:43:45 -07:00
Time-Green d18fe2101a [READY] Plumbing improvements and chemical synthesizers (#45185)
Removes dumb visual bugs.
Put the copy pasted wrench stuff for disabling and enabling the component, in the component using a new signal from default_unfasten_wrench.
Add a general plumbing machinery subtype. Right now it's mainly for cataloging.
Adds the chemical synthesizer. You can select a single chemical and an amount between 0 and 5. It will produce it every tick. Should be combined with other synthesizers to create meth factories.
Makes the liquid pump a fully functioning machine.

cl
add: The station comes one step closer to plumbing with the introduction of the chemical synthesizer.
sprite: sprites for the synthesizer, input and output commissioned by @Meyhazah
/cl

I wanted to do all the plumbing basic equipment at once, but stuff like plumbing heaters is gonna be ugly if I don't rework them completely and I don't wanna scare the maintainers away.

There is slight copypasting from the chem_dispenser and with the chem synthesizer, but having it be inhereted would be a worse clusterfuck IMO.
2019-07-23 21:22:16 +12:00
Time-Green ceeff661a0 [READY] Plumbing (#44833)
cl Time-Green
add: Adds plumbing pipes and some hidden plumbing related machines. They're not available in-game yet.
sprites: Geyser and geyser pump sprites created by Mey-Ha-Zah!
/cl
Adds the following objects:

    Fluid ducts . Like atmos pipe, but for reagents. They're smart and can be seperated by layer and color

    Geysers. They spawn on lavaland and can be harvested with liquid pumps or just beakers.

    Liquid pumps. For pumping geysers. They need to be on a wire node and connected to a duct network.

    Plumbable reagent dispenser subtype.

    New plumbing RPD specific RPD.

    Plungers. The reinforced plunger can be used for plunging geysers to activate them. They currently serve no other function and can't be worn as a hat yet.

They're all disabled and admin only.

Adds the following systems:

    Ductnet datum. They pretty much say "hey, we're connected"

    Plumbing component. You can turn any movable atom into a plumbable thing. Comes with overlays and everything. They're essential for everything that has input and outputs, except pipes. That means you can have machines connected to both atmospheric pipes and fluid ducts. They only connect with layer 3 ducts.

    Fluid subsystem that handles the processing on the plumbing machinery and other plumbing related stuff.

Basically atmospherics but with reagents. Reagents are pressurized and thus transferred instantly, to avoid those stupid leftovers in pipes no one likes. I am PRing it now because if I were to add a dozen or so associated machines, it would be too much of a pain to manage/review in one PR. It would also be a massive waste if people didn't even want it in the first place.

Also yes all of this works (as far as I know)

Things I plan to add in later PR's

    Layers / colors (maybe) done
    Machinery (Stuff like chemical processors, filters, special mixing chambers and factories)
    Make geysers more interesting, so chemists/atmostechs/cargotechs/assistants can go to lavaland and get some exotic stuff.
    Pipe fractures. Damaged pipes could do the cartooney water soaker beam coming out to shoot at people cause why the fuck not.

Code concerns:

    Connecting is handled through pipes only. Not sure if this is the best approach. This means plumbing devices cant directly connect to each other without pipes. I could add some exceptions to handle it. I could also take connecting away from pipes and make it a global proc, with alot of exceptions since it'd be handling both plumbing machinery and the ducts.

    Reagent transferring. Basically the transfer is instantaneous from A to B. I did this because stuff getting stuck in pipes could pose some serious mixing problems with chemistry, since it's alot more delicate than atmos. I could understand if people would want it to be like atmos. It wouldn't be difficult to change.

Also for testing I suggest you set the pipe_dispenser to category 3 to print fluid ducts. My tests were done with
/obj/structure/geyser
/obj/structure/reagent_dispensers/plumbed/storage
/obj/item/plunger/reinforced
/obj/machinery/power/liquid_pump
/obj/item/pipe_dispenser/plumbing
that and standard tools for setting things up
2019-07-09 11:58:02 +12:00