Commit Graph

88 Commits

Author SHA1 Message Date
metalgearsloth
a89d4c750b Power stuff (#31314)
* 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
2024-08-25 22:18:42 +10:00
SlamBamActionman
49dd17dcab Fix reagents with ReagentData being duplicated (#30983)
Initial commit
2024-08-16 12:47:53 +02:00
SlamBamActionman
07174d0aaf Better DNA forensics & ReagentData (#26699)
* 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
2024-08-09 09:27:27 +10:00
Brandon Hu
9bb9e80ede tweak(SolutionTransfer): Raise default max transfer amount. (#29969)
* 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@ @!
2024-08-06 00:59:51 +02:00
Tayrtahn
ed4ae1628c Add "fill levels" to spear in-hand/wielded/equipped sprites (#28865)
* Add fill level sprite support for equipped items

* Add fill sprites for held/equipped spears
2024-08-02 17:18:59 +10:00
osjarw
aa886ca494 Make NeedHand modifiable for injectorSystem (#29870)
* Get needhand from yml

* MovementThreshold modifiable + inheritdoc
2024-07-24 12:26:52 -07:00
osjarw
d8433a8f86 Make delay incurred from additional syringe contents modifiable + tiny syringe buff/fix (#29825)
* Make delay incurred by transfer amount modifiable

* No unintentional negative delay please

* Use more fixedpoint, hope I didn't break anything

* merge review suggestion

Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>

---------

Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
2024-07-22 03:20:36 -07:00
Winkarst-cpu
ee59ae91ec Custom solution transfer volume popup and item status panel fix (#29852)
* Fix for custom solution transfer volume

* Dirty call to prevent issues

* Another fix, git issue

---------

Co-authored-by: Winkarst-cpu <Winkarst@users.noreply.github.com>
2024-07-10 12:32:30 +02:00
Tayrtahn
880fef507d Replace BlockSolutionAccessComponent with an attempt event (#26988)
* 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.
2024-06-21 13:04:02 +10:00
Ed
91028a5149 remove Injector SolutionName constant (#27493)
remove stupid constant
2024-04-29 17:29:15 -04:00
Verm
089c9cb967 You can bless more containers with a bible (#26526)
* 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
2024-04-20 16:16:55 +10:00
Nemanja
a47c5561a9 add fuel costs back to finishing welding (#27030)
* add fuel costs back to welding

* ack

* meh

* eek!
2024-04-19 19:20:30 -04:00
deltanedas
1db178b632 scoopable ash and foam, solution transfer prediction (#25832)
* 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>
2024-04-01 17:27:39 +11:00
Plykiya
90a880a9be Fix: Prevent single-use hyposprays from getting the toggle draw verb (#26595)
Prevent single-use hyposprays from getting the toggle draw verb

Co-authored-by: Plykiya <plykiya@protonmail.com>
2024-03-31 16:20:48 +11:00
drteaspoon420
4e618e9387 Fix 'Hypopen shouldn't display solution examine text' (#26453)
* 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>
2024-03-31 15:59:36 +11:00
Tayrtahn
1b94e01563 Prevent storing liquids in equipped buckets (#24412)
* Block access to solutions in equipped spillables.

* Stop Drink verb appearing if the solution can't be accessed.
2024-03-31 15:40:22 +11:00
Plykiya
f192d7901f Hyposprays Draw from Jugs (#25544)
* 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>
2024-03-30 14:59:16 +11:00
veprolet
ad6ac73f6f Cycle injector transfer amount on alt. use (#25566)
* Add toggle verb for injector transfer amount

* Fix injector verb priority scalability

---------

Co-authored-by: veprolet <>
2024-03-13 21:00:45 +11:00
Plykiya
5cb48c922f Syringes that spawn with content start in inject mode (#25881)
* 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>
2024-03-09 11:19:03 +01:00
deltanedas
550612a37f fishops nerf real (#25148)
* 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>
2024-03-05 14:13:50 +11:00
Pieter-Jan Briers
e00f74505c Use new ComponentPauseGenerator (#25183)
Also includes some (non critical) changes to the solution file to re-organize the Roslyn components.
2024-02-26 14:36:19 +11:00
Pieter-Jan Briers
33611b7094 Solution precision fixes (#25199)
* 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
2024-02-16 16:54:27 -07:00
Pieter-Jan Briers
6d8be538c9 Predict Injector (syringes), cleanup (#25235)
At least the mode/transfer amount logic. Actual transfer logic needs Bloodstream which I didn't wanna move into shared.
2024-02-14 16:05:01 -07:00
deltanedas
55dbe26019 predict egg cracking + refactor (#25028)
* 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>
2024-02-08 17:24:24 +11:00
themias
bd100344a2 Add inhand fill visuals (#24495)
* Add inhand fill visuals

* oops

* remove unused import
2024-01-28 20:38:06 -05:00
Nemanja
0e45c63d22 Fix chem sources in guidebook (#23987)
* Fix chem sources in guidebook

* shabooya
2024-01-13 18:16:47 +11:00
Skye
fbe72c848a ChemMaster buffer preserves list ordering (#23352)
ChemMaster now maintains list order on reagent removal
2024-01-02 10:51:21 -05:00
TemporalOroboros
d23c8d5c19 Revert 'Revert 'Solution Entities'' (#23168) 2023-12-29 08:47:43 -04:00
Emisse
938d6d9945 Revert "Solution Entities" (#23160)
Revert "Solution Entities (#21916)"

This reverts commit d75e743dd7.
2023-12-28 20:45:42 -07:00
TemporalOroboros
d75e743dd7 Solution Entities (#21916)
* Creates Content.Shared.Chemistry.Solutions
Copies Solution class to new namespace
Obsoletes old Solution class

* Switches over to the Solutions.Solution Solution

* Creates Content.Shared.Chemistry.Containers
Copies relevant components/systems to the new namespace
Obsoletes old versions

* Switches over to the Containers.XYZ namespace

* Creates SolutionSystem and obsoletes old SolutionContainerSystem methods

* Start using SolutionSystem for Solution manipulation

* EnumerateSolutions

* Move TryGetMixableSolution

* Move EnsureSolution to Server

* Create Solution Entities

* Stop using obsolete solution system methods

* Fix prototype component tests

* Add using ..Audio.Systems; back

* Wrap solution container slots in ContainerSlots

* Actually add the slot to the solution container map

* Dirty SolutionContainerComponent when ensuring solutions

* Revert namespace changes

* Remerge SolutionSystem and SolutionContainerSystem

* SolutionContainerManagerComponent refactor

* Avoid wrapping necessary code in DebugTools.Assert as it is removed when compiling for release

* Readd examine reagent sorting

* Fix errors

* Poke tests

* Fix solution names not being applied

* Fix WoolyComponent including statement

* Fix merge skew

* Fix compile errors

* Make reactions use solntities

* Reindent solution class namespace

* Field attribute changes

* AutoGenerateComponentState for SolutionContainerComponent

* SolutionContainerComponent -> ContainedSolutionComponent

* ref ReactionAttemptEvent

* Denetwork preinit solutions

* Misc 1

* Nullable TryGetSolution out vars

* Cache associated solutions

* Fix merge skew

* Use explicit regions in SharedSolutionContainerSystem.Capabilities

* Add debug assert

* Use explicit regions in SharedSolutionContainerSystem.Relay + ref SolutionContainerChangedEvent

* ContainedSolutionComponent.Name -> ContainedSolutionComponent.ContainerName

* SolutionComponent doc comments

* Implicit DataField names and property purge

* ReagentEffect DataField names

* Local variables for readability

* Sort using statements + Entity<T> event handlers

* Fix compile erros

* Fix compile errors

---------

Co-authored-by: ElectroJr <leonsfriedrich@gmail.com>
2023-12-28 17:58:14 -08:00
Leon Friedrich
cf98300ba2 Fix rotation visuals desync & appearance state spam (#23016)
* Fix rotation visuals desync

* :bucklemeup:

* A
2023-12-26 16:32:25 -07:00
Nemanja
2455980090 Electrolysis and Centrifuge (#22517)
* electrolysis and centrifuge

* sprote

* final

* bomp!

* COUGH COUGH SPROTE

* boarsd
2023-12-15 02:52:46 -07:00
Leon Friedrich
c9e2a91f13 Fix ghost FOV bug (#21614) 2023-11-13 05:36:00 +11:00
Psychpsyo
6a18bdc023 Soapy Water & Edible Soap (#20364)
* soap reagent and soapy water

* make soapy water recognizable

* Fix tile cleaning bug

CleanDecalsReaction was able to take more than the reactVolume it was given.

* make soapy water an evaporating reagent

* Tile reactions when mopping

* Fix indescribably soap flavor

* Adjust soap flavours

Soap and soapy water now taste clean and syndie soap tastes like punishment.

* Better soap numbers & DeleteOnSolutionEmpty

* Changed TrashOnEmpty to TrashOnSolutionEmpty

* Last TrashOnSolutionEmpty change

* Fix merged code not compiling

* Requested changes.
2023-10-31 13:39:12 -07:00
Nemanja
0670b56205 A return to foam (foam rework) (#20831) 2023-10-27 13:52:11 +11:00
TemporalOroboros
0775ab6a14 Moves SolutionContainerManagerComponent to Shared. (#20944) 2023-10-15 03:45:28 +11:00
DrSmugleaf
a44fa86b68 Update trivial components to use auto comp states (#20539) 2023-09-28 16:20:29 -07:00
Leon Friedrich
e4ca6f4fb9 Allow solutions to store extra reagent data (#19323) 2023-09-05 07:55:10 +10:00
TNE
52ef8f9b70 Allow drag-and-drop insertion of reagents into the ChemMaster (#19796)
* Add DumpableSolutionComponent

Separates out the component from "DrainComponent" that allows one to drag a bucket/any reagent container onto a drain/sink/toilet to empty it and allows other reagent containers to reuse the code effortlessly.

* Give the ChemMaster 4000 the DumpableSolution Component

Allows drag and dropping solutions into the ChemMaster much like you used to be able to do exclusively with drains. This also allows dumping jugs into them.
2023-09-04 15:53:13 +03:00
DrSmugleaf
a88e747a0b Refactor serialization copying to use source generators (#19412) 2023-08-22 18:14:33 -07:00
MisterMecky
1b4d4f8c35 Add chemical scanning goggles (#18373)
* add chemical scanning goggles

* add prototype and textures

* .ftl stuff

* add lathe, recipe, research stuff

* missing description

* emo review

* remove static method + newlines

---------

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
2023-08-01 15:57:22 -04:00
Leon Friedrich
385b587cfc Validate prototype ids in c# fields (#18224) 2023-07-30 03:34:51 +10:00
metalgearsloth
fbf1d476f2 Component ECS (#17991) 2023-07-13 20:20:46 +10:00
Leon Friedrich
0c4002bbd3 Make Reactions conserve thermal energy (#16190) 2023-05-13 13:10:32 +10:00
Leon Friedrich
a372daadb2 Remove server-side sprite references from chem master (#15888)
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2023-04-29 19:27:14 +10:00
EnDecc
0f90548600 Advanced Mop is now More Advanced + SolutionPurge Component (#15532)
Co-authored-by: Arimah <arimah42@gmail.com>
2023-04-23 20:17:21 +10:00
metalgearsloth
317a4013eb Puddles & spreader refactor (#15191) 2023-04-10 15:37:03 +10:00
Leon Friedrich
3dbd581382 Fix MovespeedModifierMetabolism state handling (#15084) 2023-04-03 13:31:00 +10:00
Leon Friedrich
19277a2276 More DoAfter Changes (#14609)
* DoAfters

* Compact Clone()

* Fix mice and cuffables

* Try generalize attempt events

* moves climbabledoafter event to shared, fixes issue with climbable target

* Fix merge (cuffing)

* Make all events netserializable

* handful of doafter events moved

* moves the rest of the events to their respective shared folders

* Changes all mentions of server doafter to shared

* stop stripping cancellation

* fix merge errors

* draw paused doafters

* handle unpausing

* missing netserializable ref

* removes break on stun reference

* removes cuffing state reference

* Fix tools

* Fix door prying.

* Fix construction

* Fix dumping

* Fix wielding assert

* fix rev

* Fix test

* more test fixes

---------

Co-authored-by: keronshb <keronshb@live.com>
2023-04-02 21:13:48 -04:00
keronshb
ec739c24da DoAfter Refactor Fixes (#14278)
* Doafterfixes

* Injector blocker
2023-02-25 23:33:06 -06:00