* Returned functionality to industrial reagent grinders without un-nerfing recyclers
* Limited industrial reagent grinder to only extractable solutions
* Power stuff
- Add shared IsPowered
- Add shared ResolveApc
- Move PowerChangedEvent to shared for now
- Add SlimPoweredLight that actually functions how you'd expect a PoweredLight to function it id didn't have a bunch of bloat on it.
* big update
* boing
* Added the ability for blood to track DNA using ReagentData; Forensic Scanner now accounts for solution DNA, non-DNA holders have "Unknown DNA"
* Removes touch DNA for puddles, adds DNA to vomit
* DNA now leaves traces in containers and those marked without don't show DNA on scan (except for puddles), gibbed parts have DNA
* Fix stupid metamorphic glass bug grrr
* Removed SpillableComponent since DnaSubstanceTraceComponent is used instead
* Removes data field from maps, adds DNA tracking for some missed items
* Give default value, fix missing values.
* Fixes recipe bug
* Review changes
* Make the Data list into a nullable type
* Revert map changes
* Move gibbed unknown DNA to forensicssystem
* fix(jugs): Make max and minimum transfer amounts make sense
* fix name
* Better
* Implement bounds checks
* large beaker too
* More logical solution
* Bleh
* remove
* Doesn't make sense yet
WAS MISTAKEN AAAAAAAAAAAAAAD@ @!
* Shaking and Stirring
* Remove shake message
* Switch if order a bit
* Add doafter supprot for reactionmixer
* Fix nullability
* Timespan zero
* Forgot to remove loc string
* Reorganize usings
* Remove unneeded usings, fix b52 needing to be shaken
* Oh the possibilities
* Merge fixes
* Forgot to remote LavaSystem oops
* Changed EntityEffectArgs to EntityEffectBaseArgs and EntityEffectReagentArgs
* Throw exception for unimplemented effectargs
* Remove Json and overrideable datafields
* Fix test issues
* Actually fix the compiling issue
* Fix comments and remove EntityEffectArgs (no longer used, replaced with EntityEffectBaseArgs)
* BlockSolutionAccessComponent now only blocks one specified solution.
* Significant overhaul
Separated spilling when worn functionality into its own component/system.
Removed BlockSolutionAccessComponent.
Added an event for solution access.
* draft one of plant metabolism guidebook
* loc fix?
* add attributes loc
* fix loc syntax
* improved appearance
* last commit was undercooked, my bad
* last commit was still undercooked, my worse
* last commit was even still undercooked, my worst
* Addressed comments?
* Fix newlines
* Hopefully this works
* Cleanup, I think
* 2xs
* reagent dispenser: fancy window
* reagent dispenser: dispense button grid
* reagent dispenser: rearrange containers & info
* reagent dispenser: remove `reagent-dispenser-window-container-label`
* reagent dispenser: add `Scrollcontainer` on right side
* reagent dispenser: get rid of pointless actions
* reagent dispenser: cleanup actions and `inventory` field on bound ui state
* reagent dispenser: cool reagent cards & finishing touches
* reagent dispenser: final cleanup and formatting
* reagent dispenser: `ButtonGrid` and `ReagentDispenserSetDispenseAmountMessage` refactor
* reagent dispenser: cleanup code & address minor concerns
* reagent dispenser: text in reagent cards no longer clips
* reagent dispenser: oh wait i forgot to change this and thats why the builds keep failing probably
* reagent dispenser mayybe this
* reagent dispenser: remove `using FastAccessors;`
* delete unused classes
* disable reagent button when container is empty
* Make things a bit bigger
* remove obsolete text color override
* Added warning to tryGetSolution, moved SolutionContainer code to shared
- Added an optional warning (false by default) to print an error if a solution is missing when using tryGetSolution methods
- Moved ensuring solution containers to shared, left the old method stubs for compatability and marked them as obsolete.
* Update SharedSolutionContainerSystem.cs
* Update SharedSolutionContainerSystem.cs
* Update SolutionContainerSystem.cs
* Update SharedSolutionContainerSystem.cs
* Fixing ensuring chem solutions always returning false on client
- ensuring chem solutions will only return false on the client if it is waiting for a server solutionEntity to be synced
* Added concentration helpers
* fix whitespace
* Made more things blessable
* Removed junk
* Remove whatever that was
* Make bowls blessable
* New mixablesolution component, converted everything to work with it
* Fix minor mishaps
* Fix extra spaces in bottle yml
* Fix last extra space, fix bottle havign the wrong solution name
* Remvoe unneeded event(I think), fix alcohol bottles not being mixable
* I missed cans
* Implemented Shakeable
* Prevent shaking open Openables
* Prevent shaking empty drinks. Moved part of DrinkSystem to Shared.
* DrinkSystem can have a little more prediction, as a treat
* Cleanup
* Overhauled PressurizedDrink
* Make soda cans/bottles and champagne shakeable. The drink shaker too, for fun.
* We do a little refactoring.
PressurizedDrink is now PressurizedSolution, and fizziness now only works on solutions containing a reagent marked as fizzy.
* Documentation, cleanup, and tweaks.
* Changed fizziness calculation to use a cubic-out easing curve.
* Removed broken YAML that has avoid the linter's wrath for far too long
* Changed reagent fizzy bool to fizziness float.
Solution fizzability now scales with reagent proportion.
* Rename file to match changed class name
* DoAfter improvements. Cancel if the user moves away; block if no hands.
* Match these filenames too
* And this one
* guh
* Updated to use Shared puddle methods
* Various fixes and improvements.
* Made AttemptShakeEvent a struct
* AttemptAddFizzinessEvent too
* move SolutionTransfer to shared and predict as much as possible
* fully move OpenableSystem to shared now that SolutionTransfer is
* fix imports for everything
* doc for solution transfer system
* trolling
* add scoopable system
* make ash and foam scoopable
* untroll
* untroll real
* make clickable it work
* troll
* the scooping room
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* stealthy hypo
* ExaminableSolution hand check when in covert implement.
ExaminableSolution now has 'hidden' datafield to enable chemical inspection only in hand.
* cleaning code
* more cleaning
* Hidden datafield renamed to HeldOnly
* review
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Hyposprays Draw from Jugs
* Fix last onlyMobs usage in yml
* Some Suggested Changes
* Remove unnecessary datafield name declarations
* Remove unnecessary dirtying of component
* Same line parentheses
* Added client-side HypospraySystem
* Cache UI values and only updates if values change
* empty line
* Update label
* Label change
* Reimplement ReactionMixerSystem
* Remove DataField from Hypospray Toggle Mode
* Change ToggleMode from enum to Bool OnlyAffectsMobs
* Add DataField required back since it's required for replays...?
* update EligibleEntity and uses of it
* Add user argument back
* Adds newline
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Guard for dirty entity
* Adds summary tag
---------
Co-authored-by: Plykiya <plykiya@protonmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Remove unnecessary datafield names, syringes with stuff in them start in inject mode
* No trash tag
* Remove ViewVariables since DataField has them implicitly
* Revert "No trash tag"
This reverts commit 2c42172653d2cc70d58bd5bedf61a880b939bf20.
* Get rid of tags entirely for PrefilledSyringes
---------
Co-authored-by: Plykiya <plykiya@protonmail.com>
* refactor ops
* inherit dna and fiber when fish hydrated
* :trollface:
* kid named finger
* :trollface:
* move rehydrating to shared :trollface:
* nobody noticed the popup being missing all this time
* method ops
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
* Add test for two chemistry issues
1. rounding issue with reaction processing when making chloral hydrate
2. reliable assert trip due to the ValidateSolution() heat capacity issue.
* Fix FixedPoint2 arithmetic
Fix internal floating point arithmetic in places where it could be avoided.
Fix incorrect rounding mode used in other places (it should always floor, like regular int arithmetic).
I had to add an explicit epsilon value for float -> FixedPoint2 because something like 1.05 is actually like 1.04999 and that'd cause it to be rounded down to 1.04.
This fixes reaction reagent processing in cases where the reagent inputs can't cleanly divide. Previously, when making 30u chloral hydrate by adding the chlorine in 10u increments you'd end up with 0.04 chlorine left over. This was caused by division in the reaction code rounding up in some cases. Changing division here to always round down fixes it.
* Attempt to fix heat capacity precision assert issues.
Fixes#22126
First, we just increase the tolerance of the assert. It was way too low.
Second, actually put a cap on float drift from one-off _heatCapacity changes.
* Fix float -> FixedPoint2 epsilon for negative number, fix tests.
* Fix DamageableTest
* Oh yeah I need to call CleanReturnAsync
* move stuff to server and some refactoring
* update spikables to not use triggering
* add Delete bool just incase
* a new egg
* mom can we have webedit. no, we have webedit at home
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>