Delta-v/Content.Server/GameObjects/Components
Pieter-Jan Briers c40ac26ced
A big hecking chemistry-related refactor. (#3055)
* A big hecking chemistry-related refactor.

Changed SolutionContainerCaps. It now describes "stock" behavior for interacting with solutions that is pre-implemented by SolutionContainerComponent. As such things like syringes do not check it anymore (on themselves) to see "can we remove reagent from ourselves". That's assumed by it... being a syringe.

SolutionContainerCaps now has different flags more accurately describing possible reagent interaction behaviors.

ISolutionInteractionsComponent is the interface that describes the common behaviors like "what happens when injected with a syringe". This is implemented by SolutionContainerComponent but could be implemented by other classes. One notable example that drove me to making this interface was the /vg/station circuit imprinter which splits reagent poured in into its two reservoir beakers. Having this interface allows us to do this "proxying" behavior hack-free. (the hacks in /vg/ code were somewhat dirty...).

PourableComponent has been replaced SolutionTransferComponent. It now describes both give-and-take behavior for the common reagent containers. This is in line with /vg/'s /obj/item/weapon/reagent_containers architecture. "Taking" in this context is ONLY from reagent tanks like fuel tanks.

Oh, should I mention that fuel tanks and such have a proper component now? They do.

Because of this behavioral change, reagent tanks DO NOT have Pourable anymore. Removing from reagent tanks is now in the hands of the item used on them. Welders and fire extinguishers now have code for removing from them. This sounds bad at first but remember that all have quite unique behavior related to this: Welders cause explosions if lit and can ONLY be fueled at fuel tanks. Extinguishers can be filled at any tank, etc... The code for this is also simpler due to ISolutionInteractionsComponent now so...

IAfterInteract now works like IInteractUsing with the Priority levels and "return true to block further handlers" behavior. This was necessary to make extinguishers prioritize taking from tanks over spraying.

Explicitly coded interactions like welders refueling also means they refuse instantly to full now, which they didn't before. And it plays the sound. Etc...

Probably more stuff I'm forgetting.

* Review improvements.
2021-02-04 00:05:31 +11:00
..
AI Nanotransen > Nanotrasen 2020-12-05 21:48:11 +01:00
Access Fixed some map saving bugs with ID cards/PDAs. 2021-01-15 17:20:02 +01:00
ActionBlocking A big hecking chemistry-related refactor. (#3055) 2021-02-04 00:05:31 +11:00
Actor Traitor (#2566) 2020-12-01 17:05:19 +01:00
Arcade fixes blockgamearcadecomponent runtime 2021-01-11 10:59:19 +01:00
Atmos A big hecking chemistry-related refactor. (#3055) 2021-02-04 00:05:31 +11:00
BarSign Replaces PowerReceiver's C# event with a ComponentMessage (#2888) 2021-01-03 16:13:01 +01:00
Body A big hecking chemistry-related refactor. (#3055) 2021-02-04 00:05:31 +11:00
Botany A big hecking chemistry-related refactor. (#3055) 2021-02-04 00:05:31 +11:00
Buckle Drag changes (#2487) 2021-01-11 22:14:01 +11:00
Cargo Refactors the CargoOrderDataManager into the CargoConsoleSystem (#2858) 2021-01-08 21:11:09 -08:00
Chemistry A big hecking chemistry-related refactor. (#3055) 2021-02-04 00:05:31 +11:00
Command Shuttle called/recalled announcements and sounds. 2021-01-01 16:34:54 +01:00
Construction Add ActionBlockerExtensions 2020-12-20 04:26:21 +01:00
ContainerExt Objectives (#2459) 2020-11-22 18:38:07 +11:00
Conveyor Replaces PowerReceiver's C# event with a ComponentMessage (#2888) 2021-01-03 16:13:01 +01:00
Culinary A big hecking chemistry-related refactor. (#3055) 2021-02-04 00:05:31 +11:00
Damage Drinking glasses now break. 2020-12-21 13:22:16 +01:00
Destructible Basic gibbing (#2973) 2021-01-10 20:12:34 +01:00
Disposal Drag changes (#2487) 2021-01-11 22:14:01 +11:00
Doors Replaces PowerReceiver's C# event with a ComponentMessage (#2888) 2021-01-03 16:13:01 +01:00
Explosion Clusterbang (#2712) 2021-01-18 21:16:34 +11:00
Fluids A big hecking chemistry-related refactor. (#3055) 2021-02-04 00:05:31 +11:00
GUI Console Unify API Changes (#3059) 2021-02-01 16:49:43 -08:00
Gravity Damage rework (#2525) 2020-12-07 14:52:55 +01:00
Headset Use 'new' expression in places where the type is evident for content (#2590) 2020-11-27 21:00:49 +11:00
Instruments Add ActionBlockerExtensions 2020-12-20 04:26:21 +01:00
Interactable A big hecking chemistry-related refactor. (#3055) 2021-02-04 00:05:31 +11:00
Items A big hecking chemistry-related refactor. (#3055) 2021-02-04 00:05:31 +11:00
Kitchen A big hecking chemistry-related refactor. (#3055) 2021-02-04 00:05:31 +11:00
MachineLinking Add ActionBlockerExtensions 2020-12-20 04:26:21 +01:00
Markers Updated serializer data fields (#2702) 2020-12-04 11:06:53 +01:00
Medical A big hecking chemistry-related refactor. (#3055) 2021-02-04 00:05:31 +11:00
Metabolism You now stop breathing while in crit. 2021-01-24 16:38:01 +01:00
Mining Typo, redundant string interpolation, namespaces and imports cleanup (#2068) 2020-09-13 14:23:52 +02:00
Mobs Get rid of the OverlayEffectsComponent stuff (#3010) 2021-01-24 19:17:45 +11:00
Morgue Added suicide for Crematorium and Recycler, soft fixed Recycled gibbing (#2610) 2021-01-14 18:57:24 +11:00
Movement Drag changes (#2487) 2021-01-11 22:14:01 +11:00
NodeContainer More power nullability (#3070) 2021-02-02 12:20:24 +01:00
Nutrition A big hecking chemistry-related refactor. (#3055) 2021-02-04 00:05:31 +11:00
Observer Makes accept cloning message use Eui (#2910) 2021-01-03 17:20:17 +01:00
PA Replaces AnchoredChanged C# event with ComponentMessage (#2905) 2021-01-05 15:32:59 +11:00
PDA Fixed some map saving bugs with ID cards/PDAs. 2021-01-15 17:20:02 +01:00
Paper Mortician's Menagerie (#2391) 2020-10-28 23:51:43 +01:00
Pointing Make ExplosionHelper methods extensions (#2373) 2020-10-25 12:11:23 +01:00
Portal A big hecking chemistry-related refactor. (#3055) 2021-02-04 00:05:31 +11:00
Power A big hecking chemistry-related refactor. (#3055) 2021-02-04 00:05:31 +11:00
Projectiles Clusterbang (#2712) 2021-01-18 21:16:34 +11:00
Pulling Migrate pulling logic into SharedPullableComponent from PullController (#2627) 2020-11-27 00:48:10 +11:00
Radio Use 'new' expression in places where the type is evident for content (#2590) 2020-11-27 21:00:49 +11:00
Recycling Added suicide for Crematorium and Recycler, soft fixed Recycled gibbing (#2610) 2021-01-14 18:57:24 +11:00
Research Tweaks volume of material per sheet in lathes. (#2852) 2020-12-27 19:22:50 +11:00
Rotatable Add ActionBlockerExtensions 2020-12-20 04:26:21 +01:00
Singularity Stop singularity from pulling ghosts, stop singularity from leaving the pull controller attached (#3021) 2021-01-19 17:35:44 +11:00
Sound Adds a semitone shifting AudioHelper (#2608) 2020-11-25 21:23:03 +11:00
Stack Fix server exception on emptying a StackComponent.cs. 2021-01-11 09:57:59 +01:00
StationEvents Refactors radiation (#2009) 2020-09-21 01:49:40 +02:00
Strap Buckle/Unbuckle icons (#3014) 2021-01-17 15:41:52 +01:00
Suspicion Clean up a ton of bugs with suspicion. 2021-01-04 09:18:28 +01:00
Tag Add tag component and test (#2761) 2021-02-02 12:11:04 +11:00
Temperature Alerts System and UI (#2529) 2020-11-10 15:22:19 +11:00
Timing Expose UseDelay to ViewVars (#2609) 2020-11-23 02:00:06 +11:00
TraitorDeathMatch Traitor Deathmatch (#2719) 2020-12-13 16:00:49 +01:00
Trigger/TimerTrigger Clusterbang (#2712) 2021-01-18 21:16:34 +11:00
VendingMachines Replaces PowerReceiver's C# event with a ComponentMessage (#2888) 2021-01-03 16:13:01 +01:00
Watercloset Toilet (#3012) 2021-01-20 18:02:34 +11:00
Weapon A big hecking chemistry-related refactor. (#3055) 2021-02-04 00:05:31 +11:00
AnchorableComponent.cs Replace MaybeNullWhen(false) with NotNullWhen(true) 2020-12-20 04:14:41 +01:00
AtmosPlaqueComponent.cs Fix some build warnings (#2226) 2020-10-11 16:42:53 +02:00
CleanableComponent.cs Crayons (#2132) 2020-10-13 13:40:05 +02:00
ComputerComponent.cs Replaces PowerReceiver's C# event with a ComponentMessage (#2888) 2021-01-03 16:13:01 +01:00
ConfigurationComponent.cs Use 'new' expression in places where the type is evident for content (#2590) 2020-11-27 21:00:49 +11:00
CrayonComponent.cs A big hecking chemistry-related refactor. (#3055) 2021-02-04 00:05:31 +11:00
DoAfterComponent.cs Use 'new' expression in places where the type is evident for content (#2590) 2020-11-27 21:00:49 +11:00
ExtinguisherCabinetComponent.cs Replace every usage of GridCoordinates with EntityCoordinates (#2021) 2020-09-06 16:11:53 +02:00
ExtinguisherCabinetFilledComponent.cs Typo, redundant string interpolation, namespaces and imports cleanup (#2068) 2020-09-13 14:23:52 +02:00
LightBehaviourComponent.cs Typo, redundant string interpolation, namespaces and imports cleanup (#2068) 2020-09-13 14:23:52 +02:00
MagbootsComponent.cs Implement magboots. (#2988) 2021-01-11 19:24:09 +01:00
MagicMirrorComponent.cs Toggles for handheld interactables. (#2049) 2020-09-13 14:03:22 +02:00
PlaceableSurfaceComponent.cs Add PlaceCentered bool to PlaceableSurfaceComponent (#2771) 2021-01-10 23:07:33 +11:00
PottedPlantHideComponent.cs Toilet (#3012) 2021-01-20 18:02:34 +11:00
RandomPottedPlantComponent.cs add complete strings that aren't defined in content files to allow them to be mapped (#1105) 2020-06-12 04:15:10 +02:00
RandomSpriteColorComponent.cs Commit (#1541) 2020-07-30 03:22:26 +02:00
RandomSpriteStateComponent.cs Prettier window breaking (#2368) 2020-10-29 20:42:11 +01:00
StressTestMovementComponent.cs Adds movement stress test component. 2020-06-30 18:34:42 +02:00
WindowComponent.cs update UpdateVisuals to use Destructible thresholds (#3051) 2021-02-01 17:22:50 +01:00
WiresComponent.cs Use 'new' expression in places where the type is evident for content (#2590) 2020-11-27 21:00:49 +11:00