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

@@ -3,8 +3,9 @@ using Robust.Shared.GameStates;
namespace Content.Shared.Chemistry.Components;
/// <summary>
/// Denotes the solution that can be easily dumped into (completely removed from the dumping container into this one)
/// Think pouring a container fully into this.
/// Denotes that there is a solution contained in this entity that can be
/// easily dumped into (that is, completely removed from the dumping container
/// into this one). Think pouring a container fully into this.
/// </summary>
[RegisterComponent, NetworkedComponent]
public sealed partial class DumpableSolutionComponent : Component
@@ -12,12 +13,13 @@ public sealed partial class DumpableSolutionComponent : Component
/// <summary>
/// Solution name that can be dumped into.
/// </summary>
[DataField, ViewVariables(VVAccess.ReadWrite)]
[DataField]
public string Solution = "default";
/// <summary>
/// Whether the solution can be dumped into infinitely.
/// </summary>
[DataField, ViewVariables(VVAccess.ReadWrite)]
/// <remarks>Note that this is what makes the ChemMaster's buffer a stasis buffer as well!</remarks>
[DataField]
public bool Unlimited = false;
}