* 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
This fixes one case of GridCoordinates being used unnecessarily, in
GameScreenBase.
It replaces other cases with explicit calls to TryFindGridAt and
GetDefaultGrid.
* Update & improve tutorial window
- Fix scroll bar not showing up till window is resized/scrolled.
- Update keybinds and information.
- Add "quick controls" before detailed explanation for quick reference.
- Add section headers with larger font.
* Add more keybinds
Adds more keybinds from keybinds.yml
* Address code review
- Remove paragraph explaining controls in favor of quick list.
- Remove use of ForceRunLayoutUpdate(). Need to find bug causing scroll bar to not show up until resize. Can do in separate PR.
* Add gameplay section
Adds gameplay section with some important notes on respawning and combat node.
* Fix typo
"it's keybind" -> "its keybind"
* Implemented random character creation
* Pick from a list and apply a bit of randomness instead
* Rename SetInitialData, unselect list entries properly
* added Character Setup
* whoops
* reverted unrelated changes
* Made everything work post-rebase
* Removed unused PreferencesChanged event
* nope, don't need this
* HumanoidProfileEditorPanel -> HumanoidProfileEditor
* Set initial data for hair pickers
* Fixed nullable warning
* Renamed LooksComponent -> HumanoidAppearanceComponent
* Renamed LooksComponentState -> HumanoidAppearanceComponentState
* Final renaming maybe
* Use a human-like dummy instead of a real human
* Change preferences structs back to classes
* Create ItemSlotButton
* Refactor inventory buttons
Refactor so that KeyBind handling of inventory and hands are the same.
* Refactor InventoryInterfaceController to call ItemSlotManager with entities
This change allows HandsGUI and InventoryInterfaceController to just call ItemSlotManager.OnButtonPressed with an entity instead of a slot.
* Add CooldownCircle to ItemSlotButton
This allows Hands and Inventory to have cooldown circles on their ItemSlots.
* Refactor HandsGUI to use ItemSlots
This allows functionality and GUI to be the same between Inventory and Hands.
Added clicking empty hand to switch ActiveHand to clicked hand.
* Implement CooldownCircle in ItemSlotManager
Reorganize files
* Implement Cargo Console
Add to CargoConsoleComponent GalacticBank information for syncing Bank Account Balance.
Implement CargoOrderDatabase on the server side and a list of orders in the CargoOrderDatabaseComponent on the client side. This makes it easier to change data on the server side but also utilize the state syncing between components.
Implement GalacticMarketComponent.
Only productIds get sent. Both client and server create their lists from YAML.
Implement basic spawning of items from approved orders in CargoOrderDatabase.
* Finish Cargo Console
Add validation to make sure Order Amount is one or more.
Implement approve and cancel buttons to CargoConsoleMenu orders list row.
Add price to CargoConsoleMenu product list row.
Implement CargoOrderDataManager to consolidate CargoOrder lists.
Refactor CargoOrderDatabaseComponent to use CargoOrderDataManager instead of storing duplicate lists.
Implement canceling orders.
Implement approving orders.
Fix sprite links.
Implement Cargo Request Console.
* Non-accessed local variable
* Merge cast and type checks.
* StringComparison.Ordinal added for better culture support
* Supposed code improvement in launcher. Remove unused code.
* Update ExplosionHelper.cs
Unintentional change.
* Optimized Import
* Add Robust.Shared.Utility import where it was deleted
* Other random suggestion
* Improve my comment
* Refactor SpeciesUI into overlay and status effects
All components that update the UI will need to use PlayerAttached for cases where the Mind transfers I think.
* Change overlay / status effects to use states
* Change TryRemoveStatus to RemoveStatus
Doesn't return a bool so not trying.
Addressing PJB's feedback.
* Expose more private values of Solution and SolutionComponent
Expose SolutionComponent.ContainedSolution and Solution.Contents. Both needed by ReagentDispenserComponent.
* Implement IExamine for SolutionComponent
Allows players to see the contents of a solution by examining the entity which contains it.
* Implement ReagentDispenserComponent
Adds ReagentDispenserComponent. A component which can add or remove reagents from a solution container. It's written in a general way so that it can be used for things such as the Chemical dispensers in chemistry, but also the booze and soda dispensers in the bar.
The chemicals it may dispense are defined in yaml, similar to the way that vending machines define which entities they can dispense, by defining a reagent pack.
* Add chemical dispenser and equipment
Adds the chemical dispenser, beaker, large beaker, dropper, and a few more chemicals.
* Add booze and soda dispensers.
Adds the booze and soda dispensers, and a few chemicals for them to dispense. There's no drink mixing or drunkenness yet.
* Update engine submodule.
* Remove unneeded and commented out code
Had a few WIP notes and debug code bits I forgot to remove beforehand.
* Make SolutionComponent._containedSolution and it's values private again
- Remove `SolutionComponent.ContainedSolution` property, replace with specific access functions to maintain safety.
- Make Solution.Contents return a `ReadOnlyCollection` instead of `_contents` to prevent uncontrolled access to the Solution values.
- Add `SolutionComponent.RemoveAllSolution()`
* Update Content.Shared/Chemistry/Solution.cs
Commits a suggestion from RemieRichards to match the coding style of the rest of the codebase. Using `IReadOnlyList` instead of `IReadOnlyCollection`.
Co-Authored-By: Remie Richards <remierichards@gmail.com>
* Update Content.Shared/GameObjects/Components/Chemistry/SolutionComponent.cs
Commits a suggestion from RemieRichards to match the coding style of the rest of the codebase. Using `IReadOnlyList` instead of `IReadOnlyCollection`.
Co-Authored-By: Remie Richards <remierichards@gmail.com>
* Add import for IReadOnlyList to Shared/SolutionComponent.cs
* Add documentation
* Improve localization
Improve use of ILocalizationManager.
* Resolve ReagentDispenserWindow._localizationManager before using it
Forgot to do this in the last commit, resulting in a crash. Oops.
* Add SolutionCaps.FitsInDispenser. Use in ReagentDispenserComponent.
Used to limit large containers like buckets or mop buckets from being placed in a dispenser. Both have large capacities (500) and weren't designed to hold certain chemicals like a beaker is, so for now they can be blocked from being put in a dispenser by giving them that flag.
* Add colors to new reagents
* Update engine submodule
* Fixed HandsGui children so that HandsGui is clickable
* Added TextureButton for opening Storage items
* Update ClientInventoryComponent.cs
Fixed HandleComponentState so that it only updates the inventory when there are changes.
* Implemented storage button on Inventory
Adds a small button on the bottom right of Storage items when inside the inventory. When the button is pressed it opens the Storage UI.
Improved chat box styling.
"All" button now works as a toggle for.. all buttons!
Also improved persistence of the chat box when switching to/from lobby.
* Updates for the netcode refactor.
* Change HandsGui to control.
Why? No idea but drawing of it works again.
* Fix hand change sync.
* Update submodule
* Sprite refactor compatibility.
* Sprite-level rotation.
* Dude it works.
Welder now has an unshaded flame toggle!
Door component no longer on client!
* Remove debug text.
* Update.
* Fix
Finish and update submodule
Comments code, changes network messages
FIXES THE USE INTERACTION SO YOU CAN ACTUALLY ACTIVATE THINGS NOW
Need engine commits
We'll figure out what to do about this shit later eh mates? Maybe have a script in the build process that automatically moves them over to godot/scenes
Changes some prototypes and fixes stuff
Fixes some more bugs, makes storage values show up properly
Part 3
Part 2
Storage Take 1
* Doneso
* Move submodule to Godot
* Update submodule AGAIN.
* Update project files.
* Remove WearableAnimatedSprite from prototypes.
* Remove content repo resource copier.
* Update submodule.
* Fix resource handling.
* Content.Client compiles by commenting out hands GUI.
* Update submodule.
* Fix prototype textures and update submodule.
* Update Submodule.
* Update submodule SOME MORE!
* Random WiP shit I guess
* Make omnisharp not choke on buildchecker.
* Update submodule.
* Highly WiP broken HandsGui code.
* Ok maybe let's not insult omnisharp.
* Fix annoying Omnisharp warning.
* Update submodule.
* Update submodule.
* Hey I forgot to push this but it didn't conflict!
* Fix hands GUI on godot.
* Update submodule.
* Obligatory submodule update.
* Work on exports.
* Work on exports.
* Update submodule.
* Update submodule.
* Fix dumb case mismatch between content and engine
* work pls.
* This maybe.
* Now!
* Update submodule.
* update submodule.
* Some WiP work on exporting aaah.
* OK READY FOR THE BUILDS SERVER.
* Probably should've made those commits in a different order.
* DO THE THING
* update submodule.
* Updates for effects system.
* Update submodule.
* Make file/line numbers show up on Windows Godot.
* Set submodule to master.
* Updates submodule
Fix connect not entering server (with correct toml config) and compile error, updates submodule
Server still has an issue with toml file pointing towards sandbox instead of content and roundstart object initializations
* Updates more stuff
Needs my most recent PR on ss14 to function
* Submodule updated for real this time
HandsGui now works with the new system. The port was sloppy though so
somebody might want to come and refactor this so that it doesn't force
its own position and size.