Make a lot more puddle stuff predicted (#38871)

* feat: predict evaporation

* refactor: move puddle update logic to shared

* refactor: move more puddle stuff to Shared

Still can't do stuff that creates puddles :(

* refactor: move puddle transfers to shared

* fix: various style fixes + switch to predicted variants

* style: make some puddle stuff private instead of protected

* refactor: move solution dumping to its own system

* docs: clarify Drainable/Dumpable/Refillable docs

Also whacks unneeded VVAccess's.

* fix: audit usages of drainable+refillable

I'm leaving spear and arrow for now... but I don't love it.

* Added an item query I guess

* Review changes

* You can pour out waterguns

* Review changes

* oops

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
Co-authored-by: SlamBamActionman <slambamactionman@gmail.com>
This commit is contained in:
Perry Fraser
2025-10-18 13:41:56 -04:00
committed by GitHub
parent 303e0aae17
commit c65f0aeb31
18 changed files with 608 additions and 545 deletions

View File

@@ -4,9 +4,10 @@ using Robust.Shared.GameStates;
namespace Content.Shared.Chemistry.Components;
/// <summary>
/// Reagents that can be added easily. For example like
/// pouring something into another beaker, glass, or into the gas
/// tank of a car.
/// Denotes that the entity has a solution contained which can be easily added
/// to. This should go on things that are meant to be refilled, including
/// pouring things into a beaker. If you run it under a sink tap, it's probably
/// refillable.
/// </summary>
[RegisterComponent, NetworkedComponent]
public sealed partial class RefillableSolutionComponent : Component
@@ -14,12 +15,12 @@ public sealed partial class RefillableSolutionComponent : Component
/// <summary>
/// Solution name that can added to easily.
/// </summary>
[DataField, ViewVariables(VVAccess.ReadWrite)]
[DataField]
public string Solution = "default";
/// <summary>
/// The maximum amount that can be transferred to the solution at once
/// </summary>
[DataField, ViewVariables(VVAccess.ReadWrite)]
[DataField]
public FixedPoint2? MaxRefill = null;
}