* Removed obsolete EntitySystemMessage, now everything uses the base EntityEventArgs or the derived HandledEntityEventArgs.
Setup InteractionSystem to use new directed events.
* Update Submodule.
* serv3 in shared pt 1
* beginning of deepclone api
* progress in implementing ideepclone & serv3 in content
* adds target
* its cant hurt you it cant hurt you
* more changes to content.server
* adds dataclasses
* almost there
* renamed & edited entry
* finishes refactoring content to use serv3
* gasmixture runtimes, next: reagentunit
* fucin hell that was an annoying one
* adds flags
* fixes some yaml errors
* removes comment
* fixes generic components for now
* removes todo
actually clones values my god paul
fixes bug involving resolving custom data classes from other proj
renames dataclass
fixes spritecomp
adds WithFormat.Constants support
* adds deepclone to ResistanceSet
* adds a bunch of deepclone implementations
adds a deepclone analyzer (TODO)
adds a deep clone fallback for classes & structs
* fixes a bunch of runtimes
* adds deepclone to entityuid
* adds generator to sln
* gets rid of warnings
* fixes
* argh
* componentdata refactors
* more deepclone impl
* heck me i reworked all of content deepclone
* renames custom dataclasstarget
* misc
* reworks prototypes
* deepclone nuke
* renamed customdataclass attribute
* fixes everything
* misc fixed
* the killcommit
* getting there
* changed yamlfieldattribute namespace
* adds back iselfserialize
* renames everything to data(field/definition)
* ouch
* Fix most errors on content
* Fix more errors in content
* Fix some components
* work on tests
* fixes some customdataclasses
* fuggin shit
* yes
* yeas
* Remove data classes
* Data field naming fixes
* arg
* Git resetti RobustToolbox
* Merge fixes
* General fixes
* Fix startup serialization errors
* Fix DamageContainerPrototype when supported classes or types are null
* Implement construction graph step type serializer
* Fix up construction serialization
* Fix up construction serialization part 2
* Fix null list in technology database component
* Fix body serialization
* Fix entity storage serialization
* Fix actions serialization
* Fix AI serialization
* Fix reaction serialization
* Fix body serialization
* Fix grid atmosphere serialization
* Rename IServ3Manager to ISerializationManager
* Convert every non generic serializer to the new format, general fixes
* Serialization and body system fix
* pushinheritance fix
* Update all prototypes to have a parent and have consistent id/parent properties
* Merge fixes
* smh my head
* cuddling slaps
* Content commit for engine PR
* stuff
* more fixes
* argh
* yes even you are fixed
* changelog fixes
* fixes seeds
* argh
* Test fixes
* Add writing for alert order prototype
* Fix alert order writing
* FIX
* its been alot ok
* Fix the rest of the visualizers
* Fix server alerts component tests
* Fix alert prototype tests not using the read value
* Fix alert prototype tests initializing serialization multiple times
* THIS IS AN AMERICAN CODEBASE GOD BLESS THE USA
* Add ImplicitDataDefinitionForInheritors to IMechanismBehavior
Fixes the behaviors not being found
* Fix NRE in strap component
Good night to the 1 buckle optimization
* Fix clothing component slot flags serialization tag
* Fix body component in all components test
* Merge fixes
* ffs
* Make construction graph prototype use serialization hooks
* human yaml linted
* a
* Do the thing for construction
* stuff
* a
* monke see yaml linter
* LINT HARDER
* Remove redundant todo
* yes
* Add skip hook argument to readers and copiers
* we gamin
* test/datafield fixes
* adds more verbose validation
* moves linter to action
* Improve construction graph step type serializer error message
* Fix ammo box component NRE
* gamin
* some updates to the linter
* yes
* removes that test
* misc fixes
* array fix
priority fix
misc fixes
* adds proper info the validation
* adds alwaysrelevant usa
* Make yaml linter take half as long to run (~50% less)
* Make yaml linter 5 times faster (~80% less execution time)
* based vera being based
* fixes mapsaving
* warning cleanup & moves surpressor
* removes old msbuild targets
* Revert "Make yaml linter 5 times faster (~80% less execution time)"
This reverts commit 3e6091359a26252c3e98828199553de668031c63.
* Add -nowarn to yaml linter run configuration
* Improve yaml linter message feedback
* Make dependencies an argument instead of a property on the serialization manager
* yamllinting slaps
* Clean up type serializers
* Move yaml linter code to its own method
* Fix yaml errors
* Change yaml linter action name and remove -nowarn
* yaml linter please shut
* Git resetti robust toolbox
Co-authored-by: Paul <ritter.paul1+git@googlemail.com>
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
* Engine namespace changes.
* Automated remove redundant using statements.
* Simplified Graphics namespace.
* Apparently the container system stores full type names in the map file.😞 This updates those names.
* API Changes to LocalizationManager.LoadCulture.
* Update submodule to v0.3.2
* 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.
* Async Interface
* Update Content.Server/GameObjects/Components/Fluids/MopComponent.cs
Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>
* Changed the glassbeaker
* Update Content.Shared/Interfaces/GameObjects/Components/Interaction/IAfterInteract.cs
Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>
* Update Content.Shared/Interfaces/GameObjects/Components/Interaction/IAfterInteract.cs
Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>
* Interaction system fix
* Removed I from the interface
* Changed all implementations of the interface I could find
* all public void implementation fixed
* All built, no errors should remain
* Update Resources/Prototypes/Entities/Objects/Specific/chemistry.yml
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Update Content.Server/GameObjects/Components/Portal/TeleporterComponent.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Update Content.Server/GameObjects/Components/ActionBlocking/HandcuffComponent.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Commit based off Sloth's commentary
* Removed the Rag file from the PR
* Reverted sloth's commentary changes on the publcity of the function
* Injector component properly implemented interface
* Update Content.Server/GameObjects/Components/Fluids/MopComponent.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Update Content.Server/GameObjects/Components/Fluids/SprayComponent.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: BlueberryShortcake <rubetskoy234@mail.ru>
Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Add verb to toggle flashlight
* Playing with hand-held light for hard hat
* ClothingEquippedPrefix will update players sprite when changed
* Make abstract prototype for hardhat and fixed hardhat orange sprites
* Fixed all other hard hats
* Fixed requested changes
* Restore prototype and sprites changes
* Nullables
* That's actually nullable
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
Flashlights were calling dirty EVERY TICK so this just means they only call it when absoluetely necessary which saves a lot.
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* Refactor battery/powercell assets and add new ones.
* committing before I fuck things up
* slot component doned I think
* dictionary update
* Fixes
* Moving flashlight to powerslotcomponent
* har har i am using the message tubes
* Better documentation comment
* Reverting this overengineered garbage.
* Off with ye I said
* Examine texts.
* Some minor fixes to IDE complaints
* slot size from yaml
* Ignored component + removing a useless typo entry
* Making stunbatons use this
* Handle the message and remove some unnecessary dirtiness
* actionblocker checks
* remove unused file
* remove updatevisual
* make these nullable
* make these nullable too
* Unrename sprite folder
* check itemcomponent on insertion
* Use SendMessage over Owner.SendMessage
* Add support for auto-recharging batteries, an auto-recharging cell, and make flashlight status update correctly if one is inserted in it.
* get rid of public fields which are Bad
* add a description for the stun baton while i'm in here
* one more public field
* Add the blinky animation to the atomic cell
* Fix the charge indicator being STUPID
* better comments
* this is a better function
* add pause for flashlight, remove unnecessary imports from battery
* potato battery copyright link
* WHO DID THAT
* mr clean has come
* Random pitch
* pausing
* round to nearest levels
* Default grids go poof
* Address review
* Update submodule
* Fix DoAfterSystem for entities without grid.
* Fix SubFloorHideSystem for entities without grid.
* Fix ExplosionHelper for coordinates that aren't in a grid
* Fix TurfHelpers' GetWorldTileBox crash in the case of invalid grid
* Fix tile prying component crash when trying to pry space.
* Spill fixes when passing coordinates without grids.
* Are you static'in, son?
* Change SaveLoadSaveTest grid Id hardcoded value
It's still hardcoded, but at least now it's correct!
* Only send debug AI thing if grid is not invalid
* Update submodule.
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
* Early commit
* Early commit 2
* merging master broke my git
* does anyone even read these
* life is fleeting
* it just works
* this time passing integration tests
* Remove hashset yaml serialization for now
* You got a license for those nullables?
* No examine, no context menu, part and mechanism parenting and visibility
* Fix wrong brain sprite state
* Removing layers was a mistake
* just tear body system a new one and see if it still breathes
* Remove redundant code
* Add that comment back
* Separate damage and body, component states, stomach rework
* Add containers for body parts
* Bring layers back pls
* Fix parts magically changing color
* Reimplement sprite layer visibility
* Fix tests
* Add leg test
* Active legs is gone
Crab rave
* Merge fixes, rename DamageState to CurrentState
* Remove IShowContextMenu and ICanExamine
* Fixed flashlights staying enabled after taking the battery out of them
* Refactored code for flashlights shutting off after the battery is removed
* Fixed casing in makeNoise
* Assets
* LightingBehaviours, flares, and such.
* More changes
* More changes, more flare work.
* More work on flares + light behaviours
* another refactor
* missed
* Light behaviours refactor, added sfx, improved graphics, improved lighting effects for glowstick and flare.
* remove unneeded value
* nullables
* remove old code
* nullable
* one last push
* net id
* more work
* more colors for glowsticks
* Adjust flare so it fades in
* fix name
* sprite fix
* Sort out InRangeUnobstructed and add extension methods
* Rename client RangeChecks to RangeExtensions
* Add container extension methods and test
* Add missing component methods
Component to container
Grid coordinates to container
Map coordinates to container
Local player to container
* Actually use the field
* Merge fixes
* Add popup argument to local player extension methods
* Reduce code repetition for client range extensions
* Add art assets for cloning
* Added a 'Scan DNA' button to the medical scanner
* Made the UI update unconditional for the medical scanner until checks for power changes are in place
* Update Medical scanner to reflect powered status and fix#1774
* added a 'scan dna' button the the medical scanner that will add the contained bodies Uid to a list in CloningSystem, fixed an issue with the menu not populating if the scanner starts in an unpowered state
* Add disabling logic to 'Scan DNA' button on medical scanner
* Removed un-used libraries
* Added playing parameter to radiatingLightComponent, changed it's animation key to radiatingLight
* refactored RadiatingLight into a visualizer
* Added different light animations for differnt power states of a flashlight
* split out the radiating light visualizer into two seperate visualizers
* further refactored and tweaked handheldlight animations
* further lantern light tweaks
* removed un-used attributes in flashlight and lantern prototypes
* fix null check in handheldlightcomponent
* Add test that puts all components on an entity and checks for no exceptions
Also fix all the exceptions that happened because of this
* Add comments to the test
* Fix nullable errors
* Fix more nullable errors
* More nullable error fixes
* Unignore basic actor component
* Fix more nullable errors
* NULLABLE ERROR
* Add string interpolation
* Merge if checks
* Remove redundant pragma warning disable 649
* Address reviews
* Remove null wrappers around TryGetComponent
* Merge conflict fixes
* APC battery component error fix
* Fix power test
* Fix atmos mapgrid usages