* ready
* oop forgot the HUD stuff
* woooo examinable generalized tooooo
* oop I forgot to rename the files
* bungled the merge, I guess
* this is called hubris
* Verin's comments
* PR comments
how did I use `ProtoId<> Hunger` in more than a few spots but then just say "thirst can stay a literal :^)"?
also changed a few spots to my beloved
```
functionInvocation(
one
param
per
line
)
```
```
* Satiation effect condition now with ADDED FUNCTIONALITY?? :o
* tfw you trust the markov chain recommendation because long generic type names are tough q-q
* TFW YOU TRUST THE MARKOV CHAIN BUT IT DOESN'T UNDERSTAND THE DIFFERING SEMANTICS OF MAX AND MIN AHHHHH
* tfw you think to yourself "i need to fix the effects", but then forget to and the code doesn't even compile.
* centralize satiation constants
* other small comments
* The enum is dead.
But at what cost?
* oop
* like 12 more ooperses
* green checks are mine by right; I have performed the rites; I have done my part; you will not deny me this succor
* oops I changed the semantics from `<=` to just `<` and didn't update the tests :)
* serialization has bested me :agony:
also PR comments
* never trust the auto merge :agony:
* literally just this
* force engine back to master because idk why it's different
* fix randomness and update master
* submodule fuckery
* fall before my might
* okay I ran the linter, ARE YOU HAPPY??
* cursed ovis, trouble me no more
* protoman stuff
* inb4 linter bonks me
* break non-critical stuff from the main satiation proto
* 
inb4 this breaks something somewhere lmao
* my two greatest PRs COLLIDE
I wonder why robust says it's changed :hmmclueless
* sanity is at an all-time low
* serialization, I guess
* I don't believe you
* field deltas on class \w*satiation\w*components
* PR comments
* 我做泥團子 😔
* doc + kill one property that's trivially accessible after the threshold caching changes
* fixes
---------
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
Co-authored-by: AJCM-git <ajcm_mail@disroot.org>
* reduce network burden of the hunger system
* explicit start + last updated
* remove auto reformat changes to otherwise untouched code
add clamp helper
* imagine making breaking changes, documenting them, and then not thinking to check the yaml
* comments
* Remove unused net manager in hunger system
Remove lastAuthoritativeHungerValue from prototypes
* Changed comments to be more clear and uniform.
EggLayer uses NextGrowth instead of frame accumulation.
Egglayer uses much less energy to make eggs, and lay time is randomized for player and AI chicken.
* UdderComponent ReagentId can be changed now
UdderSystem and WoolySystem use SharedSolutionContainerSystem now
* Entities with udders can be examined to see a rough hunger level
udders and wooly stop reagent generation/extra nutrient usage once the solution container is full
* Moved stuff to Shared
AutoPausedField now
* Cleanup moving stuff to Shared
* Oops. Make UdderSystem sealed instead of abstract.
* Switch PopupEntity for PopupClient
* Didn't mean to delete Access
* new() instead of default! prototype
revert egglayer balance change
NextGrowth += timespan in egglayer
* forgot [Datafield] for NextGrowth
* forgot NetworkedComponent again...
* Renaming Shared Animal to Shared Animals to match Server
Hopefully also resolve merge conflicts.
* Fix incorrect filename
* Update with requested changes
Put UdderSystem dependencies in alphabetical order.
Initialise NextGrowth for Udder and Wooly components on MapInitEvent.
Clean-up EggLayerSystem a little.
Re-write OnExamine function for UdderSystem, improving clarity.
Add full stops to end of udder examine locales.
And more :)
* Add some additional descriptions for cow hunger levels.
* Add Udder and Wooly quantity to AutoNetworkedField
* Account for less than starving threshold.
---------
Co-authored-by: sirionaut <sirionaut@gmail.com>
Co-authored-by: Sirionaut <148076704+Sirionaut@users.noreply.github.com>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>