* Move entity solution entity systems to shared
* Move SolutionComponents to Server
* Fix namespaces
* Remove Networked Component.
* Fixes
* Add components to ignore list
* ECS and damage Data
* Comments and newlines
* Added Comments
* Make TryChangeDamageEvent immutable
* Remove SetAllDamage event
Use public SetAllDamage function instead
* Undo destructible mistakes
That was some shit code.
* Rename DamageData to DamageSpecifier
And misc small edits
misc
* Cache trigger prototypes.
* Renaming destructible classes & functions
* Revert "Cache trigger prototypes."
This reverts commit 86bae15ba6616884dba75f552dfdfbe2d1fb6586.
* Replace prototypes with prototype IDs.
* Split damage.yml into individual files
* move get/handle component state to system
* Update HealthChange doc
* Make godmode call Dirty() on damageable component
* Add Initialize() to fix damage test
* Make non-static
* uncache resistance set prototype and trim DamageableComponentState
* Remove unnecessary Dirty() calls during initialization
* RemoveTryChangeDamageEvent
* revert Dirty()
* Fix MobState relying on DamageableComponent.Dirty()
* Fix DisposalUnit Tests.
These were previously failing, but because the async was not await-ed, this never raised the exception.
After I fixed MobState component, this exception stopped happening and instead the assertions started being tested & failing
* Disposal test 2: electric boogaloo
* Fix typos/mistakes
also add comments and fix spacing.
* Use Uids instead of IEntity
* fix merge
* Comments, a merge issue, and making some damage ignore resistances
* Extend DamageSpecifier and use it for DamageableComponent
* fix master merge
* Fix Disposal unit test. Again.
Snapgrids were removed in master
* Execute Exectute
* Rename SolutionContainerCaps -> Capability
* Move IExamine event to Chemistry System.
* ECS the ISolutionChange into SolutionChangeEvent
* Unify SolutionContainer into a single shared component
* Replace ISolutionInteraction with SolutionContainerComponent
* Move all methods from SolutionContainer to ChemistrySystem
* Refactor EntitySystem calls to Dependencies
* Refactor SolutionContainer to SolutionManager
* Fix yamls
* Fix test fails
* Fix post merge issues
* Fix various issues with SolutionManager
* More fixes
* Fix more components
* Fix events not being directed
* Fixes for Hypospray
* Separate removal and iteration on Metabolism
* Fix creampie problems
* Address some of sloth's issues
* Refactors for Systems
* Refactored solution location
* Fix tests
* Address more sloth issues
* Fix dependency
* Fix merge conflicts
* Add xmldocs for Capabilities components
* Remove HasSolution/TryGetDefaultSolution and Add/Remove Drainable/Refillable
* Replace Grindable/Juiceable with Extractable
* Refactor field names
* Fix Drainable
* Fix some issues with spillable and injector
* Fix issues with Grinder
* Fix Beaker having duplicate solutions
* Fix foaming
* Address some MGS issues
* Fix Uid issues
* Fix errors in solution Tranfer
* Fixed some extra values constant values
* Cola is drinkable now
* Converted all SnapGridPositionChangedEvent subscriptions to AnchorStateChangedEvent.
* Fixes power tests with new anchored requirements.
* Moved AnchorableComponent into construction.
AnchorableComponent now uses Transform.Anchored.
* Fixed bug with nodes, power works again.
* Adds lifetime stages to Component.
* Update Engine to v0.4.70.
* 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
* Deprecate IActionBlocker in favour of cancellable events
* Bring back old speech/emoting component restrictions
* Rename action blocker listener methods
* Use Entity System public methods instead of extension methods
Co-authored-by: Vera Aguilera Puerto <gradientvera@outlook.com>
* 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>
* Data-driven NPC behaviors
* Nuked AiLogicProcessor
* BehaviorSets are now all stored in yaml (might try making actions also yaml someday)
* Added a test to validate all BehaviorSets
* Might also try pooling actions in the future to reduce allocs but that'll be way down the line (cough physics).
* Forgot to re-add sorting nothing suss
* Remove last references
* Proper vector2i serialization for tile atmos (#3266)
* update map files
* update submodule
Co-authored-by: cyclowns <cyclowns@protonmail.ch>
* Remove weird "S" jumpsuit from existence (#3267)
* Change character names to use datasets prototypes (#3259)
* Remove old name lists in .txts
* Fix tests
* LATEST MASTER TECHNOLOGY
* Converts AdminMenu to partially use XAML (#3231)
* Cleans up Hydroponics content. (#3025)
* Adds to IgnoredComponents.cs
* Jackboots
* Half Done
* Moved to diff PR
* Everything functional
* Fixed Sprays
* Nice
* Fixed
* Update submodule
* Fix tests
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* Stacked sprite visualizer (#3096)
* Add Stack Visualizer
* Add cigarette pack resources
Adds transparent layers for visualizing cigarettes
* Add Bag Open/Close Visualizer
So storage opened in inventory can have different icons when opened
or closed.
* Create a component that only enumerates single item
Used for creating stuff like matchbox, or cigarettes. As a bonus.
It will only update stack visualizer for that particullar item.
* Refactoring stuff
* Fix other usage of stack in Resources
* Add docs
* Apply suggestions from code review
Apply metalgearsloth suggestions
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Applied suggestions from metalgearsloth
* Changed SingleItemStorageComponent to StorageCounterComponent
Difference. New component doesn't spawn items, merely counts them.
* Refactored StackVisualizer
* Fix breakage with master
* Update Resources/Prototypes/Entities/Objects/Consumable/fancy.yml
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Update with MGS suggestions
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* ApcNet updating fix (#3078)
* GridPowerComponent
* ApcNet Powered update bugfix
* PowerTest fix
* Add GridPower to Saltern
* test fix
* Update canceling cleanup
* code cleanup
* nullable & code cleanup for test
* undo power test nullable
* Replaces GridPowerSystem with ApcNetSystem
* build fix
* Update Content.Server/GameObjects/EntitySystems/ApcNetSystem.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Change all XAML to use spacestation14.io namespace (#3277)
* fix pizzaboxes (#3291)
Co-authored-by: cyclowns <cyclowns@protonmail.ch>
* Spikes fix reopened (#3203)
* DoAfter, dead and stun check, DragDropOn
* Not ignored anymore
* Copied comment deleted
* Herbert's an ass
* Woops
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* Make component states dependant on the player getting them (#3280)
* Make component states dependant on the player getting them
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* Updated submodule to v0.3.7.
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
Co-authored-by: Acruid <shatter66@gmail.com>
* Hoe fix (#3296)
* Initial (#3297)
* Sort reagent dispenser entries (#3272)
* Sort reagent dispenser entries
Saves manually doing it.
* zumzum's suggestion
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* Made firelocks damageable & destructible (#3303)
* Move job priority enum parity test ot unit tests (#3300)
* Spill hand contents when dropping them in a fall (#3304)
* Spill hand contents when dropping them due to falling down
* Better approach
* cleanup
* grammar
* stupid
* PauseManager moved to Shared (#3288)
* Namespace changes for moving IPauseManager to shared.
* Namespace changes for moving ITimerManager from Timers to Timing.
* Rebase Fixes.
* Update engine submodule to v0.3.8
* Improves kick, teleport and ban menus (#3312)
* Fix the admin panel not showing the account name (#3322)
* Fix name serialization for secret stashes (#3301)
* Fix name serialization for secret stashes
* Fix old usages of secret part name
* Separate ghost warp message into two (#3310)
* Separate ghost warp message into two
* Remove redundant arguments
* Address reviews
* Move properties up
* Add health overlay and a command to toggle it (#3278)
* Add health overlay bar and a command to toggle it
* Remove empty line
* Content PR for YAML hot reloading (#3319)
* Content PR for YAML hot reloading
* Add CanAdminReloadPrototypes (host permission)
* IndexedPrototype fixes
* Update RobustToolbox
* Update RobustToolbox
* Add an unconspicuous, meaningless and in no way motivated by any external force XML doc to buckle component
* Update RobustToolbox
* Update submodule to v0.3.12.
* Removed unused using statements that prevented compiling.
Removed references to IIndexedPrototype that does not exist anymore in the engine.
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
Co-authored-by: mirrorcult <notzombiedude@gmail.com>
Co-authored-by: cyclowns <cyclowns@protonmail.ch>
Co-authored-by: Visne <39844191+Visne@users.noreply.github.com>
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
Co-authored-by: Leo <lzimann@users.noreply.github.com>
Co-authored-by: Swept <sweptwastaken@protonmail.com>
Co-authored-by: Ygg01 <y.laughing.man.y@gmail.com>
Co-authored-by: collinlunn <60152240+collinlunn@users.noreply.github.com>
Co-authored-by: komunre <49118681+komunre@users.noreply.github.com>
Co-authored-by: Acruid <shatter66@gmail.com>
Co-authored-by: Peptide90 <78795277+Peptide90@users.noreply.github.com>
Co-authored-by: Clyybber <darkmine956@gmail.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
* Make damage work through messages and events, make destructible not inherit ruinable or reference damageable
* Copy sound logic to destructible component for now
* Fix typo
* Fix prototype error
* Remove breakable component damageable reference
* Remove breakable construction reference
* Remove ruinable component
* Move thresholds to individual components and away from damageable
* Add threshold property to damageable component code
* Add thresholds to destructible component, add states to damageable, remove damage container, fix up mob states
* Being alive isn't normal
* Fix not reading the id
* Merge fixes
* YAML fixes
* Grammar moment
* Remove unnecessary dependency
* Update thresholds doc
* Change naming of thresholds to states in MobStateComponent
* Being alive is once again normal
* Make DamageState a byte
* Bring out classes structs and enums from DestructibleComponent
* Add test for destructible thresholds
* Merge fixes
* More merge fixes and fix rejuvenate test
* Remove IMobState.IsConscious
* More merge fixes someone please god review this shit already
* Fix rejuvenate test
* Update outdated destructible in YAML
* Fix repeatedly entering the current state
* Fix repeatedly entering the current state, add Threshold.TriggersOnce and expand test
* Update saltern
* 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
* Add NPC faction tags
Some stuff isn't easy to represent by the existence of components so tags are intended to provide that functionality for AI usage.
I was 50/50 on having all tags in the 1 component or splitting it into 2. I'm leaning towards 2. This would be for stuff like say "CanMimic" so the mimic knows it's allowed to look like a specific prototype, or something like "smg" on a gun so it can say smg-specific barks for instance (as currently smgs and pistols look the same from a component perspective).
This also means combat behaviors aren't hardcoded per faction, plus it makes it easy to update faction relations during events.
* Factions command
Update faction relationships via commands.
* Remove command TODO
* Woops
Forgot to commit these items
* Serializer writing and parsing
* linq me up fam
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* AI pickup changes
Eating and drinking isn't spammed anymore.
AI can do InRangeUnobstructed checks for item pickups.
AI can open drink cans.
AI littering to be coded.
* #nullable enable
* github's nullable fails are actively shortening my lifespan
* Use a const instead
So it's easier to find given the performance implications.
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* Geometric mean for AI cons
More forgiving for having more considerations for an action.
* You had 1 job
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
I was a silly billy. AI were only picking up 1 item because 0.5 was being treated as a fail.
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* AI sleeping
AI no longer update when dead.
* It was easier to merge master and re-apply it.
* Update AiControllerComponent.cs
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
* Things and stuff with grids, unfinished w/ code debug changes.
* Updated submodule and also lost some progress cause I fucked it up xd
* First unfinished draft of the BodySystem. Doesn't compile.
* More changes to make it compile, but still just a framework. Doesn't do anything at the moment.
* Many cleanup changes.
* Revert "Merge branch 'master' of https://github.com/GlassEclipse/space-station-14 into body_system"
This reverts commit ddd4aebbc76cf2a0b7b102f72b93d55a0816c88c, reversing
changes made to 12d0dd752706bdda8879393bd8191a1199a0c978.
* Commit human.yml
* Updated a lot of things to be more classy, more progress overall, etc. etc.
* Latest update with many changes
* Minor changes
* Fixed Travis build bug
* Adds first draft of Body Scanner console, apparently I also forgot to tie Mechanisms into body parts so now a heart just sits in the Torso like a good boy :)
* Commit rest of stuff
* Latest changes
* Latest changes again
* 14 naked cowboys
* Yay!
* Latest changes (probably doesnt compile)
* Surgery!!!!!!!!!~1116y
* Cleaned some stuff up
* More cleanup
* Refactoring of code. Basic surgery path now done.
* Removed readme, has been added to HackMD
* Fixes typo (and thus test errors)
* WIP changes, committing so I can pull latest master changes
* Still working on that god awful merge
* Latest changes
* Latest changes!!
* Beginning of refactor to BoundUserInterface
* Surgery!
* Latest changes - fixes pr change requests and random fixes
* oops
* Fixes bodypart recursion
* Beginning of work on revamping the damage system.
* More latest changes
* Latest changes
* Finished merge
* Commit before removing old healthcode
* Almost done with removing speciescomponent...
* It compiles!!!
* yahoo more work
* Fixes to make it work
* Merge conflict fixes
* Deleting species visualizer was a mistake
* IDE warnings are VERBOTEN
* makes the server not kill itself on startup, some cleanup (#1)
* Namespaces, comments and exception fixes
* Fix conveyor and conveyor switch serialization
SS14 in reactive when
* Move damage, acts and body to shared
Damage cleanup
Comment cleanup
* Rename SpeciesComponent to RotationComponent and cleanup
Damage cleanup
Comment cleanup
* Fix nullable warnings
* Address old reviews
Fix off welder suicide damage type, deathmatch and suspicion
* Fix new test fail with units being able to accept items when unpowered
* Remove RotationComponent, change references to IBodyManagerComponent
* Add a bloodstream to humans
* More cleanups
* Add body conduits, connections, connectors substances and valves
* Revert "Add body conduits, connections, connectors substances and valves"
This reverts commit 9ab0b50e6b15fe98852d7b0836c0cdbf4bd76d20.
* Implement the heart mechanism behavior with the circulatory network
* Added network property to mechanism behaviors
* Changed human organ sprites and added missing ones
* Fix tests
* Add individual body part sprite rendering
* Fix error where dropped mechanisms are not initialized
* Implement client/server body damage
* Make DamageContainer take care of raising events
* Reimplement medical scanner with the new body system
* Improve the medical scanner ui
* Merge conflict fixes
* Fix crash when colliding with something
* Fix microwave suicides and eyes sprite rendering
* Fix nullable reference error
* Fix up surgery client side
* Fix missing using from merge conflict
* Add breathing
*inhale
* Merge conflict fixes
* Fix accumulatedframetime being reset to 0 instead of decreased by the threshold
https://github.com/space-wizards/space-station-14/pull/1617
* Use and add to the new AtmosHelpers
* Fix feet
* Add proper coloring to dropped body parts
* Fix Urist's lungs being too strong
* Merge conflict fixes
* Merge conflict fixes
* Merge conflict fixes
Co-authored-by: GlassEclipse <tsymall5@gmail.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
Co-authored-by: AJCM-git <60196617+AJCM-git@users.noreply.github.com>
* AI preset curves and expandable optimisation
Added preset curves for considerations to use just to avoid repeating the same variables all over the shop.
Moved common considerations for expanded actions onto the expandable action e.g. you need a free hand to be able to PickUpGloves so we'll just check it the once rather than for each action.
* FIX PRAGMA
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* Multiple hands in gui first pass
* Remove IHandsComponent interface
* Create hand class and more hand textures
* Refactor ServerHandsComponent to use a single list of hands
* Seal SharedHand
* Fix picked up items not showing on top of the hand buttons
* Remove HandsGui buttons and panels dictionaries
* Fix items in hands rendering
* Fix wrong hand container comparison
* Fix not updating the location of duplicate hands
* Change ClientHandsComponent to use a SortedList instead of a dictionary
* More merge conflict fixes
* Change SortedList to List
* Fix hand button order
* Add item tooltip for more than 2 hands and updating when removing hands
* Add add hand and remove hand command
* Merge conflict fixes
* Remove nullable reference type from ContainerSlot
* Fix texture errors
* Fix error when reaching 0 hands
* Fix error when swapping hands with no hands
* Merged remove hand methods
* Fix item panel texture errors
* Merge conflict fixes
* Fix addhand and removehand command descriptions
* Add properly displaying tooltips for 2 hands
* Make hand indexes and locations consistent across the client and server
* Add dropping held entity if a hand is removed
* Change hand location to be calculated by index
* Made different hand gui updates more consistent
* Remove human body yml testing changes
* Sanitize addhand and removehand commands
* Merge conflict fixes
* Remove testing changes
* Revert body system changes
* Add missing imports
* Remove obsolete hands parameter in yml files
* Fix broken import
* Fix startup error and adding and removing hands on the same tick
* Make hand container id use an uint
In case someone gets more than 2 billion hands
* Rename hand component files
* Make hands state use an array