Commit Graph

123 Commits

Author SHA1 Message Date
ArtisticRoomba 70b3478144 Engineering guidebook megaupdate v2 (#33062)
Significantly updates the Engineering guidebook (more explicitly the Atmos section) to have a lot more relevant and useful information.

Right now engineering has been getting update after update with no real change to the relevant guidebook entry. This has lead to a lot of out of date information and bad practices being prevalent in the guidebook, something that pains me to read.
2025-01-28 05:01:24 +00:00
Errant 8544328a5b Fix battery charging stopping just short of being full (#34028) 2025-01-12 08:14:50 +00:00
BramvanZijp e0636a829c Rework the HoS's Energy Shotgun (Varying energy consumption depending on fire-mode + re-adds a toned down self recharge.) (#32104)
* Rebalance HoS's Energy Shotgun

* SLIGHTLY Up the max charge so the gun properly recharges all of its charges, which matters a lot more with the self charge cooldown system.

* Prevent recharge cooldown if 0 power is used.

* Makes the clientside HUD actually update to reflect the changes in firecost and thus max/current charges.

* Properly fix that recharging to just under full issue instead of applying a budget fix to only the eshotgun.

* Clean up the client ammo UI fix.

* Update the self recharger component to comply with maintainer request.

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Remove code that was made redundant by a hotfix from another PR.

* Make the recharge pause on EMP, document things where needed, clean up code as per maintainer request, add a note to make the code better when power is moved to shared.

* Fix another internal issue

* Code cleanup + fix the rapid recharge verb to remove pause.

* cleanup

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-12-21 09:55:48 +00:00
IProduceWidgets d4f4f6292f baby proof the terminal (#33281)
* baby proof the terminal

* Make a couple exceptions for items that you might take with you.

* alwayspoweredlights

* Uncuttable cables since cablecomp is a snowflake construction system

* chairs and vendors

* rerun heisentests

* rerun tests again
2024-12-07 17:27:35 +00:00
deltanedas 11807309de
cherry pick portable charger (#2206)
* Portable Recharger: Arsenal T3 (#26655)

* sys

* item

* ahm.

* Update Content.Server/Power/Components/ChargerComponent.cs

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>

* remove funny spaces

* funny fix

---------

Co-authored-by: icekot8 <93311212+icekot8@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-11-24 11:09:31 +01:00
eoineoineoin 2c001fb6dc Make APC UI work correctly with multiple users (#32465)
* Make APC UI work correctly with multiple users

* Check access only on client, when constructing UI

* Do TODO (Thanks, Robust 236.1)

---------

Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
2024-10-24 01:56:14 +01:00
Julian Giebel 5f5a0d46be Station Anchor (#26098)
* Work on abstracting out chargeup functionality/ui from grav gen

* Work on station anchor

* Finish implementing station anchors

* uhh yeah

* ok.

* fix tests

* whoops

* Get the last extraneous yaml fail

* PJB review

* beast mode... ACTIVATE!

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
Co-authored-by: EmoGarbage404 <retron404@gmail.com>
2024-09-01 03:36:44 +01:00
metalgearsloth f8b8ec7994 Power stuff (#31314)
* Power stuff

- Add shared IsPowered
- Add shared ResolveApc
- Move PowerChangedEvent to shared for now
- Add SlimPoweredLight that actually functions how you'd expect a PoweredLight to function it id didn't have a bunch of bloat on it.

* big update

* boing
2024-08-27 01:00:42 +01:00
Pieter-Jan Briers 4a2fe34404
Fix bugs resulting in quantum APC visual states (#29475)
There were TWO bugs here

FIRST, APCs *did* update their visual state on initialization, but at that point the relevant power state hasn't been initialized yet, so it always returns a bogus result. There aren't guaranteed to be subsequent power updates that actually trigger the APC to update so this can get it stuck.

Fixed by just deferring the on-init update to be after the first update tick, which is itself ordered to be after power update.

SECOND: Once I fixed that, I ran into the issue that APCs created at *server startup* also fail to update, because the throttling system (to prevent frequent APC updates) thinks the LastChargeStateTime was at server startup.

Fixed by making that variable nullable so it defaults to null.

Also removed the useless datafields on the "last update" fields. These are all just used to cache and throttle updates, something that should not be persisted to a map file.
2024-07-25 01:53:30 +02:00
ShadowCommander ebddaa8e3d
Move ApcPowerReceiverComponent Powered state to shared (#28206)
* Try syncing powered state to client

For some reason the client is not receiving the ApcPowerReceiverComponentState, so it's not working.

* Fix powered state not syncing to client

The client PowerReceiverSystem was abstract, which prevented it from
running initialize.

* Flip check so that it runs bigger checks first

PowerDisabled skips the others.
NeedsPower skips the receiving check.

* Disallow changing Powered manually

* Move Powered update to PowerReceiverSystem

* Move appearance to event subscription

* Move metadata component to AllEntityQuery

* Cleanup

* Move Powered update back to PowerNetSystem

It's easier to use the EntityQueries and it dosen't need to be updated
anywhere else.

* Put appearance updating back

* Move IsPowered to shared

* Simplify IsPowered

* Cleanup

* Remove duplicate PowerChangedEvent

PowerChangedEvent on ProviderChanged doesn't seem to be needed
PowerChangedEvent gets raised by in update if the power state changes
after a new provider is connected
2024-06-01 17:38:41 +02:00
metalgearsloth 1d63b4cfcb
Content update for UI prediction (#27214)
* Content update for UI refactor

* Big update

* Sharing

* Remaining content updates

* First big update

* Prototype updates

* AUGH

* Fix UI comp ref

* Cleanup

- Fix predicted message, fix item slots, fix interaction range check.

* Fix regressions

* Make this predictive

idk why it wasn't.

* Fix slime merge

* Merge conflict

* Fix merge

(cherry picked from commit 5896e6875266b22c565009b5d45f60ceb981d90a)
2024-05-03 00:15:32 +02:00
Leon Friedrich 01e6149cc1
Atmos device performance improvements (#26493)
* Atmos device performance improvements

* AtmosDirection perf improvements

* Fix errors

* Add GasTileOverlayComponent arguments

* Make excite no longer invalidate a tile

(cherry picked from commit 888a3bda515a214733bf748c5d6a7e7c923a301e)
2024-04-07 14:14:34 +02:00
Tayrtahn a8d082374d
Remove all obsolete BatteryComponent method calls (#25871)
Removed all obsolete, non-ECS method calls to BatteryComponent

(cherry picked from commit 2935e5bd780d6cd08897521ba0b54adccb3fd0da)
2024-03-07 01:52:46 +01:00
Nemanja 7573dba496
Rip out remaining machine upgrades (#24413)
* Rip out remaining machine upgrades

* eek

(cherry picked from commit a9e89ab37221c4f5eff5a9e1d42e97c6f3e0753b)
2024-01-27 23:43:49 +01:00
Nemanja 53c4793673
Turbo Recharger (#23723)
turbo charger

(cherry picked from commit c861b66a476a1ea1037ec173b088cafd5519f757)
2024-01-26 22:12:03 +01:00
chromiumboy a37bf27456
Power monitoring console overhaul (#20927)
* Prototyping whole station wire map

* More prototyping

* Added icons for the different power distributors and toggleable cable displays

* Power cable layouts are now only sent to the client when the power monitor is open

* UI prototyping

* Power monitors can now see the sprites of distant entities, long entity names are truncated

* Updated how network devices are added to the player's PVS

* More feature prototypes

* Added source / load symbols

* Final prototype! Time to actually code it properly...

* Start of code clean up

* Continuing code clean up

* Fixed UI appearance

* Code clean up complete

* Removed unnecessary changes

* Updated how power values are calculated, added UI warnings for power sinks and power net checks

* Updated how power values are calculated again, added support for portable generators

* Removed unnecessary files

* Map beacons start toggled off, console map now works outside the station, fixed substation icon

* Made some of Sloth's requested changes. Power distributors don't blink anymore, unless selected

* Moved a number of static variables in PowerMonitoringHelper to sensible places in the main files. Added a NavMapTrackableComponent so that you can specify how individual entities appear on the navmap

* Updated the colors/positions of HV cables and SMESes to improve contrast

* Fixed SMES color in map legend

* Partially fixed auto-scrolling on device selection, made sublists alphabetical

* Changed how auto-scroll is handled

* Changed the font color of the console warning messages

* Reduced the font size of beacon labels

* Added the station name to the console

* Organized references

* Removed unwanted changes to RobustToolbox

* Fix merge conflict

* Fix merge conflict, maybe

* Fix merge conflict

* Updated outdated reference

* Fixed portable_generator.yml

* Implemented a number of requested changes, move bit masks to a shared component

* Navigate listings via the navmap

* First attempt at improving efficiency

* Second attempt at optimization, entity grouping added for solar panels

* Finished solar panel entity joining

* Finished major revisions, code clean up needed

* Finializing optimizations

* Made requested changes

* Bug fix, removed obsolete code

* Bug fixes

* Bug fixes

* STarted revisions

* Further revisions

* More revision

* Finalizing revisions. Need to make RT PR

* Code tidying

* More code tidying

* Trying to avoid merge conflicts

* Trying to avoid merge conflicts

* Removed use of PVS

* Improving efficiency

* Addressed a bunch of outstanding issues

* Clear old data on console refresh

* UI adjustments

* Made node comparison more robust. More devices can be combined into one entry

* Added missing component 'dirty'

(cherry picked from commit 1de682e23fd3cb832fa3328a7e6c4bd4b1a858f7)
2024-01-22 18:28:33 +01:00
DrSmugleaf 4526541d58 Replace Component.OnRemove with ComponentRemove event subscriptions (#21072) 2023-10-20 15:30:20 +02:00
chromiumboy d6242342c4 SMES and substation require power cells as machine parts (#20344)
* Initial commit

* Balancing and tweaks
2023-10-14 22:03:31 +02:00
Leon Friedrich f3197cea37 Remove IoC resolves in BaseNetConnectorNodeGroup and friends (#20333) 2023-09-27 21:59:12 +02:00
deltanedas f2669b5771
Clean up APCs (#19841)
While here, fix an issue where APCs don't update the UI state after a load change.
2023-09-05 13:19:43 -08:00
Leon Friedrich e4ca6f4fb9
Allow solutions to store extra reagent data (#19323) 2023-09-05 07:55:10 +10:00
metalgearsloth 279674c0b3
Revert "Make lights dim under low power" (#19708) 2023-09-01 09:47:30 +10:00
Pieter-Jan Briers bf16698efa
Portable Generator Rework (#19302) 2023-08-25 11:40:42 -07:00
DrSmugleaf 35107f7c2b
Fix component generic usages where IComponent would not be valid (#19482) 2023-08-24 20:10:55 +10:00
Kevin Zheng f8bdfd6d26
Make lights dim under low power (#19317)
* Make lights dim under low power

* Slightly more dramatic curve
2023-08-22 20:29:10 -05:00
DrSmugleaf a88e747a0b
Refactor serialization copying to use source generators (#19412) 2023-08-22 18:14:33 -07:00
Nemanja b8250f9601
entity storage tweaks (#19182) 2023-08-15 16:49:30 -06:00
Nemanja 2d08f02d23
Material generators from Afterlight (#18387) 2023-07-31 14:42:38 -04:00
metalgearsloth b478d5326b
Remove component.Initialize calls (#18230) 2023-07-26 22:37:52 +10:00
Sailor 9d844520be
Implement RiggableSystem, stunbatons injectable (#17288)
Co-authored-by: keronshb <54602815+keronshb@users.noreply.github.com>
2023-07-08 13:32:31 +10:00
metalgearsloth 2d1ac6e01d
Revert "add breakers to power batteries" (#17632) 2023-07-08 12:47:38 +10:00
deltanedas 6acfe53e5f
add breakers to power batteries (#16903)
Co-authored-by: deltanedas <@deltanedas:kde.org>
2023-06-07 12:43:54 -07:00
Segonist 863d8e8601
constructable rechargers (#16367) 2023-05-31 23:48:55 +10:00
Pieter-Jan Briers e3ec80b648
Don't show grilles in the power monitor (#16962) 2023-05-30 15:34:45 -07:00
Dawid Bla 0d74c2d8f6
Fix 0.25sec doafters (#15918) 2023-04-29 17:50:31 -04:00
metalgearsloth a4dfe8beed
Power cell slot QOL (#15373) 2023-04-23 12:25:12 +10:00
Slava0135 adb12676c6
replace apc panel with wires panel (#14832) 2023-04-20 16:42:22 +10:00
Leon Friedrich 9513ea66e4
ECS BatteryComponent (#15337) 2023-04-19 20:10:08 +10:00
James Simonson 3bcd319ae4
Enhanced APC UI + New NT logo to footer (#14258) 2023-03-06 21:55:35 -04:00
metalgearsloth ce6bd03685
Fix powernetworkbattery typo (#14385)
Not on any of our maps.
2023-03-06 00:36:36 -04:00
deltanedas 98b02b3d97
make emagged marker component (fixed version of #13867) (#14096)
* The all-in-one hacking solution
The thinking man's lockpick
The iconic EMAG

* emagged medbay's stasis bed

* left med, emagged sec' apc

* went back to chem, emagged the dispenser

* emagged the fax while i was there

* had a donut while waiting for emag to charge

* i broke into the bridge then announced 'mandatory johnson inspection in medical'

* get system instead of dependency

* feedback

* net suggestion

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* use EnsureComp and import NetworkedComponent

---------

Co-authored-by: deltanedas <user@zenith>
Co-authored-by: deltanedas <deltanedas@laptop>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2023-02-18 19:03:06 -06:00
keronshb 42745b1c6e
Conveyor Belt optimization and prediction (#12929)
* belt multithreading

* moves away from multithreading and changes setting awake directly to physics system method

* prediction for conveyors

* Fixes missing reference in FaxSystem

* Fixes oddities

* Adds networked to conveyor components

* Some more cleanup.

* reverts power change event

* Removes the event, fixes a file

* Should fix the rest of the weird additions

* More cleanup to fix extra files

* Fixes again

* fix

* fixes fax system

* Adds component state, cleans up the dependencies

* Checks for prediction

* Merge conflicts

* powa

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2023-02-13 12:20:39 +00:00
Rane 80d4dc430d
Generic power switch component (#11999) 2023-01-20 08:05:54 -08:00
Visne c6d3e4f3bd
Fix warnings and code cleanup/fixes (#13570) 2023-01-19 13:56:45 +11:00
DrSmugleaf 7fbc2608e8
Remove redundant read-only VV from datafields (#12626) 2022-11-16 20:22:11 +01:00
Nemanja cfab87b3d7
generator machine upgrading (#12145) 2022-10-22 15:38:57 -07:00
Mervill 15a772fb96
Cleanup for ChargerComponent (#11907) 2022-10-16 21:21:54 +11:00
Nemanja c20f1ac559
Add a component for upgrading power consumption in machines (#11777)
Co-authored-by: 0x6273 <0x40@keemail.me>
2022-10-15 14:28:12 -07:00
corentt 67760da204
Add power selling price (#11395) 2022-10-15 14:10:48 -07:00
metalgearsloth 0b38589728
Raise power events by ref and not broadcast (#11923)
Also some other minor stuff.
2022-10-14 23:08:15 -05:00