* Janitor trashbag upgrade + FANCY ANIMATIONS
* Review, Bug fixes and Sounds
- Fixed hand-pickup animation playing if the entity originated from inside a container (e.g. bag on the ground) or from inside ourselves (e.g. something in our own inventory)
* Fix/Change. Just log if AnimateEntityPickup is called with an entity that has no SpriteComponent.
* More explicit log message. Error log.
* Merge. Fix.
* WIP changes
* Merge conflict fixes
* Bring pull controlelr to current year
* Sync and predict PullController on the client
* Clean imports
* Slow down pullers and make pulling tighter
* Stop pulls on pullable or puller component removals
* Make pulling not occur when moving towards the pulled entity
* 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
* Initial framework for pulling.
* Make it possible to pull items via (temporary) keybind Ctrl+Click, make items follow the player correctly.
* Make other objects pullable, implement functionality for moving an object being pulled, make only one object able to be pulled at a time.
* Make sure that MoveTo won't allow collisions with the player
* Update everything to work with the new physics engine
* Update Content.Server/GameObjects/EntitySystems/Click/InteractionSystem.cs
Co-authored-by: ComicIronic <comicironic@gmail.com>
* Physics update and convert to direct type casts
* Add notnull checks
* Add pull keybinds to the tutorial window
* Move PullController to shared
* Fix pulled items getting left behind
* Fix moving pulled objects into walls
* Remove flooring of coordinates when moving pulled objects
* Add missing null check in PutInHand
* Change pulling keybind to control and throwing to alt
* Change PhysicsComponent references to IPhysicsComponent
* Add trying to pull a pulled entity disabling the pull
* Add pulled status effect
* Fix merge conflicts
* Merge fixes
* Make players pullable
* Fix being able to pull yourself
* Change pull moving to use a velocity
* Update pulled and pulling icons to not be buckle
A tragedy
* Make pulled and pulling icons more consistent
* Remove empty not pulled and not pulling images
* Pulled icon update
* Pulled icon update
* Add clicking pulling status effect to stop the pull
* Fix spacewalking when pulling
* Merge conflict fixes
* Add a pull verb
* Fix nullable error
* Add pulling through the entity drop down menu
Co-authored-by: Jackson Lewis <inquisitivepenguin@protonmail.com>
Co-authored-by: ComicIronic <comicironic@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
* Add pointing keybind and simple message
* Add turning the player when pointing
* Add pointing arrow
* Make the popup message appear on the pointing entity
* Add pointing to tiles and space and proper grammar
* Move pointing bind from HandsSystem to PointingSystem
* Add more messages for pointing depending on the viewer perspective
* Fix non nullable reference type
* Serialize pointing arrow duration
* Serialize pointing arrow step and add summaries
* Make arrow speed serializable and make it depend on frame time
* Add 0.2 second delay between pointings
* Add pointing arrow yaml examples
* Add the ability for pointing arrows to be rogue
* Remove rogue package reference
* Add point to verb
https://cdn.discordapp.com/attachments/313107470031650816/735268651636228197/unknown.png
* Add shift middle clicking an entity in the verb menu to point at it
* Add VV to PointingArrowComponent
* Increase pointing delay from 0.2 to 0.5 seconds
* Address reviews
* Fix nullability errors
* Separate pointing and rogue pointing code
* Fix rogue pointing arrow visuals
* Made rogue pointing arrow rotation adjustment readable for mortals
* Make rogue pointing arrows less destructive
* Cleanup more of the rogue pointing arrow code
* Create BuckleableComponent.cs
* Add strap component and keybind to buckle targeted entity
* Remove buckle keybind, turn it into a verb
* Add moving and attaching the buckled entity to the strap
* Fix reality collapsing when clicking on a buckled entity
* Add strap position to buckle a mob in the standing or down position
* Add new default strap position that makes no change to the mob's standing state
* Add Strap component to office chairs and stools
* Add Strap component to the pilot chair
* Add buckled status effect icon
* Add status effect click behaviour
* Add buckling and unbuckling sounds
* Change Buckle verb to only appear when an entity can be currently buckled
* Rotate buckled entity in the direction of the seat
* Disable entity rotation when buckled
* Fix buckle rotation on beds
* Buckling now finds the closest strap to the buckleable entity
* Fix rotation when unbuckling an entity
* Move buckle verb to StrapComponent
* Added buckled entity unbuckle verb, range and interaction checks
* Add checks for currently occupied straps
* Add unbuckling entity if its respective strap component is removed
* Add Clickable, InteractionOutline and Collidable components to bed
* Add rotation property to strap component
* Rename Buckleable to Buckle
* Add Buckle and Strap sizes to buckle multiple entities in the same strap
* Remove out of range popup message from strap verb GetData
* Move BuckledTo setter logic to its methods
* Fix Strap BuckledEntities being public
* Fix not updating status when Buckle component is removed
* Change BuckleComponent.BuckledTo to be of type StrapComponent
* Fix NRE when unbuckling
* Add buckle perspective messages
* Fix not equals comparison in strap verb
* Add added check to Strap TryAdd
* Change buckle.ogg and unbuckle.ogg from stereo to mono
* Remove -2f volume on buckle and unbuckle sounds
* Add summary to Strap TryAdd and Remove methods
* Make buckled entities unable to fall
* Fix default strap position not rotating the buckled entity
* Add downing after unbuckling an entity if it is knocked down
* Prevent an entity from buckling onto itself
Fixes stack overflow error
* Disable recursive buckling
* Add buckling onto straps by clicking them with an empty hand
* Add recursive buckle check to the trybuckle method as well
* Fix being able to click on a different strap to unbuckle from the current one
* Merge TryUnbuckle and ForceUnbuckle with a force argument
* Remove explicit unimplemented status effect clicking cases
* Add documentation to EffectBlockerSystem and ActionBlockerSystem
* throwforce and probability fixes for explosions
Applies force to all affected by explosion entities with ItemComponent
Fixes probability issues with explosion related callbacks
* dependency fix, throw helper
* delete TODO
Co-authored-by: gituhabu <48828502+gituhabu@users.noreply.github.com>
* You cannot pickup items across walls, or pickup items when dead/in crit.
* Adds InRangeUnobstructed method to InteractionSystem.
Changes HandsSystem and ItemComponent to use it.
* Change variable name in some interactions
I definitely didn't copy-paste some stuff back then, absolutely not.
* Fix bug where dropping items in tables didn't cause the drop interaction
* Instrument test.
* Midi stuff
* Some more work
* This actually works now!
* update
* Midi Audio works!
* Lots of stuff, and cool interfaces for items
* Update
* Fix a few things
* It just works
* Move textures to another folder, remove placeholder description from instruments
* Fix warning
* Use renderer enum
* Instruments now use DisposeRenderer method, and send MidiEvents as they receive them. Deletes InstrumentSystem whoo.
* Fix incorrect sprite paths
* Instruments take midi file size check into account when enabling/disabling midi playback buttons
* Fix crash when pressing drop on empty hand.
* Use new renderer return values for midi/input
* Xylophones are no longer handheld instruments, fix their sprites.
* Use new API
* Remove nfluidsynth from solution
* Timing information
* Use IGameTiming.CurTime for timestamps instead
* Removed BoundingBoxComponent.
* Updated prototypes to use refactored CollidableComponent.
* Renamed ICollidable to IPhysBody.
Moved ICollidable to the Shared/Physics namespace.
* Migrated more yaml files to use PhysShapes.
* Updated YAML to use the new list-of-bodies system.
* Updated the new prototypes.
* Update submodule
* Update submodule again, whoops