* 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
* changed scan dna button to Scan and Save DNA
* Added cloning machine code infrastructure copied from Medical Scanner
* Added a list to cloning menu containing some numbers
* Cloning Machine UI sends a message to the cloning component with the entityUID
* New scans now show up in cloning pod menu
* fixed cloning machine collision shape
* cloning machine can now spawn the right player profile assuming the attatched entity is still correct.
* refactored cloning system to use a map of integer ids to player Minds
* Added a return to body cloning loop for the ghost
* Fixed warning for _playerManager being possibly null, added TODO note for ghost return to body button acting as a toggle
* removed #nullable from cloningMachineWindow"
* Trying to get rid of nullable error
* fix CloningMachine to not initilize with it's owner components
* updated CloningMachine server component to play nice with the new nullable rules
* replace flag with eventBus message for sending a ghosts mind to a clone body
* Refactor cloning so that a popup option is used to get user consent for cloning
* Refactoring
* Reverting unused changes for cloning component
* Added proper cloning pod sprites and a visualizer so 'idle' and 'cloning' states are properly reflected
* added missing robust toolbox contents
* Added cloning NoMind State and made cloning take time
* Added cloning progress bar and mind status indicator to cloning pod
* Added missing localization calls, removeed 'returned to cloned body' from ghostUI
* Added unsubscribe for cloningStartedMessage in Mindcomponent.cs OnRemove
* Added eject button to cloningMachine and clamped the cloning progress bar to 100%
* Added condition to eject body on cloningmachine so bodies can't be ejected until cloning is done
* Add click-dragOn functionality to the medical scanner for things with a bodyManager
* Messed with scan query so it doesn't fail on dead bodies as long as Mind still owns the mob
* refactored clonning scan check on medical scanner so it doesn't do a linq query
* merge with rogue toolbox
* Change the name of Cloning Machine to the less generic Cloning Pod
* Changed Cloning Pod so it pauses cloning while the power is out
* Removed the evil LocalizationManager from the cloning menus and used the static Loc instead
* removed localization dependency from bound accpetCloning user interface
* Removed Ilocalization dependency I accidentally added to ghost ui
* Update Content.Client/GameObjects/Components/MedicalScanner/MedicalScannerComponent.cs
Co-authored-by: Exp <theexp111@gmail.com>
* Changed null check to tryget in case for cloning UiButton.Clone
* Parameterized Cloning time on serverside component
* tried to reset Robust toolbox module to current master
* Added null check to ghost client component message handling, unsubscribe to the mind component listening to the cloning question ui, fixed _clonningProgress typo, moved CloningPod component dependencies to actually be dependencies, removed un-needed disposals of cloning windows, added disposals missing in boundUserInterfaces.
* Reset submodule
* corrected exception for cloning pod visualizer to refer to cloning pod state and not medical scanner state
* Fix typo
* Unsubscribe from onUiReceiveMessage in mindcomponent in the onRemove function, not the acceptcloningui function
* unsubscribe from OnUiReceiveMessage in CloningPodComponent
* unssubscribe from ghostreturn message in cloningpodComponent onRemove
Co-authored-by: Exp <theexp111@gmail.com>
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
* 1779 Add extinguisher cabinet base item, rsi, and class based on potted plant
* Pretty much the rest of the owl
* Allow construction
* no more deconstruction
* pr fixes
* 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 post-checks for do_after
So you can do InRangeUnobstructed or whatever at the end.
Individual components should do their own check upfront to avoid the state ever being sent. I added a pre-made function for people to do InRangeUnobstructed.
* Woops imports
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* -Show tooltip on hover
-Show notify on click
* -Status Effects now get removed instead of going invisible
-Removed empty textures for that
* Revert break in HungerComponent
* No context menu through occluder
* Fix disabled occluders
* Comment
* Server-side verb ray check
Decided to add a buffer because the entity is at the very edge of the context box (0.5, 0.5) then need to make sure that entities at the other end of the box are ignored.
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* Implement machine linking
* Cleanup and rename Signals
* Implement signal button
* Add machine linking signal mapping
* Fix signallink command help
* Add localization to signal linking and allow infinite range
* Add feedback for when a transmitter is not connected to any receivers
Refactor PopupMessage to use the entity extension
Refactor dependencies to not have to disable warnings