Skip to content

More PRs ported#49

Merged
Triad-Sector merged 3 commits intomasterfrom
changes
Mar 17, 2026
Merged

More PRs ported#49
Triad-Sector merged 3 commits intomasterfrom
changes

Conversation

@Triad-Sector
Copy link
Copy Markdown
Owner

ported 2 more PRs from hardlight

TrylobyteWasTaken and others added 2 commits March 17, 2026 10:09
* Project Menlo Port

Ports the stuff we want from Frontier's Project Menlo, without the stuff we don't!

* Battery (SMES/substation) interface (#36386)

* Add ENERGYWATTHOURS() loc function

Takes in joules (energy), displays as watt-hours.

* Add simple OnOffButton control

* Re-add Inset style class

This was sloppily removed at some point?? Whatever, I need it.

* Add helper functions for setting title/guidebook IDs on FancyWindow

Reagent dispenser uses these, more in the next commits.

* Add BuiPredictionState helper

This enables me to implement coarse prediction manually in the battery UI.

Basically it's a local buffer of predicted inputs that can easily be replayed against future BUI states from the server.

* Add input coalescing infrastructure

I ran into the following problem: Robust's Slider control absolutely *spams* input events, to such a degree that it actually causes issues for the networking layer if directly passed through. For something like a slider, we just need to send the most recent value.

There is no good way for us to handle this in the control itself, as it *really* needs to happen in PreEngine. For simplicity reasons (for BUIs) I came to the conclusion it's best if it's there, as it's *before* any new states from the server can be applied. We can't just do this in Update() or something on the control as the timing just doesn't line up.

I made a content system, BuiPreTickUpdateSystem, that runs in the ModRunLevel.PreEngine phase to achieve this. It runs a method on a new IBuiPreTickUpdate interface on all open BUIs. They can then implement their own coalescing logic.

In the simplest case, this coalescing logic can just be "save the last value, and if we have any new value since the last update, send an input event." This is what the new InputCoalescer<T> type is for.

Adding new coalescing logic should be possible in the future, of course. It's all just small helpers.

* Battery interface

This adds a proper interface to batteries (SMES/substation). Players can turn IO on and off, and they can change charge and discharge rate. There's also a ton of numbers and stuff. It looks great.

This actually enables charge and discharge rates to be changed for these devices. The settings for both have been set between 5kW and 150kW.

* Oops, forgot to remove these style class defs.
# Conflicts:
#	Content.Client/Entry/EntryPoint.cs
#	Content.Client/Stylesheets/StyleNano.cs
#	Content.Client/UserInterface/BuiPreTickUpdateSystem.cs
#	Content.Client/UserInterface/BuiPredictionState.cs
#	Content.Client/UserInterface/Controls/FancyWindow.xaml.cs
#	Content.Client/UserInterface/InputCoalescer.cs
#	Content.Shared/Localizations/ContentLocalizationManager.cs

* Update StyleNano.cs

---------

Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
* quad speed change

* added modifier to all spawnable instances

* made all speed increase the same as med doc
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 17, 2026

RSI Diff Bot; head commit 9e92a5a merging into e80a36c
This PR makes changes to 1 or more RSIs. Here is a summary of all changes:

Resources/Textures/_NF/Objects/Power/big_ame_jar.rsi

State Old New Status
inhand-left Added
inhand-right Added
jar Added

Resources/Textures/_NF/Structures/Machines/AMEFab/32x32.rsi

State Old New Status
dial-animated Added
dial Added
inserting Added
material-good Added
material-low Added
panel-unlit Added
slot-full Added
slot-unlit Added

Resources/Textures/_NF/Structures/Machines/AMEFab/64x32.rsi

State Old New Status
flywheel-animated Added
flywheel Added
press-animated Added
press Added

Resources/Textures/_NF/Structures/Machines/AMEFab/base.rsi

State Old New Status
base Added

Resources/Textures/_NF/Structures/Machines/GasConverter/32x32.rsi

State Old New Status
fan-animated Added
fan Added
front-panel-unlit Added
gas Added
panel-unlit Added
window-unlit Added

Resources/Textures/_NF/Structures/Machines/GasConverter/base.rsi

State Old New Status
base Added

Resources/Textures/_NF/Structures/Power/TransmissionPoint/32x32.rsi

State Old New Status
icon Added
panel-unlit Added

Resources/Textures/_NF/Structures/Power/TransmissionPoint/96x32.rsi

State Old New Status
base-foreground Added
base-unlit Added

Resources/Textures/_NF/Structures/Power/TransmissionPoint/base.rsi

State Old New Status
base Added

Resources/Textures/_NF/Structures/Power/bles.rsi

State Old New Status
bles-glass Added
bles-oc0 Added
bles-oc1 Added
bles-oc2 Added
bles-og1 Added
bles-og2 Added
bles-og3 Added
bles-og4 Added
bles-og5 Added
bles-op0 Added
bles-op1 Added
bles-op2 Added
bles-open Added
bles-unlit Added
bles Added

Edit: diff updated after 9e92a5a

fixing linter fails
@Triad-Sector Triad-Sector merged commit 42cab41 into master Mar 17, 2026
10 of 13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants