fish-station/Content.Client
Pieter-Jan Briers ffe130b38d
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.
2025-04-27 21:08:34 +10:00
..
Access Fix IDs without station records not being able to have nonstandard contents (#34921) 2025-04-14 17:02:27 +02:00
Actions Action charges refactor (#33993) 2025-04-18 13:45:48 +10:00
Administration Cleanup various admin buttons (#36312) 2025-04-17 03:02:41 +02:00
Advertise/Systems Predict vending machine UI (#33412) 2025-03-02 13:47:52 +11:00
AlertLevel
Alerts Fix alerts mispredict + log spam (#36004) 2025-03-22 12:41:16 +01:00
Ame/UI Reapply "Remove some BUI boilerplate" (#30214) (#30219) 2024-07-21 14:48:13 +10:00
Animations Fix effects (#27533) 2024-05-02 12:40:07 +10:00
Anomaly Fix Anomaly infections infinity growing after curing (#32259) 2024-09-18 00:19:34 +02:00
Arcade Fix arcade machines (#30376) 2024-07-26 10:30:49 -07:00
Armor Predicted armor (#20560) 2023-09-28 20:48:50 +10:00
Atmos Predict gas volume pumps (#33835) 2025-04-19 11:48:41 +10:00
Audio Refactor audio system to send collection IDs over the network (#33610) 2025-02-23 23:14:56 +11:00
BarSign Selectable Bar Signs (#29068) 2024-07-01 02:20:57 +10:00
Beam Content update for NetEntities (#18935) 2023-09-11 09:42:41 +10:00
Bed Reapply "Remove some BUI boilerplate" (#30214) (#30219) 2024-07-21 14:48:13 +10:00
Body/Systems
Botany Fix clientside storage Whitelists (#24063) 2024-02-02 00:33:57 +11:00
Bql Content update for NetEntities (#18935) 2023-09-11 09:42:41 +10:00
Buckle Mob collisions (#34580) 2025-04-05 00:33:52 +11:00
Camera Random spontaneous cleanup PR (#25131) 2024-02-13 16:48:39 -05:00
CardboardBox prop hunt ss14 (real) (#26691) 2024-04-17 14:48:35 -07:00
Cargo Make funding allocation computer more configurable (#36790) 2025-04-22 08:34:53 -04:00
CartridgeLoader Fix warning CS8524 instances (#36837) 2025-04-22 23:48:30 +02:00
Changelog Various UI warnings cleanup (#36169) 2025-04-10 20:47:05 +10:00
CharacterInfo Random spontaneous cleanup PR (#25131) 2024-02-13 16:48:39 -05:00
Charges Action charges refactor (#33993) 2025-04-18 13:45:48 +10:00
Chasm Various UI warnings cleanup (#36169) 2025-04-10 20:47:05 +10:00
Chat Various UI warnings cleanup (#36169) 2025-04-10 20:47:05 +10:00
Chemistry Battery (SMES/substation) interface (#36386) 2025-04-27 21:08:34 +10:00
Clickable Improve sprite fading behaviour (#35863) 2025-04-03 09:58:05 +03:00
Clock Watches (#29550) 2024-07-13 16:09:19 +10:00
Cloning/UI
CloningConsole/UI Reapply "Remove some BUI boilerplate" (#30214) (#30219) 2024-07-21 14:48:13 +10:00
Clothing Markings overhaul (#35938) 2025-04-20 17:01:50 -04:00
CombatMode Random spontaneous cleanup PR (#25131) 2024-02-13 16:48:39 -05:00
Commands Merge showsubfloorforever into showsubfloor (#33682) 2025-03-11 11:01:11 +11:00
Communications Various UI warnings cleanup (#36169) 2025-04-10 20:47:05 +10:00
Computer Remove unused IoC dependency references. (#31704) 2024-09-01 23:22:50 +02:00
Configurable Predict dumping (#32394) 2025-04-19 16:20:40 +10:00
Construction Cleanup: Pass in `IComponentFactory in EntityPrototype.TryGetComponent calls inside FlatpackSystem` (#35457) 2025-02-24 18:37:50 +01:00
ContextMenu/UI Verb tweaks (#31309) 2024-08-25 22:05:39 +10:00
Cooldown
Crayon Fix window positions not saving (#35055) 2025-02-23 23:57:57 +11:00
Credits Add RGA/RSI to Credits (#36704) 2025-04-21 12:24:44 +02:00
CrewManifest replace all instances of "department-{id}" with department.name (#34607) 2025-01-23 19:46:32 -08:00
CriminalRecords Fix UI issues with Camera Monitor (#31809) 2025-04-17 20:15:35 +10:00
Cuffs Update trivial components to use auto comp states (#20539) 2023-09-28 16:20:29 -07:00
Damage Random spontaneous cleanup PR (#25131) 2024-02-13 16:48:39 -05:00
DamageState
DebugMon Fix coords monitor in replays (#29512) 2024-06-27 16:58:51 +02:00
Decals Predict dumping (#32394) 2025-04-19 16:20:40 +10:00
Delivery Reworked Mail Spawning (#36774) 2025-04-21 11:32:18 +02:00
DeviceLinking Predict two-way levers (#25043) 2024-02-11 14:19:45 +11:00
DeviceNetwork Predict dumping (#32394) 2025-04-19 16:20:40 +10:00
Devour
Dice Predicted dice rolls (#34863) 2025-02-14 16:46:25 +01:00
DisplacementMap Markings overhaul (#35938) 2025-04-20 17:01:50 -04:00
Disposal Fix disposal unit flush animation (#30677) 2025-04-24 18:59:39 -04:00
DoAfter Fix 38 non-obsolete warnings (#33794) 2025-02-11 20:59:50 +11:00
Doors Turnstiles (#36313) 2025-04-24 13:39:40 +02:00
Dragon Remove lights compref (#19531) 2023-09-11 19:18:06 +10:00
Drowsiness Add haloperidol, potassium iodide (#27454) 2024-08-03 03:12:08 +10:00
Drugs Disable rainbow overlay when reduced motion is enabled (#28496) 2024-06-01 18:41:06 -07:00
Drunk Random spontaneous cleanup PR (#25131) 2024-02-13 16:48:39 -05:00
Effects cham projector fixes/rewrite (#27111) 2024-11-08 12:15:41 +01:00
Electrocution another rename 2024-11-22 23:39:05 +01:00
Emp
Ensnaring Predict stripping (#32478) 2024-09-27 17:12:10 +10:00
Entry Battery (SMES/substation) interface (#36386) 2025-04-27 21:08:34 +10:00
Eui removed obsolete netmessage creator (#33542) 2024-11-25 22:39:10 +11:00
Examine Fix detailed examine mispredicts (#33814) 2025-04-19 10:37:45 -04:00
Explosion Cluster grenade refactor and contra markings (#31108) 2024-12-16 13:08:07 +01:00
Eye Content changes for engine exception tolerance PR (#27455) 2024-04-29 18:43:15 +10:00
Fax Reapply "Remove some BUI boilerplate" (#30214) (#30219) 2024-07-21 14:48:13 +10:00
Flash let FlashArea be called from shared (#30343) 2024-09-19 09:58:10 +10:00
FlavorText Fix Flavor Text editor not saving correctly (#28122) 2024-05-19 02:23:44 +02:00
Fluids Lower minimum size of absorbent item status (#35804) 2025-04-10 20:48:13 +10:00
Forensics Better DNA forensics & ReagentData (#26699) 2024-08-09 09:27:27 +10:00
Fullscreen Un-revert IPlayerManager refactor (#21244) 2023-10-28 09:59:53 +11:00
Gameplay Improve sprite fading behaviour (#35863) 2025-04-03 09:58:05 +03:00
GameTicking/Managers Refactor audio system to send collection IDs over the network (#33610) 2025-02-23 23:14:56 +11:00
Gateway/UI Reapply "Remove some BUI boilerplate" (#30214) (#30219) 2024-07-21 14:48:13 +10:00
Ghost Cleanup: Fix field naming rule violation in `GhostComponent` (#35454) 2025-02-24 18:48:32 +01:00
GhostKick
GPS AstroNav GPS Cartridge (#32194) 2024-09-24 19:02:51 +02:00
Gravity Station Anchor (#26098) 2024-08-31 10:40:28 -04:00
Guidebook Various UI warnings cleanup (#36169) 2025-04-10 20:47:05 +10:00
Hands Markings overhaul (#35938) 2025-04-20 17:01:50 -04:00
HealthAnalyzer/UI Add health analyzer unrevivability warning (#32636) 2024-10-26 19:22:08 +02:00
Holiday Automatic holiday sprites (#22929) 2023-12-24 23:52:43 -07:00
Holopad Various UI warnings cleanup (#36169) 2025-04-10 20:47:05 +10:00
HotPotato Revert "Fix chat bubbles (#25643)" (#25645) 2024-02-28 00:51:20 +11:00
Humanoid Markings overhaul (#35938) 2025-04-20 17:01:50 -04:00
IconSmoothing IconSmooth additional smoothing keys (#35790) 2025-03-13 00:51:48 +01:00
IdentityManagement
IgnitionSource predict IgnitionSourceComponent (#36310) 2025-04-06 17:54:47 -07:00
Implants Various UI warnings cleanup (#36169) 2025-04-10 20:47:05 +10:00
Info ParallaxControl UI Dehardcode (#36071) 2025-04-13 22:44:44 +10:00
Input Add keybinds for rotating and flipping objects (#30540) 2024-08-13 23:36:41 +10:00
Instruments Clear MIDI masters properly to avoid replay freezes (#36809) 2025-04-26 16:42:16 +10:00
Interactable Improve InteractionSystem range & BUI checks (#27999) 2024-05-24 15:03:03 +10:00
Interaction Purges uses of TransformComponent.WorldRotation (#34946) 2025-02-11 14:16:20 +11:00
Inventory Fix window positions not saving (#35055) 2025-02-23 23:57:57 +11:00
IoC Change the window titlebar to show the joined server (#32547) 2024-10-17 13:06:07 +02:00
ItemRecall Wizard Item Recall Spell (#34411) 2025-02-08 16:56:08 -05:00
Items Predicted multihanded component (#36712) 2025-04-19 18:05:20 +10:00
Jittering Various UI warnings cleanup (#36169) 2025-04-10 20:47:05 +10:00
Kitchen Reapply "Remove some BUI boilerplate" (#30214) (#30219) 2024-07-21 14:48:13 +10:00
Kudzu
Labels Predict Labels (#36406) 2025-04-10 22:19:48 -07:00
LateJoin replace all instances of "department-{id}" with department.name (#34607) 2025-01-23 19:46:32 -08:00
Lathe Local Material Silo (#36492) 2025-04-19 09:43:17 +10:00
Launcher ParallaxControl UI Dehardcode (#36071) 2025-04-13 22:44:44 +10:00
Light Light warnings cleanup (#36195) 2025-03-31 20:25:00 +02:00
Lightning/Components
Lobby Various UI warnings cleanup (#36169) 2025-04-10 20:47:05 +10:00
Lock/Visualizers LockVisualizer (#25224) 2024-02-16 16:52:31 -07:00
MachineLinking/UI Remove unused IoC dependency references. (#31704) 2024-09-01 23:22:50 +02:00
Magic Wizard Staff of Animation (#34649) 2025-02-12 23:46:02 -05:00
MagicMirror Reapply "Remove some BUI boilerplate" (#30214) (#30219) 2024-07-21 14:48:13 +10:00
MainMenu ParallaxControl UI Dehardcode (#36071) 2025-04-13 22:44:44 +10:00
Mapping Mapping warnings cleanup (#36168) 2025-03-30 03:05:22 +02:00
Maps Purges uses of TransformComponent.WorldMatrix and TransformComponent.InvWorldMatrix (#34944) 2025-02-11 21:06:43 +11:00
MapText Implement map text (#28705) 2024-06-09 15:18:54 -04:00
Markers
MassMedia add missing base calls to several BUIs (#35124) 2025-02-13 01:41:30 -05:00
Materials Local Material Silo (#36492) 2025-04-19 09:43:17 +10:00
Mech Fix window positions not saving (#35055) 2025-02-23 23:57:57 +11:00
Medical Fix duplicate suit signals (#35918) 2025-04-16 23:14:05 +02:00
MedicalScanner
Message Remove calls to FormattedMessage obsolete methods (#31706) 2024-09-01 13:00:53 +02:00
Mind Mind tweaks & fixes (#21203) 2023-10-24 10:23:56 -04:00
Mining Mineral Scanner (#31390) 2024-09-07 00:05:53 +10:00
Morgue/Visualizers
MouseRotator Fix MouseRotator on rotated grids (#29663) 2024-07-02 23:04:15 +10:00
Movement Mob collisions (#34580) 2025-04-05 00:33:52 +11:00
NetworkConfigurator Predict dumping (#32394) 2025-04-19 16:20:40 +10:00
Ninja/Systems item toggling giga rework + full ninja refactor (#28039) 2024-07-11 15:55:56 +10:00
NodeContainer Replace xform.WorldPosition with xformSystem method for Setting/Getting (#30029) 2024-08-06 21:02:01 +10:00
NPC Replace xform.WorldPosition with xformSystem method for Setting/Getting (#30029) 2024-08-06 21:02:01 +10:00
Nuke add missing base calls to several BUIs (#35124) 2025-02-13 01:41:30 -05:00
NukeOps Fix war declarator (#30221) 2024-07-21 17:17:59 +10:00
Nutrition/EntitySystems Metamorphosis - FoodSequence 3 (#31012) 2024-09-08 02:22:27 -04:00
Objectives/Systems Objectives ecs rework (#19967) 2023-09-16 16:18:10 +10:00
Options Role subtypes (#35359) 2025-04-16 19:04:48 +02:00
Orbit Ghost orbit jitter fix (#34797) 2025-02-02 02:38:02 +01:00
Outline Various UI warnings cleanup (#36169) 2025-04-10 20:47:05 +10:00
Overlays Roof data rework (#35388) 2025-02-23 18:23:00 +11:00
PAI
Paper Improve paradox clone item copying (#35993) 2025-03-26 17:13:02 +01:00
Parallax Changes ParallaxGenerator to use FastNoiseLite (#36214) 2025-04-14 14:03:49 +10:00
ParticleAccelerator More robust Particle Accelerator menu (retry) (#34037) 2025-01-30 13:24:55 +01:00
PDA cleanup RingerSystem (#36731) 2025-04-19 19:11:08 +02:00
Physics Mob collisions (#34580) 2025-04-05 00:33:52 +11:00
Pinpointer Fix 38 non-obsolete warnings (#33794) 2025-02-11 20:59:50 +11:00
Placement/Modes
Players Fix role ban loading bugs (#32725) 2024-10-14 14:30:31 +11:00
PneumaticCannon
Pointing Fix pointing arrow trajectory (#25061) 2024-02-11 23:45:09 -07:00
Points Update trivial components to use auto comp states (#20539) 2023-09-28 16:20:29 -07:00
Polymorph/Systems cham projector fixes/rewrite (#27111) 2024-11-08 12:15:41 +01:00
Popups Add PopupPredictedCursor and fix doubled popups on vending machines (#36655) 2025-04-18 14:01:46 +10:00
Power Battery (SMES/substation) interface (#36386) 2025-04-27 21:08:34 +10:00
PowerCell Speed Boots [Tier 3 Civ-Service] (#21438) 2023-11-07 18:25:43 -07:00
Projectiles Move TimedDespawn to engine (#20515) 2023-09-30 14:35:32 +10:00
Radiation Optimize & clean up RadiationSystem (#34459) 2025-01-18 12:07:20 +11:00
Radio Power stuff (#31314) 2024-08-25 22:18:42 +10:00
RatKing Rat King Milsim + Buffs (#20190) 2023-09-22 15:01:05 -05:00
RCD Minor dependency and variable cleanup. (#36730) 2025-04-19 18:11:34 +02:00
Remotes Door Remote now shows Mode in UI (#26162) 2024-03-21 20:19:52 -04:00
Replay ParallaxControl UI Dehardcode (#36071) 2025-04-13 22:44:44 +10:00
Research Reapply "Remove some BUI boilerplate" (#30214) (#30219) 2024-07-21 14:48:13 +10:00
Resources Revert "Update submodule to 175.0.0 (#21318)" (#21319) 2023-10-29 15:29:30 +11:00
Revenant Remove AlertType and AlertCategory (#27933) 2024-05-23 22:43:04 -04:00
Revolutionary Cleans up StatusIconSystem and fixing some bugs (#28270) 2024-06-03 12:12:21 -04:00
Robotics Remove calls to FormattedMessage obsolete methods (#31706) 2024-09-01 13:00:53 +02:00
Roles Add codeword highlighting (#30092) 2024-08-23 11:14:38 +02:00
Rotation Rotation warnings cleanup (#36197) 2025-04-01 23:56:37 +02:00
RoundEnd Remove calls to FormattedMessage obsolete methods (#31706) 2024-09-01 13:00:53 +02:00
Salvage Fix window positions not saving (#35055) 2025-02-23 23:57:57 +11:00
Sandbox Organize the Sandbox Panel window (#33684) 2024-12-07 19:13:56 +01:00
Screenshot Cleanup warnings in ScreenshotHook (#36637) 2025-04-16 23:51:38 +02:00
Security Genpop Closets & IDs (#36392) 2025-04-24 16:32:11 +02:00
SensorMonitoring Fix the sensor monitoring console (#34035) 2024-12-23 20:23:03 +01:00
Sericulture Sericulture fixes (#19193) 2023-10-01 16:46:09 -04:00
Shuttles Fix docks clipping on shuttle nav (#36348) 2025-04-13 16:29:05 +10:00
Silicons Convert NameIdentifier to use NameModifierSystem (#36736) 2025-04-20 14:16:59 +10:00
Singularity Various UI warnings cleanup (#36169) 2025-04-10 20:47:05 +10:00
Smoking
Sound
Speech/EntitySystems
SprayPainter Various UI warnings cleanup (#36169) 2025-04-10 20:47:05 +10:00
Sprite Sprite fade review (#36509) 2025-04-14 01:22:05 +03:00
SSDIndicator Cleans up StatusIconSystem and fixing some bugs (#28270) 2024-06-03 12:12:21 -04:00
Stack Replace DetachParentToNull() with DetachEntity() (#29992) 2024-07-13 20:59:33 +10:00
Station Space Ninjas auto-toggle internals after spawning (#25083) 2024-05-03 11:24:21 +10:00
StationRecords Power stuff (#31314) 2024-08-25 22:18:42 +10:00
StatusIcon hide icons for invisible entities (#34825) 2025-02-06 14:45:13 +01:00
Stealth Replace xform.WorldPosition with xformSystem method for Setting/Getting (#30029) 2024-08-06 21:02:01 +10:00
Sticky/Visualizers full sticky prediction (#30230) 2024-08-09 09:36:15 +10:00
Storage Predict dumping (#32394) 2025-04-19 16:20:40 +10:00
Store/Ui add missing base calls to several BUIs (#35124) 2025-02-13 01:41:30 -05:00
Strip Reapply "Remove some BUI boilerplate" (#30214) (#30219) 2024-07-21 14:48:13 +10:00
Stunnable
Stylesheets Battery (SMES/substation) interface (#36386) 2025-04-27 21:08:34 +10:00
SubFloor Sloth's subfloor vismask adventure (#35347) 2025-03-21 00:57:04 +11:00
SurveillanceCamera Fix UI issues with Camera Monitor (#31809) 2025-04-17 20:15:35 +10:00
Tabletop Replace xform.WorldPosition with xformSystem method for Setting/Getting (#30029) 2024-08-06 21:02:01 +10:00
Telephone Holopads (#32711) 2024-12-17 20:18:15 +01:00
Teleportation
Temperature/Systems Add prediction to electric grills (#36241) 2025-04-01 09:43:19 -07:00
TextScreen cancelable brig timers (#26557) 2024-03-31 16:44:02 -04:00
Thief Reapply "Remove some BUI boilerplate" (#30214) (#30219) 2024-07-21 14:48:13 +10:00
Throwing Improve throwing precision (#29726) 2024-07-08 19:03:53 +10:00
Tips silent footsteps for ninja (#33280) 2024-12-23 15:24:09 +01:00
Toggleable Add species-specific code for ToggleableLightVisuals (#35482) 2025-02-25 09:00:37 -08:00
Tools THE RETURN OF ITEM STATUS (#22986) 2024-04-21 23:16:23 +10:00
Traits Fix AudioSystem nullability checks for engine PR (#32233) 2024-09-18 11:43:30 +10:00
Trigger Various system spring cleaning (#36206) 2025-04-16 13:08:22 +02:00
Turrets Sentry turrets - Part 4: The sentry turret and its primary systems (#35123) 2025-03-29 12:55:58 -05:00
UserInterface Battery (SMES/substation) interface (#36386) 2025-04-27 21:08:34 +10:00
VendingMachines Predict vending machine UI (#33412) 2025-03-02 13:47:52 +11:00
Verbs Extracts magic strings from Tag calls (#36305) 2025-04-04 20:20:19 -04:00
Viewport Revert engine reverties (#34968) 2025-02-08 17:17:55 +11:00
VoiceMask Voice Mask refactor (#30798) 2024-09-26 18:55:59 +02:00
Voting Fix 38 non-obsolete warnings (#33794) 2025-02-11 20:59:50 +11:00
Wall Make shuttle walls/windows constructable (#19255) 2023-11-20 17:20:24 -08:00
Weapons Refactor disarms (#36546) 2025-04-19 11:38:22 +10:00
Weather Roof data rework (#35388) 2025-02-23 18:23:00 +11:00
Wieldable Add conditional camera offset based on cursor - Hristov Rework, Part 1 (#31626) 2025-01-28 00:20:45 +01:00
Wires Fix layout on wires UI (#33714) 2024-12-04 21:13:22 +11:00
Xenoarchaeology Fix warning CS9107 (#36845) 2025-04-23 11:42:08 +02:00
Zombies Cleans up StatusIconSystem and fixing some bugs (#28270) 2024-06-03 12:12:21 -04:00
AssemblyInfo.cs
Content.Client.csproj Remove some wayward folder includes in the csproj (#31244) 2024-08-22 13:19:29 -04:00
Content.Client.csproj.DotSettings
GlobalUsings.cs
Program.cs STAThread client content start (#34212) 2025-01-15 01:07:24 +01:00