Commit Graph

515 Commits

Author SHA1 Message Date
Justin Trotter 6bf45709e9
Add access locks to gas canisters (#10575) 2022-09-16 07:06:29 -07:00
metalgearsloth bb0229e391
Add gas selling to tanks too (#11304) 2022-09-16 07:04:25 -07:00
Visne 356a6b8d2e
Event-ify Rejuvenate (#11145) 2022-09-15 03:30:56 +10:00
metalgearsloth 78a4ab6eb2
Update for collision events by-ref (#10933) 2022-09-14 17:26:26 +10:00
Kevin Zheng 45349e3c0d
Add gas recyclers (#9934)
* Add RemoveVolume()

RemoveVolume(vol) captures the common pattern of:

    air.RemoveRatio(vol / air.Volume)

Change existing code to use this method where appropriate.

* Add gas recyclers

Gas recyclers catalyze the conversion of CO2 and N2O to O2 and N2. The
gas recycler component takes waste gas from the input net and releases
the result into the output net.

To make things more fun, the input net must be pressurized to 3 MPa and
heated to at least 300 C; otherwise, no reaction will occur.

Game-mechanic wise, gas recyclers contain the catalyst for the
conversion reaction, and therefore, requires no external power. However,
the external pumps and heaters required to make the reaction happen
still do.

* Fix gas recyclers

Fix negative sqrt, fix pressure check after remove.
2022-09-11 18:02:01 -05:00
theashtronaut 6f9065a1de
Reimplement anchor/unanchor delay (#11128) 2022-09-10 23:30:10 -07:00
theashtronaut 868abaca5c
Gas Analyzer can now scan pipes/devices along with the environment (#10976) 2022-09-08 07:22:14 -07:00
Flipp Syder b7c08238e4
Fixes air alarm mode propagation when a mode is set from an air alarm (#11121) 2022-09-08 07:01:56 -07:00
Leon Friedrich 35a142965d
Firelock ECS + some other stuff. (#8366)
* firelock rejig

* dont error failed resolves

* fix

* less resolves

* switch fire and pressure messages

* update

Co-authored-by: wrexbe <wrexbe@protonmail.com>
2022-09-05 22:55:33 -07:00
Flipp Syder 0882d85176
Air alarm balancing (#11063)
* threshold balancing, restores none mode on atmos alarm

dear lord, panic mode with unbalanced thresholds was a nightmare

* that was 10%, not 1%

* adds widenet mode for scrubbers

* adds the vents to wide filter as well
2022-09-05 19:35:36 -07:00
Flipp Syder 8cbcf2d640
Fixes reset propagation for atmospheric alarm receivers, adds CVar for fire alarm all access (#11020)
* adds a check for if a firelock is powered before auto-opening

* fixes issue where resets would not propagate properly

* adds cvar bound for fire alarm access (defaults to all access)
2022-09-05 18:15:50 -07:00
Flipp Syder 9ace52a6c1
Device link visualizer (#11054)
* shuffles devicelist to shared, adds an overlay for devicelist

* adds space property to overlay

* moves networkconfigurator to shared, makes devicelistsystem clientside check activedevicelist

* dirties components upon change, adds networkedcomponent to sharednetworkconfigurator

* state handlers for networked components

* whoops

* lots of shuffling, renaming, and access changes

* randomizes color for every new entity added to the overlay

* adds a client-side action to clear all network overlays if they're active

* clones action (oops)

* localization, adds a command for clearing network link overlays (in case the action disappears)

* moves the entity manager up into the bui fields

* makes that a dependency

* attempts to just directly get the color from the dict when drawing, now

* fixes up a few comments

* adds dirty on init to devicelistcomponent

* hacky solution related to mapping with a networkconfigurator

* more stricter bound on that hacky solution

* just checks if the life stage is initialized instead of if the entity was initialized

* moves getalldevices to shared

* readds linq import

* tries to ensure that the show button is toggled on if the device we're trying to configure is currently being tracked by the overlay

* some reorganization
2022-09-05 19:55:44 -05:00
corentt 6301ac5147
AirAlarms fixes (#11062)
* modify airalarm thresholds

* display percentage, not ratio

* reopen doors on normal/warning state

* panic mode on danger state
2022-09-05 19:54:26 -05:00
Flipp Syder d447b0f80e
Air alarm patches (#11004) 2022-09-04 02:04:15 -07:00
Flipp Syder ba2995b7c8
Merge pull request #10721 from vulppine/air-alarm-fixup
Air sensors & air alarm fixup
2022-09-02 13:00:33 -07:00
vulppine fa8c16358f alarmables should now attempt to update appearance on init 2022-08-30 21:41:29 -07:00
Rane f36d278499
Biomass (#10313)
* Material

* good prototype

* Fix material storage

* You can insert biomass into the cloner

* ok, basic biomass subtraction works

* amogus

* ok chance works

* Alright, the biomass and genetic stuff works

* feedback for cloning

* more reclaimer polish

* ship it

* starting biomass + fix lathes

* I changed my mind on rat mass and these guys are definitely getting ground up

* Doafter

* clean up, sync the two

* fix naming, fix mass

* technology + construction

* additional logging, stop unanchoring when active

* fix event / logs

* dont gib dead salvage

* auto eject

* fix deconstruction behavior

* make warning message better, temporarily disable cancer scanner

* fix biomass stacks

* add easy mode CVAR

* stack cleanup, make biomass 2x as fast

* bugfix

* new sprite from hyenh

* fix tests

* hello? :smilethink:

* :smilethink:

* medical scanner gets antirotting

* fix cloner and medical scanner

Co-authored-by: Moony <moonheart08@users.noreply.github.com>
2022-08-29 21:31:27 -05:00
vulppine e0bf77490d number of things, fixing warnings, AtmosAlarmType instead of AtmosMonitorAlarmType 2022-08-29 07:37:26 -07:00
vulppine dd01189a6e changes how the emag function works in fire alarms 2022-08-23 14:47:09 -07:00
Flipp Syder f00a5cb17a
Merge branch 'master' into air-alarm-fixup 2022-08-23 13:21:05 -07:00
vulppine a8eb929d3c removes air alarm replace mode 2022-08-23 13:20:23 -07:00
vulppine e348a64423 air alarm now sends the count of known devices, rather than all types of devices 2022-08-23 12:04:45 -07:00
vulppine b3a4ef9997 file-scoped namespaces 2022-08-23 10:55:46 -07:00
vulppine df25715ed3 renames AtmosMonitorAlarmEvent to AtmosAlarmEvent 2022-08-23 10:42:03 -07:00
vulppine 83cac4de1e vv for tripped thresholds, device list update event for air alarms 2022-08-22 18:41:24 -07:00
vulppine b8d011f8f4 checks for validity now ensure that an alarm is reset to normal - only if it was known beforehand 2022-08-22 18:06:41 -07:00
vulppine 546e70730e or instead of and 2022-08-22 17:45:29 -07:00
vulppine 8de6193ff2 monitors will now always alarm if threshold types have been tripped/reset to normal on update 2022-08-22 17:42:47 -07:00
vulppine 7fd510d252 power check for firelocks, atmos monitor power cycle should now alert 2022-08-22 16:47:34 -07:00
vulppine ff9d9ab75c Revert "ResetAll no longer clears the alarm state for an atmos monitor"
This reverts commit d774741121.
2022-08-22 16:11:32 -07:00
vulppine f602ead768 power change should now update alarm on alarmables 2022-08-22 15:03:22 -07:00
vulppine a5cf4f9578 makes monitoralerttypes actually nullable 2022-08-22 12:06:30 -07:00
vulppine d774741121 ResetAll no longer clears the alarm state for an atmos monitor 2022-08-22 11:55:08 -07:00
vulppine 84027b4e67 alarmables now check if the type of alarm matches the alarms they can check (optional) 2022-08-22 11:30:37 -07:00
vulppine 160104bc2a Revert "oops!"
This reverts commit 1428a6d285.
2022-08-22 10:41:53 -07:00
vulppine 1428a6d285 oops! 2022-08-22 10:35:22 -07:00
vulppine 912b23e414 fire alarms (and anything that uses Reset/ForceAlert) should now update their appearance and play noises 2022-08-22 10:05:39 -07:00
vulppine 786bddff0a resetall now affects atmos monitor alerts 2022-08-22 09:19:02 -07:00
vulppine 2d22c37210 fire alarms will now attempt to register and sync against all connected devices whenever a device list is updated 2022-08-22 08:44:03 -07:00
vulppine a8bf2ccbb6 fixes firelock alarm sync, removes check condition for syncalerts packet receive when checking through the sent dictionary 2022-08-22 07:29:43 -07:00
vulppine a091e69635 should fix TryGetHighestAlert logic 2022-08-22 07:02:48 -07:00
vulppine 6be3265084 tag sync, replaces monitor references with alarmable references 2022-08-22 05:49:51 -07:00
vulppine 85effbd33d force alert on alarmable, enforces synchronization with alarmables to be bounded by the tags that it can sync with 2022-08-22 05:01:31 -07:00
vulppine 550ea771a7 sync alarms, reset all, etc 2022-08-22 04:21:20 -07:00
vulppine 25bb45aa98 atmosdevicenetworksystem for generic device network stuff for atmos devices 2022-08-22 01:14:39 -07:00
Leon Friedrich 921e2ee57d
BUI changes required for Engine PR (#10608) 2022-08-21 03:38:30 +10:00
vulppine a2d18e7a6d starts moving alarm sync logic to alarmables 2022-08-20 07:36:53 -07:00
vulppine fbab3cd5aa removes atmos alarmable from scrubbers and vents 2022-08-19 23:59:59 -07:00
vulppine 9b3df8740f sensor info is now wider, air alarm now actually updates the networked device state 2022-08-19 05:23:25 -07:00
vulppine b9b9b84bea fixes up air alarm modes 2022-08-19 04:40:50 -07:00