* Cleanup species prototypes a bit
Skeletons were very stale because they didn't inherit from mobhuman but now they should have similar components as every other species.
I also added a generic abstract base species to make custom species easier (where they may not want to have humans COUGH VILOUS).
* a
* drugs
* gonflicts
* no more conflicts I beg
* some work
* equip: done
unequip: todo
* unequipping done & refactored events
* workin
* movin
* reee namespaces
* stun
* mobstate
* fixes
* some work on events
* removes serverside itemcomp & misc fixes
* work
* smol merge fix
* ports template to prototype & finishes ui
* moves relay & adds containerenumerator
* actions & cuffs
* my god what is actioncode
* more fixes
* im loosing my grasp on reality
* more fixes
* more work
* explosions
* yes
* more work
* more fixes
* merge master & misc fixed because i forgot to commit before merging master
* more fixes
* fixes
* moar
* more work
* moar fixes
* suffixmap
* more work on client
* motivation low
* no. no containers
* mirroring client to server
* fixes
* move serverinvcomp
* serverinventorycomponent is dead
* gaming
* only strippable & ai left...
* only ai and richtext left
* fixes ai
* fixes
* fixes sprite layers
* more fixes
* resolves optional
* yes
* stable™️
* fixes
* moar fixes
* moar
* fix some tests
* lmao
* no comment
* good to merge™️
* fixes build but for real
* adresses some reviews
* adresses some more reviews
* nullables, yo
* fixes lobbyscreen
* timid refactor to differentiate actor & target
* adresses more reviews
* more
* my god what a mess
* removed the rest of duplicates
* removed duplicate slotflags and renamed shoes to feet
* removes another unused one
* yes
* fixes lobby & makes tryunequip return unequipped item
* fixes
* some funny renames
* fixes
* misc improvements to attemptevents
* fixes
* merge fixes
Co-authored-by: Paul Ritter <ritter.paul1@gmail.com>
* Add test pooling
* WIP test pooling changes
* Fix Destructible tests
* Don't pool unpooled or dummy ticker instances
* Change ServerPathfindingDebugSystem to replace existing entries
* Fix SaveLoadSaveTest comment
* Don't pool StartTest
* Comment out global setup
* Fix puddle tests
* Move SolarPanelComponent initialize to PowerSolarSystem OnMapInit
* Update RobustToolbox
* Finish fixing tests, make test threads background threads
* Bring back pooling
* Fix nullable
* Update RobustToolbox
* Set cvars on server return
* Un-pool tests with custom cvars
* Update RobustToolbox
* Update RobustToolbox
* Change where the main tile coordinates are
* Remove DisposalUnitTest grid check
* Fix test pooling being a fickle bitch
* Fix EntitySystemExtensionsTest
* Update RobustToolbox
* Update RobustToolbox
* Make nullable pool settings true
* Update RobustToolbox
* Wait other way around
* We are unitystation now
* Update RobustToolbox
* Create global setup
* Pool some more tests
* Fix not properly disconnecting clients before restarting the round
* Give more info on ran tests
* Standardize default test cvars
* Update RobustToolbox
* Update RobustToolbox
* Pool clients
* Fix test order issue
* Fix cvars in character creation test not being set properly
* Update RobustToolbox
* Update RobustToolbox
* Rider shut
* Update RobustToolbox
* Format tests ran better
* Update RobustToolbox
* Reset RobustToolbox
* Reset RobustToolbox harder
* Fix one instance of test order causing destructible tests to fail
* HandsGuiState
* Gui state setting methods
* code cleanup
* Removes TryGetHands
* ClientHand
* Gui Hands
* Refactor WIP 1
* Hand index
* refactors 2
* wip 3
* wip 4
* wiip 4
* wip 5
* wip 6
* wip 7
* wip 8
* wip 9
* wip 11
* Hand ui mostly looks fine
* hands gui cleanup 1
* cleanup 2
* wip 13
* hand enabled
* stuff
* Hands gui gap fix
* onpressed test
* hand gui buttons events work
* bag activation works
* fix item use
* todo comment
* hands activate fix
* Moves Client Hands back to using strings to identify active hand
* fixes action hand highlighting
* diff fix
* serverhand
* SharedHand
* SharedHand, IReadOnlyHand
* Client Hands only stores SharedHand
* cleanup server hands
* server hand container shutdown
* misc renames, refactors of serverhand
* stuff 1
* stuff 3
* server hand refactor 1
* Undo API changes to remove massive diff
* More API name fixes
* server hands cleanup 2
* cleanup 3
* dropping cleanup
* Cleanup 4
* MoveItemFromHand
* Stuff
* region sorting
* Hand Putter methods cleanup
* stuff 2
* Merges all of serverhand and clienthand into sharedhand
* Other hands systems, hack to make inhands update (gui state set every frame, visualzier updated every frame)
* GetFinalDropCoordinates cleanup
* SwapHands cleanup
* Moves server hands code to shared hands
* Fixed hand selected and deselected
* Naming fixes
* Server hands system cleanup
* Hands privacy fixes
* Client hand updates when containers are modified
* HeldItemVisualizer
* Fixes hand gui item status panel
* method name fix
* Swap hands prediction
* Dropping prediction
* Fixes pickup entity animation
* Fixes HeldItemsVisualizer
* moves item pickup to shared
* PR cleanup
* fixes hand enabling/disabling
* build fix
* Conflict fixes
* Fixes pickup animation
* Uses component directed message subscriptions
* event unsubscriptions in hand system
* unsubscribe fix
* CanInsertEntityIntoHand checks if hand is enabled
* Moving items from one hand to another checks if the hands can pick up and drop
* Fixes stop pulling not re-enabling hand
* Fixes pickup animation for entities containers on the floor
* Fixes using held items
* Fixes multiple hands guis appearing
* test fix
* removes obsolete system sunsubscribes
* Checks IsFirstTimePredicted before playing drop animation
* fixes hand item deleted crash
* Uses Get to get other system
* Replaces AppearanceComponent with SharedAppearanceComponent
* Replaces EnsureComponent with TryGetComponent
* Improves event class names
* Moves property up to top of class
* Moves code for determining the hand visualizer rsi state into the visualizer instead of being determined on hand component
* Eventbus todo comment
* Yaml fix for changed visualizer name
* Makes HandsVisuals a byte
* Removes state from HandsVisualizer
* Fixes hand using interaction method name
* Namespace changes fixes
* Fix for changed hand interaction method
* missing }
* conflict build fix
* Moves cleint HandsSystem to correct folder
* Moved namespace fix for interaction test
* Moves Handsvisualizer ot correct folder
* Moves SharedHandsSystem to correct folder
* Fixes errors from moving namespace of hand systems
* Fixes PDA component changes
* Fixes ActionsComponent diff
* Fixes inventory component diff
* fixes null ref
* Replaces obsolete Loc.GetString usage with fluent translations
* Fluent for hands disarming
* SwapHands and Drop user input specify to the server which hand
* Pickup animation WorldPosiiton todo
* Cleans up hands gui subscription handling
* Fixes change in ActionBlockerSystem access
* Namespace references fixes
* HandsComponent PlayerAttached/Detached messages are handled through eventbus
* Fixes GasCanisterSystem drop method usage
* Fix gameticker equipping method at new location
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Initial
* Cleanup a bunch of things
* some changes dunno
* RequireAnchored
* a
* stuff
* more work
* Lots of progress
* delete pipe visualizer
* a
* b
* pipenet and pipenode cleanup
* Fixes
* Adds GasValve
* Adds GasMiner
* Fix stuff, maybe?
* More fixes
* Ignored components on the client
* Adds thermomachine behavior, change a bunch of stuff
* Remove Anchored
* some work, but it's shitcode
* significantly more ECS
* ECS AtmosDevices
* Cleanup
* fix appearance
* when the pipe direction is sus
* Gas tanks and canisters
* pipe anchoring and stuff
* coding is my passion
* Unsafe pipes take longer to unanchor
* turns out we're no longer using eris canisters
* Gas canister inserted tank appearance, improvements
* Work on a bunch of appearances
* Scrubber appearance
* Reorganize AtmosphereSystem.Piping into a bunch of different systems
* Appearance for vent/scrubber/pump turns off when leaving atmosphere
* ThermoMachine appearance
* Cleanup gas tanks
* Remove passive gate unused imports
* remove old canister UI functionality
* PipeNode environment air, make everything use AssumeAir instead of merging manually
* a
* Reorganize atmos to follow new structure
* ?????
* Canister UI, restructure client
* Restructure shared
* Fix build tho
* listen, at least the canister UI works entirely...
* fix build : )
* Atmos device prototypes have names and descriptions
* gas canister ui slider doesn't jitter
* trinary prototypes
* sprite for miners
* ignore components
* fix YAML
* Fix port system doing useless thing
* Fix build
* fix thinking moment
* fix build again because
* canister direction
* pipenode is a word
* GasTank Air will throw on invalid states
* fix build....
* Unhardcode volume pump thresholds
* Volume pump and filter take time into account
* Rename Join/Leave atmosphere events to AtmosDeviceEnabled/Disabled Event
* Gas tank node volume is set by initial mixtuer
* I love node container
* Rename and clean up interaction events
* Fix hand equip events
* Refactor duplicate client input validation
* Rename Use handler
* Move unneeded InRangeUnobstructed methods to extensions only
* Clean up UseInteractions
* Clean up ActivateItemInWorld
* Replace explicit range check with InRangeUnobstructed
Remove TransformComponent check, since transform is guaranteed now.
* Revert transform check removal
* More cleanup
* Reorder interaction checks
* Rename attack eventargs to interact
* Test V1
* Add interaction test
* Fix interaction test
* Fix container interaction test
* Rename interaction methods
* Rename player to user and attacked to target
* Clean up InteractAfter
* Clean up InRangeUnobstructed usages
* Rename attack to interact and weapon to used
* Changed can't reach message to only play when holding something
Cleaned up bracket formatting
* Fix Airtight validation check
* Remove extra words in comments
* Fix FaceClick rotation
* Move duplicate map check and face to method
* Fix test
* Namespace changes for containers.
Moved ContainerSlot from content to engine.
* Merged client/server ContainerManagerComponents into a single shared version.
* Mapfile and nullability fixes.
* Upgrades map.
* Update engine.
* 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
* 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