* 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.
* Content side new physics structure
* BroadPhase outline done
* But we need to fix WorldAABB
* Fix static pvs AABB
* Fix import
* Rando fixes
* B is for balloon
* Change human mob hitbox to circle
* Decent movement
* Start adding friction to player controller
I think it's the best way to go about it to keep other objects somewhat consistent for physics.
* This baby can fit so many physics bugs in it.
* Slight mob mover optimisations.
* Player mover kinda works okay.
* Beginnings of testbed
* More testbed
* Circlestack bed
* Namespaces
* BB fixes
* Pull WorldAABB
* Joint pulling
* Semi-decent movement I guess.
* Pulling better
* Bullet controller + old movement
* im too dumb for this shit
* Use kinematic mob controller again
It's probably for the best TBH
* Stashed shitcode
* Remove SlipController
* In which movement code is entirely refactored
* Singularity fix
* Fix ApplyLinearImpulse
* MoveRelay fix
* Fix door collisions
* Disable subfloor collisions
Saves on broadphase a fair bit
* Re-implement ClimbController
* Zumzum's pressure
* Laggy item throwing
* Minor atmos change
* Some caching
* Optimise controllers
* Optimise CollideWith to hell and back
* Re-do throwing and tile friction
* Landing too
* Optimise controllers
* Move CCVars and other stuff swept is beautiful
* Cleanup a bunch of controllers
* Fix shooting and high pressure movement controller
* Flashing improvements
* Stuff and things
* Combat collisions
* Combat mode collisions
* Pulling distance joint again
* Cleanup physics interfaces
* More like scuffedularity
* Shit's fucked
* Haha tests go green
* Bigmoneycrab
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* Add nullable to some Content.Shared files.
* Use [NotNullWhen(true)]
* Undo adding now redundant !'s
* Forgot one
* Add a ton more nullable
* You can guess
* Fix some issues
* It actually compiles now
* Auto stash before merge of "null2" and "origin/master"
* I lied
* enable annotations -> enable
* Revert ActionBlockerSystem.cs to original
* Fix ActionBlockerSystem.cs
* More nullable
* Undo some added exclamation marks
* Fix issues
* Update Content.Shared/Maps/ContentTileDefinition.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Resolve some issues
* Remove unused method
* Fix more issues
* Fix more issues
* Fix more issues
* Fix more issues
* Fix issue, rollback SharedGhostComponent.cs
* Update submodule
* Fix issue, invert some if-statements to reduce nesting
* Revert RobustToolbox
* FIx things broken by merge
* Some fixes
- Replaced with string.Empty
- Remove some exclamation marks
- Revert file
* Some fixes
* Trivial #nullable enable
* Fix null ables
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* Light now use visualizer
* Added ghost actions
* Add hotkey input for ghosts
* no message
* Testing blinking animation
* Better animation
* Better customization
* No abuse
* Reversed sln
* No fun for ghosts
* No fun for ghosts x2
* Cooldown for lights
* Moved to component deps
* This tollist is unnecessary
* Enums to byte
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Some lights can ignore ghosts now
Co-authored-by: Alex Evgrashin <evgrashin.adl@gmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Refactor stacks to use prototypes
* Fix not assigned warning
* Add names to stacks
* Make machine baords and material constructions use the name as well
* Remove defaulting stacks to prototype id
* Fix tests
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Try fixing DoAfterBar coordinates issue
Also I have a somewhat shitcode way to ensure it doesn't get stuck but I'll wait to see if it still happens on live.
* Brute force fix the stuck issue
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* Refactors the ConstructionSystem into the MVP pattern.
* Refactors the ConstructionMenu into the MVP pattern.
* Moved the ConstructionMenuPresenter to the GameScreen where it belongs.
* Rebase updates.
* 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
* 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>
* 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>
* Basic voting
* Rewrite lobby in XAML.
Working lobby voting.
* Escape menu is now XAML.
* Vote menu works, custom votes, gamemode votes.
* Vote timeouts & administration.
Basically done now.
* I will now pretend I was never planning to code voting hotkeys.
* Make vote call UI a bit... funny.
* Fix exception on round restart.
* Fix some vote command definitions.
* Admin OOC is sent with a different color than regular OOC
- Also adds the OOC color to the database
* Command to set the color
* Ooc -> OOC
* Change default color to Red (`#ff0000`)
* Outdated namespace
* Add files for Ghost Roles.
* Work on Ghost Roles
* Improvements
* GHOST ROLES IS DONE
* mmm yes
* auto-update when setting rolename/roledescription
* well
* command graceful error
* Makes UI have a scrollbar when it has too many entries
* fix command fuckup
* Apply suggestions from code review
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.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
* Added empty light
* Can build light fixture
* Can construct and deconstruct small light
* You can build bulbs only on walls
* Playing with placement conditions
* Refactored code a bit
* Added check for north direction and snapping
* Fixed all small light sprites (wrong directions order)
* Fixed weird problem with bulb lights
* Fixed rotation on all stations
* Fixed map again
* Much better placement mode
* Deleted shared wall component and moved all logic to raycasts
* Missing bracket
* Better texture
* Moved wallmount condition to tags
* Removed station station
* Added suffix and fixed on map init bug
* Cuff enhancements
* Cuffs now have an OnClick for the alert to remove them
* nullables
* Use default interaction range so highlights are accurate
* Cuffing fails more gracely
* Make shared abstract and add component references to client / server
* Don't cache AudioSystem and HandsComponent given cuffs are rarely used
* Fix test
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* Move TagComponent to shared
* Fix test
* Not a web edited commit
No sir
* Update Content.Shared/GameObjects/Components/Tag/TagComponentState.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* 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.
* Add tag component and test
* Remove 0 capacity
* Add tag component extensions
* Change tags to be prototypes
Co-authored-by: Vera Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
* Remove unused IChatCommand.
* Lots of refactoring into a shared context.
* Removed ICommonSession from server concmd Execute.
* Added argStr parameter to concmd execute.
* The execute function of client concmds now returns void, use the new shell.RemoteExecuteCommand function to forward commands.
* Finally move shells and commands into shared.
* Console commands can now be registered directly without a class in a shared context.
* Engine API Changes.
* Repair rebase damage.
* Update Submodule.
Because Windows does CRLF (yuck) the parallax file mismatches with the one shipped with the actual launcher client.
We now normalize the EOLs to fix this.
* Get rid of the OverlayEffectsComponent stuff because it just ended up creating workarounds for it's bugs, without removing any functionality
* Flashes and Flashbangs use the same code now (the Flashable path because it's better)
* Ported sprites from eris
* Added yml
* lid open/close logic
* interactivity
* Working on new secret stash component
* Object will drop on destruction
* Can get item and examine message
* Reagent container and some cleaning
* Moved potted plant to stash
* New base prefab
* Now you can deconstruct toilet
* Small fixes
* Fixed unknown components errors
* Fixed grammar errors
Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>
* Now use prob
* More grammar
* Update Content.Server/Construction/Conditions/ToiletLidClosed.cs
Aaaaaaaa
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* No delays
* Amazing sound design
* Moved sound to mono
* Toilet viz
Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Moves piping visualizers to own folder
* Pump visualizer update
* Siphon and vent visualiser only set enabled visibility
* PipeVisualizer cleanup
* Replaces off vent/scrubber sprites
* Gas filter sprite update
* Revert "Gas filter sprite update"
This reverts commit 676e5d55e1157a229b1445eeea53a5c8032dbbb5.
* Rotates gas filter sprites to match T-junction pipe directions
* Removes pipes from scruber and vent state
* Makes sprite components use layers
* disabled sprite netsync on piping entities
* piping meta.json cleanup
Co-authored-by: py01 <pyronetics01@gmail.com>
* Code is ready but item now spawning
* Prototype of SeveralExplosive component
* Remaked to FlashExplosiveComponent using
* Done. But i feel myself retarted
* Remaked. Looks good
* Full loaded prototype added
* Throwing in progress. Fatal error is here
* I forgot about shared
* Sloth refactor
* Delayed spawning and fix crashes
* Full clusterbang code.
* Removed useless variable and tuned delay
* Delete wrong in CreamPiedComponent
* Now yaml is code quality followed
* Reworked to GetLevel with bugs
* Never forget resources, guys
* RoundToLevels added. Now it works.
* New textures and sloth refactor is returned
* Now it's TryGetComponent
* Visualizer maximum fix and look fix
* Logging and no max and min check
* Removed max grenades sending
* vizualizer is better now
* GrenadesMax removed
* grammar, checks, NextFloat and no more try catch
* Unused using removed
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* #1449 use new ControlFocusExited override for drag/drop controls to avoid getting
"stuck" dragging when the control lost focus mid drag, also use the renamed
KeyboardFocusEntered/Exited methods.
* Update Content.Client/UserInterface/ActionMenuItem.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Update ActionMenuItem.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* # UI Win.
This is my PR that requires an engine change.
* Added RadioOptionButton
* Made JobPrioritySelector easier to use.
Requires space-wizards/RobustToolbox#1484
* Better nam.
* Updated to use the new version that isn't a mess.
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* Adds gibbing
* Adds adminbused absurd-damage foamblade
* Sane parts
* BaseOrgan -> BaseMechanism
* Do not do random offset on shared, fix killing oneself with click attacks
* BaseMechanism -> BaseHumanOrgan -> *stuff*
* Account for prediction, again
* Add gibbing sound
* Added bool _placeCentered to check if an entity must be placed at mouse position or center of the PlaceableSurface (+ offset) when dropped.
* private variables formatted to camel case
* Use EqualsApprox in the setter for PositionOffset
* -Changed client-side SurfaceComponent to camelCase
-Added placeCentered and positionOffset to PlaceableSurfaceComponentState
-Getter and setters for placeCentered and positionOffset client-side
* Update Content.Client/GameObjects/Components/PlaceableSurfaceComponent.cs
Co-authored-by: Vera Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
* Add "_" to private vars name
* Made YAML properties camelCase
* Add "_" to private vars name
* Call Dirty() when IsPlaceable,PlaceCentered and PositionOffset are changed.
* Removed Dirty() from client.
Co-authored-by: Vera Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
* #272 proper open sides in menu buttons
* #272 WIP, good starting point for making
the top menu work well at different UI scales
* #272 WIP top menu looking better, but inconsistent size
* #272 WIP esc nice and big
* #272 consistently sized top buttons
* #272 proper highlighting of top menu elements
* #272 proper highlighting of top menu elements
* #272 nice shiny red tutorial button
* #272 better tutorial icon
* #272 missed svg changes
* #272 consistently sized top menu
* #272 better padding / alignment of top bar with other UI sections
* #272 fix hamburger menu height to
match others
* #272 top menu name set based on
keybind, use shortened names if possible
* #272 top menu name set based on
keybind, use shortened names if possible
* #272 add top menu actions button
* #272 add top menu admin button
* #272 fix sandbox top button down status
* #272 remove todo
* Add setoutfit command
* Adds setoutfit as a verb and adds a proper UI to the command
* Removes from AdminMenuWindow
* Changes the SetOutfit verb to be a component verb instead of a global verb
* Addresses reviews
* Remove empty method
* Remove on server aswell
* Clothing & Gender fields: Add to database [MODIFIED TO NOT DEPEND ON SAPHIRE-DB-REFACTOR]
Sorry about this, Saphire.
* Clothing & Gender fields: Add UI [FALLBACK II]
* Clothing & Gender fields: Actually apply gender
* Clothing & Gender fields: Import innerclothingskirt field from my previous attempt
Couldn't import actual prototypes because of a change to IDs
* Clothing & Gender fields: Add innerclothingskirt field to everything
* Clothing & Gender fields: Jumpskirts now work
* Clothing & Gender fields: Gender field will follow sex field if it's not different (UX improvement) [FALLBACK II]
* Clothing & Gender fields: Gender -> Pronouns to reduce confusion. Also, fix profile summary. Properly. [FALLBACK II]
* Clothing & Pronoun fields: Refactor so that profile equipment adjustments are performed in StartingGearPrototype.
* my IDE keeps wanting to change this so....
* Add item actions integration test, fix bug where empty item action
dict was left in SharedActionsComponent state
* bigger hotbar arrows
* nice wide hotbar pagination hitboxes
* add ability to switch hotbar loadout
via keybinds
* always highlight on drag over
of actions hotbar
* dont rely on content entity for integration test
* Rename department property to departments
* WIP Categories
* Add better spacing to categories
* Fix first separator and sync selectors
* You want some types with that
* Apply changes to latejoin as well
* Add category sorting to the late join gui as well
* CONTROL STUCK
* AvoidCollision if collided entity is the one that the character is buckled to
* Attempt to PreventCollision after the player is unbuckled but still colliding with StrapComponent
* Moved PreventCollide to the Shared script.
* Add WakeBody to keep updating the physics collision while being on a collidable strap component.
* Addressed some of metalgearsloth's suggestions:
- Made EntityBuckledTo,IsOnStrapEntityThisFrame and DontCollide not virtual
-Made EntityBuckledTo nullable
-Don't call update on Paused BuckleComponents
-Removed EntityBuckledTo variable declaration in BuckleComponent because it's not needed anymore
-Call TryUnbuckle if (!IsOnStrapEntityThisFrame && DontCollide) to set BuckledTo entity to null.
* Formatting
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
* Formatting
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
* Formatting again :P
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
* Formatting
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
* Formatting
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
* Renamed variable EntityBuckledTo to LastEntityBuckledTo
* As per DrSmugLeaf suggestion: Added [ComponentDependency] to the Body variable.
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
* Cleanup surgery classes
* Add DoAfter to surgery
* Consolidate doafter, break on user and target move
* Ignore biological surgery data component on the client
* Apply suggestions from code review
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Use a stringbuilder for surgery descriptions
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* #2744 fix NRE on clicking alerts with no OnClick, and don't send the click
message unless the alert has an onclick
* #2744 fix NRE on clicking alerts with no OnClick, and don't send the click
message unless the alert has an onclick
* Fixes do_after bar placement when using UI scaling
* Add Scaled Screen Position debug overlay to DebugCoordsPanel
Fix PopupMessage being in the wrong location when using UI scaling
* Fix warning
* Added atmos sprites from CEV-Eris
* Moved canister sprites to appropriate dir
* Removed unnecessary sprites, edited canisters prototype
* Created Gas Canister UI and release pressure buttons
* Changed GasMixture's pressure calculation (convert liters to cube meters)
* Added relabeling Canisters
* Reverted changes on GasMixture
* Changed my name in the credits
* Added valve opening on canisters
* Change canister visual state when connected to a port
* Added nullable to SharedGasCanisterComponent
* Replaced nullable contexts
* Changed again nullable annotation context
* Moved name in the credits to correct alphabetical order
* Canisters: Fix the most blatant issues with this PR (the added project interdependencies for no reason whatsoever)
* Canisters: Stop crashes when canisters leave atmosphere
* Canisters: Gas released into no atmosphere gets transferred "into space" (deleted)
* Atmos: Nullability annotations on TileAtmosphere, explaination of the states of TileAtmosphere.Air
* Canisters: If in an airblocked tile, do NOT release gas
* Scrubbers: Fix typo leading to them not connecting properly.
* Revert manual changes to credits file (sorry!) (1/2)
This reverts commit 94f3b0e5df8d9c2fa189866a17a231920f99bdaf.
* Revert manual changes to credits file (sorry!) (2/2)
This reverts commit 1986fb094dfaa44060f08d280f36b755258d17a6.
* Canisters: Apply @Zumorica 's reviews
* Canisters: Add missing localization as suggested by PJB
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
* Canisters: Pressure lights!
* Canisters: Light is now unshaded.
* Canisters: Now using IActivate
* Gas canisters (& air canister), now with their numbers properly calibrated (hopefully)
* Canisters: Refactor how their layers are added to be more like ApcVisualizer
* Canisters: Clean up of the tile invalidation/air release logic
* Canisters: Some gas canister window improvements
* Canisters: Clean up release pressure change button label code
Co-authored-by: Clement-O <topy72.mine@gmail.com>
Co-authored-by: Clément <clement.orlandini@gmail.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
* 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
* Start work on upgradeable machines.
* Upgradeable machines work
* Component requirements for upgradeable machines
* Better container handling
* Remember to not push submodule updates in your PRs, kids!
* Refresh parts after building a machine.
* NetSync false
* Address some reviews, fix some bugs
* Nullable stackhelpers dependencies
* Use container helper method to delete all entities in containers
* Nullable string in AddContainer
* Better examine for machine frame and construction in general
* Machine breakage
* Nullable node
* nullable GraphPrototype
* Re-save saltern for autolathe parts
* Fix SaveLoadSave
* Initial
* More
* Pissed in a cup
* Cleansup some gunk I accidently committed
* More fuckups
* Added third gender option
* Applied review
* Fixed changed storage
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* basic implementation
* minor fixes
* objectives temp commit
* proper onstart bind
* changes all conditions to be bound to a mind-instance
* oops
* oops v2
* adds possiblity to enable duplicate assignment of objective
equal objectives are unable to be added
* minor fixes, adds greentext
* refactors incompatability to be defined by requirements
* fixes a wrong whitespace
* minor fix
* addressed reviews v1
* address reviews v2
Co-authored-by: Exp <theexp111@gmail.com>
* final sweep
* adds/refactors traitor&sss cvars
* Update Content.Server/Mobs/Mind.cs
* never trust github web
* adds datasets & makes codewords use them
* addresses exp's reviews
* addressed zumos reviews
Co-authored-by: Paul <ritter.paul1+git@googlemail.com>
Co-authored-by: Exp <theexp111@gmail.com>
* Atmos Debug Overlay: Add a way of showing blocked directions
* Atmos Debug Overlay: Adjustable modes client-side
* Atmos Debug Overlay: Fix atvrange help text
* Atmos Debug Overlay: More flexible and clear gas ID specification
* BlockGamePlayerAction are only executed if _running is true, added italian localization file for blockgame UI
* Added localization functions and files for BlockGame arcade. Removed unused public variable added in the previous commit.
* Added new line to end of file blockgame.yml
* Update Content.Client/Arcade/BlockGameMenu.cs
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
* Moved EndLeft,EndRight and SoftdropEnd actions out of the condition as per suggestion by Paul.
* Added Loc.GetString() to "Nanotrasen" and "Nanotrasen Block Game" to enable transliteration of the name in other alphabets as per suggestion of Remie.
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
* removes some unused fields
* thats an oopsie
Co-authored-by: Paul <ritter.paul1+git@googlemail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Update usages of ! is with is not
* Content.IntegrationTests commit
* Content.Server commit
* Content.Shared commit
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* commit skeleton reagent grinder component
* add reagentgrinder bounduserinterface, add suffix to grinder yml, add reagentgrinder sprites
* implement much more of the grinder ui functionality
* get more use out of hasbeaker bool
* complete wiring up most of the chamber/beaker UI controls
* remove whitelist prototype id. add grindable tag component
* add juiceable component
* rename boolparam to be clearer
* more juice
* add some juice reagents and apply them to their drink prototypes
* re add glassyellow
* implement juicing and results
* add time delay to grindjuice
* add reagent grinder visualizer, add reagent grinder sounds, fix some yaml errors too
* interface has clear indication of currennt operation, and busy status
* add ReagentGrinder to Client ignnored components
* Update Content.Client/GameObjects/Components/Kitchen/ReagentGrinderBoundUserInterface.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Update Content.Client/GameObjects/Components/Kitchen/ReagentGrinderBoundUserInterface.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Update Content.Shared/Kitchen/SharedReagentGrinderComponent.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* implemennt sloth changes
* fix isbusy
* Disable grind/juice buttons if there's nothing to grind or juice, also some misc fixes
* unsubscribe from messages on remove + fix xmlcomment
* fix bounding box
* Add these to dictionary
* Add these to client ignore
* Whitespace and unneeded import fixes
* tommy's toes
* Where'd these newlines come from
* power
* improve bounding box
* Check power better & show contents when beaker is ejected
* check power here
* Disable eject buttons when running
* improve comments
* readwrite for viewvars on work time and capacity
* Address most of Sloth's reviews
* Make this cleaner
* add grindablecomponent to motherfucking everything
* Fix reviews
* some more null suppressions
* remove unused random field
Co-authored-by: scuffedjays <yetanotherscuffed@gmail.com>
Co-authored-by: namespace-Memory <66768086+namespace-Memory@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Add verb to toggle flashlight
* Playing with hand-held light for hard hat
* ClothingEquippedPrefix will update players sprite when changed
* Make abstract prototype for hardhat and fixed hardhat orange sprites
* Fixed all other hard hats
* Fixed requested changes
* Restore prototype and sprites changes
* Nullables
* That's actually nullable
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* temp commit to save progress
* adds objectives
* refactors mind.addobjective a bit
* better names for my testobjectives which i'll remove later on anyways
* nullable errors
* some misc fixes
* no sorted or set, what was i thinking here?
* removes unused imports
* added commands
* fully implements stealcondition
* started uiwork
* moved prototypeicon to engine
* removes objective class & uiwork
* refactors ui to only update when opened
adds progresstexturerect
* adds some margin
* removes some testing code
* ignores objectiveprototypes on clientside
* fixes
* removes using statements for exp
* gets the job
* always show issuer
* locs & _
* giving commands some love
* Update Content.Client/GameObjects/EntitySystems/DoAfter/DoAfterBar.cs
Co-authored-by: Exp <theexp111@gmail.com>
* makes commands use new thingy
* string interpolation
* good catch exp
* loc'd
* linq gone
* runtime
* moves function from engine
* oopsie
* Update Content.Server/Objectives/Conditions/StealCondition.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* makes messages directed
* base call & validation
* shuffle once
* No? Money down!
Co-authored-by: Paul <ritter.paul1+git@googlemail.com>
Co-authored-by: Exp <theexp111@gmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* Added refine component for glass shard
* Add refinable to rest of the shards
* Fixed windows shard count
* Now objects can vary refine time
* Windows will spawn correct shards after destruction
* Added all requested changes
* Client ignore as well
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Disable Pulling When Buckling an entity
* Projectile Improvements
If you shoot at a person that is critted now it will only hit if you aim at that person otherwise go "above" him and hit other targets.
- Dead people are still unhitable
* Update Content.Server/GameObjects/Components/Buckle/BuckleComponent.cs
Co-authored-by: Víctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
* Firelock In Progress
* Revert "Projectile Improvements"
This reverts commit 5821afc798e49e530d4086d7a9ddbe097805fdc4.
* Firelock Graph
* Revert "Merge branch 'master' into test2"
This reverts commit c69661cc7d9dcdc6d8c0dd45770f9eb94b231463, reversing
changes made to 5f1de8b8d24cd52190addb3df5617cb1012fd52c.
* Bunch of stuff
- Metal Rods
- Reinforced Glass
- SetStackCount Condition
- Tables
- Lattice
* Output2 to FloorTileItemComponent
* Plating, Underplating and Tiles (+FloorTile Improvements)
* Turf Fixes
+ APC Electronics
* Reinforced Glass In-hand textures
* All the fixes
* Final Changes
* (Hopefully) Last commit
* Update Resources/Prototypes/Entities/Constructible/Doors/firelock_frame.yml
Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>
* Update Content.Server/GameObjects/Components/Atmos/FirelockComponent.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* A Few more things
* Edit FirelockComponent.cs
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
Co-authored-by: Víctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* makes conveyors to use machine linking & refactors machine linking a bit
* nullable errors
* temp commit, starting work on construction
* working recipies & graphs
* fixes crash
* makes items gravitate towards the center when on a conveyor
* makes conveyors take bool signal too
* ignores components clientside
* default arm
entitymanager
maxtransmitters
unsubscribe methods
* twowayLEVER
* _
* componentreference
struct
* yaml run
leverDefinitelyNotCopiedFromGirderNoNoNo dies today :(
* nullable
* no divide by 0
* making sloth happy
* space gone - happy?
* final fix
* yes
* adds item to lathe
* conveyor item -> conveyor assembly
* technology
* reviews ADRESSED
* Update Content.Shared/GameObjects/Verbs/VerbUtility.cs
Co-authored-by: Paul <ritter.paul1+git@googlemail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* Align storage welders with door welders
* Spamming the button doesn't punish you.
* Requires lit welder to start
*
* Nulla-builda-buddy
* A certain smug in a bucket
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* #272 add bordered panel for effects bar
* #272 avoid mouse overlapping tooltip when near edges,
change tooltip colors to match mockups
* #272 WIP defining status effect states as YML and
sending them as encoded integers
* #272 refactor to use new alert system
* #272 refactor to use new alert system
* #272 fix various bugs with new alert system and update
alerts to have color
* #272 WIP
* #272 rename status effects to alerts
* #272 WIP reworking alert internals to avoid code dup
and eliminate enum
* #272 refactor alerts to use
categories and fix various bugs
* #272 more alert bugfixes
* #272 alert ordering
* #272 callback-based approach for alert clicks
* #272 add debug commands for alerts
* #272 utilize new GridContainer capabilities for sizing of alerts tab
* #272 scale alerts height based on
window size
* #272 fix tooltip flicker
* #272 transparent alert panel
* #272 adjust styles to match injazz mockups more, add cooldown info in tooltip
* #272 adjust styles to match injazz mockups more, add cooldown info in tooltip
* #272 alert prototype tests
* #272 alert manager tests
* #272 alert order tests
* #272 simple unit test for alerts component
* #272 integration test for alerts
* #272 rework alerts to use enums instead
of id / category
* #272 various cleanups for PR
* #272 use byte for more compact alert messages
* #272 rename StatusEffects folder to Alerts,
add missing NetSerializable
Flashlights were calling dirty EVERY TICK so this just means they only call it when absoluetely necessary which saves a lot.
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
Github will cuck me no more.
I tried the old google machine to find if there's a way to inherit these but it was failing me.
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* Put the damage in the windows
* add crack overlays
* Window cracking
* glass related sounds
* let's use a valid state
* run optipng on these for posterity
* Examine damage descriptions
* add "Constructible" to dictionary
* Downmix stereo effects to mono
* breaking and knocking
* Add shard etc. sprites
* shard inhands
* more sprite wrangling
* Expand destructiblecomponent drop system + implement it for windows
* Shard descriptions
* Random sprite component
* no nullbabby
* Random destroysounds
* random offset on destructible drops
* fix fucked yaml
* sound collections
* random pitch for knocking
* Localization
* hascomponent
* better spawnondestroy
* missed one
* Refactor battery/powercell assets and add new ones.
* committing before I fuck things up
* slot component doned I think
* dictionary update
* Fixes
* Moving flashlight to powerslotcomponent
* har har i am using the message tubes
* Better documentation comment
* Reverting this overengineered garbage.
* Off with ye I said
* Examine texts.
* Some minor fixes to IDE complaints
* slot size from yaml
* Ignored component + removing a useless typo entry
* Making stunbatons use this
* Handle the message and remove some unnecessary dirtiness
* actionblocker checks
* remove unused file
* remove updatevisual
* make these nullable
* make these nullable too
* Unrename sprite folder
* check itemcomponent on insertion
* Use SendMessage over Owner.SendMessage
* Add support for auto-recharging batteries, an auto-recharging cell, and make flashlight status update correctly if one is inserted in it.
* get rid of public fields which are Bad
* add a description for the stun baton while i'm in here
* one more public field
* Add the blinky animation to the atomic cell
* Fix the charge indicator being STUPID
* better comments
* this is a better function
* add pause for flashlight, remove unnecessary imports from battery
* potato battery copyright link
* WHO DID THAT
* mr clean has come
* Random pitch
* pausing
* round to nearest levels
* Body bags!
* Morgue Trays and the Crematorium!
Reorganised body bags to be under Morgue, not Medical
* Fix. Things outside of EntityStorageComponents now use the Try*Storage() not just *Storage() methods - Allows mobs to be trapped in a morgue/crematorium whose tray can't open.
* Fix tests. Modernise component dependency and nullability.
* Update Content.Server/GameObjects/Components/Morgue/MorgueTrayComponent.cs
Co-authored-by: Víctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
* basic radiation generator
* might need this
* thonk
* big thonk
* oop
* e
* werks
* sprite
* oopsy woopsy
* radiation
* clean up file
* makes it work, probably
* minor fixes
* resources
* progress on component
* this will no longer be necessary
* radiation go brrrr
* finally fix container issues
* out var
Co-authored-by: Remie Richards <remierichards@gmail.com>
* second out fix
* another out fix
Co-authored-by: Remie Richards <remierichards@gmail.com>
* switch case
* fix switch
* sound and improvements
* nullable
* basic containment field system
* ensure alignment
* fix beam placement logic
* field generation fully working
* fix potential crash
* working containment functionality
* extremely basic emitter functionality
* fix radiation panel naming
* emitter stuff
* oopsies
* fixes
* some fixes
* cleanup
* small fix and move emitter file
* add sprite resources for PA
* slight rework of the singulo
adds rads
* pushing for smugleaf :)
* added radiationpanels
* some fixes for the singulo
* containmentfield
* pa wip
* progress
* pa working
* emitter fix
* works :)
* ui works
* some work on ui & pa
* progress
* ui work & misc fixes
* GREYSCALE
* pa ui polish
containmentfieldgen rework
* singulo rework
added snapgrid
* getcomponent get out
* singulo rework
added collisiongroups underplating & passable
* yaml work:
- collision boxes
- singulo now unshaded
* no unlit
* misc changes
* pa wires
* add usability check
* nullable enable
* minor fix
* power need added
* reenables containment field energy drain
menu close button
singularity collider fix
* sprite replacement
* finished singulo pulling
* pjb fixes
* fixing sprites & minor adjustments
* decrease containmentfield power
* some yml adjustments
* unlit layers
singulogenerator
* singulogen
* everything works just not the powergetting on the pa
i wanna die
* Adds PA construction graphs, PA construction works
* Snap to grid parts when completing construction
* updated to newest master
* inb4 i work on power
* fixes upstream merge
adds power need to particleaccelerator
* properly implements power & apc power
* Emitters are now fancy.
* I have actually no idea how this happened.
* Give PA a wiring LayoutId
* PA is an acronym
* indicators
fixes hacking
* Singulo is a word you blasphemous IDE.
* Rewrite the PA.
* Fancy names for PA parts.
* Wiring fixes, strength wire cutting.
* fixes projectile & ignores components
* nullability errors
* fixes integration tests
Co-authored-by: unusualcrow <unusualcrow@protonmail.com>
Co-authored-by: L.E.D <10257081+unusualcrow@users.noreply.github.com>
Co-authored-by: Remie Richards <remierichards@gmail.com>
Co-authored-by: Víctor Aguilera Puerto <zddm@outlook.es>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
* plants and seeds go brrrr
* update plants
* P L A N T
* brrrr
* Hydroponics actually work! How about that?
* Reuse resource path in visualizer
* They lied to us.
* Several stuffs
* more werk
* Add a bunch of plants
* Logs go brr.
* Brrr moment.
* Remove unused method
* Important comment.
* Seed inventory, yo!
* tomato moment
* Balance consumption
* Makes hydroponics pourable
* Adds plant metabolism effect for sugar, the same as glucose.
* Eggplant moment
* Apple moment
* Corn moment
* Chanterelle mushroom moment
* prototype tweaks
* Seed extractor moment
* typo
* IPlantMetabolizable doc improvement
* I should trust my gut instinct more often.
* egg-plant.....
* localization
* Make WaterLevel and NutritionLevel setters private
* Less code repetition! Wooo!
* Default grids go poof
* Address review
* Update submodule
* Fix DoAfterSystem for entities without grid.
* Fix SubFloorHideSystem for entities without grid.
* Fix ExplosionHelper for coordinates that aren't in a grid
* Fix TurfHelpers' GetWorldTileBox crash in the case of invalid grid
* Fix tile prying component crash when trying to pry space.
* Spill fixes when passing coordinates without grids.
* Are you static'in, son?
* Change SaveLoadSaveTest grid Id hardcoded value
It's still hardcoded, but at least now it's correct!
* Only send debug AI thing if grid is not invalid
* Update submodule.
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
* Add mechanism events when added/removed to/from body/parts
* Change old usages
* Add TODO
* Remove BodyExtensions and IHasBody
* Remove unnecessary extensions and fix wrong event call in mechanism behavior component
* Complete test and fix event calls
* Fix?
Nuked everything and put my code back in, hope everything works
* Nullable fix?
* nullable fix electric boogaloo
* Haha nullable error go brrr
send help
* Cleanup and fix not clearing the button list
* Remove unnecessary brackets and parentheses
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
* 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
* Disable job buttons when they aren't available
In real time too, the technology is overwhelming
* Jobs are all unavailable when late join is disallowed.
* Better ToggleDisallowLateJoin command parsing
* Add togglelatejoin to groups.
Co-authored-by: Víctor Aguilera Puerto <zddm@outlook.es>
* -Added Crayons + CrayonBox
-Can set any crayon state and color
-Added CrayonDecals
* Allows to cycle through decals (not the final thing)
* ItemStatus
* -UI (WIP)
-Selection thing works
-Changed some shitty state names
* -Icons
-Changed decal name
* Pure Texture Grid
* Charges
* -Reach check
-Toggle interface on use
* Can't draw on windows anymore
* UI now shows selected decal and color
* -UseSound
-Nullable
* Remove unused imports
* -Rotation
-Made decal abstract
* Remove some duplicate images
* Space Cleaner cleans
* Loc Title
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
* Review adressed
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
* Rename usages of collidable to physics
* high tier PANIQUE
* aaaaaaaaAAAAAa
* cursed commit dont research
* Fix urist and items being anchored
* Fix the rest
* 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
- Powerful
- Data-oriented
- Approved by PJB
- Powered by node graphs and AI pathfinding
- Coded by the same nerd who brought you atmos
Co-authored-by: Exp <theexp111@gmail.com>
* add headset component
* add basic headset logic
* fix formatting in listening component, add dependency to headset
* test function for headset
* implement headset as listener
* ANNIHILATES ListeningComponent, refactor of radio/listener sys
* basic headset functionality
* rename RadioComponent to HandheldRadioComponent
* change channel to list of channels
* basic headset implementation complete
* message now always excludes ';'
* add radio color; state channel freq. and source name
* undocumented game breaking bug commit (DO NOT RESEARCH)
actually just changes frequency from 1457 (what signalers are set to by default) to 1459, the actual frequency for common
* Add more sprites
* Reorganizes
* Added job headsets
* Adds headset as an ignored component
* Jobs now spawn with headsets
* remove system.tracing
* Catchup commits
* Add headset property serialization
* Turn GetChannels into a property
* ListenRange property and serializatioon
* Adjust interfaces
* Address reviews
* Cleanup
* Address reviews
* Update rsi
* Fix licenses and copyright
* Fix missing textures
* Merge fixes
* Move headset textures from objects/devices to clothing/ears
* Fix rsi state names and add equipped states
* Fix headsets not working
* Add missing brackets to channel number in chat
* heck
* Fix broken rsi
* Fix radio id and names
* Put quotes around headset messages
* Fix method names
* Fix handheld radios
* Fix capitalization when using radio channels and trim
* Remove unnecessary dependency
* Indent that
* Separate this part
* Goodbye icons
* Implement IActivate in HandheldRadioComponent
* Add examine tooltip to radios and headsets
* Rename IListen methods
Co-authored-by: Bright <nsmoak10@yahoo.com>
Co-authored-by: Swept <jamesurquhartwebb@gmail.com>
Co-authored-by: Bright0 <55061890+Bright0@users.noreply.github.com>
* Holy crap auth works
* Fix some usages of UserID instead of UserName
* Refactor preferences.
They be non-async now. Also faster.
* Rename DbContext.
* Guest username assignment.
* Fix saving of profiles.
* Don't store data for guests.
* Fix generating invalid random colors.
* Don't allow dumb garbage for char preferences.
* Bans.
* Lol forgot to fill out the command description.
* Connection log.
* Rename all the tables and columns to be snake_case.
* Re-do migrations.
* Fixing tests and warnings.
* Update submodule
* Adds new different reaction types.
- Adds touch, injection and ingestion reactions for entities.
- Adds tile reactions.
- Removes GasSprayerComponent in favor of SprayComponent.
- Gives fire extinguishers a safety.
- Gives spray puffs a sprite.
- Improved spray and fire extinguisher in general.
- Fire extinguisher now ACTUALLY puts out fires. Amazing, eh?
- Fire extinguisher sprays three 'clouds' at once.
- Spraying flammable chemicals at fire makes them worse. Whoops!
- Gives spray and fire extinguisher their classic sounds.
- Most chemicals now don't make puddles. Too bad!
- Space lube now makes a very slippery puddle. Honk.
- Spraying water (or using a fire extinguisher) on existing puddles makes them bigger.
* Fix solution tests
* food base now has solution container with noexamine caps
* refactored storagefill component to allow for random items, amount, and conditional exclusion
* i fudged it
* yaml for the already deleted filler components
* ignoredcomponents & janifill
* remainder of toolboxes done
* emergencyclosetfill
* really makes you think
* it DOES really make you think
* orGroup
* exp111 suggestions
* last touches
* isNullOrEmpty
* Work on refactoring radiation.
* mmmm grayons
* fixes
* Now you can specify whether the pulse will decay or not
* whoops
* Move IRadiationAct to shared, make DamageableComponent implement it instead and add metallic resistances to walls
* General improvements, send draw and decay with state. Rename DPS to RadsPerSecond
* E N T I T Y C O O R D I N A T E S
* Entity coordinates goood
* Remove unused using statements
* resistances: metallicResistances
* - type: Breakable moment
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
* Make the mapping command take the next available map id if one isn't given, draft
* Remove todo
* Update clientside mapping command
* Address reviews
* Moved the uplink creation code to the PresetSuspicion.Start method to ensure uplink created when we give the traitor role
Moved the starting TC balance to cvars
* Added component to handle interaction with Atmospheric system
Added damage from high and cold temperature
* renamed AtmoExposable to AtmosExposed
moved AtmosExposed updates to its own system
refactored TemperatureComponent
renamed fire to heat
added null check for Air
added self-heating and self-cooling to body system
* small refactoring for checking on airless tile in MetabolismComponent
* Added component to handle interaction with Atmospheric system
Added damage from high and cold temperature
* renamed AtmoExposable to AtmosExposed
moved AtmosExposed updates to its own system
refactored TemperatureComponent
renamed fire to heat
added null check for Air
added self-heating and self-cooling to body system
* small refactoring for checking on airless tile in MetabolismComponent
* Removed Pressure property from BarotraumaComponent
Changed CanShiver method to match style of other CanX method in ActionBlockerSystem
* Merged EntityCoordinates and changed components to reflect the change
* Fix typo
* Wrapped string to Loc.GetString
Added CanSweat
Refactored dead state check
* Assets
* LightingBehaviours, flares, and such.
* More changes
* More changes, more flare work.
* More work on flares + light behaviours
* another refactor
* missed
* Light behaviours refactor, added sfx, improved graphics, improved lighting effects for glowstick and flare.
* remove unneeded value
* nullables
* remove old code
* nullable
* one last push
* net id
* more work
* more colors for glowsticks
* Adjust flare so it fades in
* fix name
* sprite fix
* -Makes PlayerList scrollable
-Player names clip when they are too long
-Shows Player count
* Add padding to make columns more noticeable
* -Added Separators between the columns
-Pushed List a bit down
* Add alternating row colors
* 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
* -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>
* Add button that displays your SSS role and allies
* Capitalize button name
* Add cases for 0, 1 and invalid number of allies
* Make the ally syncing system saner
* -ItemStatus for BatteryGuns
-EjectCell Verb
-Using the gun throws the battery also on the ground
* Copy the flashlight and call it a day
* Name a red fruit
* Remove SoundGunshot
* First Prototype
* Command Window
* Dropdown
* Is this better?
* That's kinda better?
* Added divider
* Shit
* Check if Admin Menu & Commands are allowed
* -Funcy Shit
-Now gets properly the playerlist
-Fixed kick reason
* Dropdown Improvement with some more func
* -Added DirectCommand for commands that don't need a ui
-Added RestartRound
* Better way to make DirectCommandButtons
* -Some new Tabs
-Player list
* -Split Buttons
-Regions
-Fixed Test Command
* Some server buttons
* Playerlist alignment
* Fucky SpawnEntites & SpawnTiles in AdminBus
* -Debug Buttons
-Few more commands
* -Make dem controls thicc
-SpinBox
* Escape Kick Reason
* Only create the window when you press the button
* Adds StationEvents
* Nullable "fixes"
* This thing wasn't made for buttons
* Call other constructor for empty CommandButton
* Request method in the interface
* -Pushed most Controls to be fields
-No more dict passing
-Removed test cmd
-Regions to better navigate
* -Bound to key
-Removed from escape menu
-Remember cmd windows
-Close all cmd windows on toggle
* -Moved dependency
* Merge fixes
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
* Add collision to disposal unit and pipes
Make disposal unit and pipes pullable
Implement proper handling of collisions in disposals
* Implement IsExiting
Move DisposalSystem to shared
* Change SharedDisosalUnitComponent to call manager.ContainsEntity directly
* Update saltern.yml
Co-authored-by: Julian Giebel <j.giebel@netrocks.info>
* 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>
* 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
* Added playing parameter to radiatingLightComponent, changed it's animation key to radiatingLight
* refactored RadiatingLight into a visualizer
* Added different light animations for differnt power states of a flashlight
* split out the radiating light visualizer into two seperate visualizers
* further refactored and tweaked handheldlight animations
* further lantern light tweaks
* removed un-used attributes in flashlight and lantern prototypes
* fix null check in handheldlightcomponent
* Started new Lobby
* -Proper styling
-Use a scrollcontainer :smilethink:
* Too lazy to add a stylerule, too young to optimize css
* Fix typo
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
* Add test that puts all components on an entity and checks for no exceptions
Also fix all the exceptions that happened because of this
* Add comments to the test
* Fix nullable errors
* Fix more nullable errors
* More nullable error fixes
* Unignore basic actor component
* Fix more nullable errors
* NULLABLE ERROR
* Add string interpolation
* Merge if checks
* Remove redundant pragma warning disable 649
* Address reviews
* Remove null wrappers around TryGetComponent
* Merge conflict fixes
* APC battery component error fix
* Fix power test
* Fix atmos mapgrid usages
* Initial commit
* Climbing uses its own controller now
* Missed a check
* Get rid of hands check
* Cleanup
* Get rid of speciescomponent stuff
* Remove unneeded check, add separate case for moving other players.
* Add DoAfter
* IClientDraggable added to ClimbingComponent
* Added some basic integration tests. Renamed ClimbMode to Climbing.
* oops
* Minor fixes
* ffff
* Table fix
* Revamped system so its more predicted, uses proper logic for de-climbing. Get hype!!!
* Flag check fix
* Distance check and reset numticksblocked
* get rid
* Switches PDAs with tg ones and renames flashlight component
* Which chucklefuck hid the ID cards in the clothing folder
* Removes Mime PDA as i'm gonna do that in another PR
* Moves EVERY SINGLE PDA over by exactly one pixel so they're aligned perfectly with the UI slot
* On second thought moves back the id-cards since I don't want to deal with conflicts
* 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 a lantern
* Add A Lantern with radiating light
* Added a GasVapor system and made a base for extinguisher spray.
* switched to using solution component for fire extinguisher
* made it so fire extinguisher's can run out of water vapor
* Added actual Gas to Gas Vapor, now getting atmosphere for touched tiles.
* Made it so gasVapor reacts and dissapates on reacting
* GasVapor now dissapates exponentially while traveling
* Added in-hands for fire extinguisher
* Added Spraysound to gasSprayer and to fire extinguisher prototype
* parameterized GasSprayer and GasVapor
* removed un-used imports in gasSprayer and gasVapor components and systems
* removed accidential threading import into gasmixturecomponent
* add a shared extinguisher component for extinguisher spray rotation instead of piggy-backing on RogueArrow
* paremeterized fuelCost and fuel name in GasSprayerComponent
* Paremeterized gasAmount, removed un-used code from gasVaporComponent
* Removed BaseItem Parent from Extinguisher_spray
* added GasVapor and GasSprayer to Ingored Components list
* reduced offset of spawned extinguisher vapor from player
* Update IgnoredComponents.cs
* renamed SharedExtinguisherComponent to SharedGasSprayerComponent and removed reference to RoguePointingArrow
* renamed shareExtinguisherComponent to SharedGasSprayerComponent
* Update Content.Server/Atmos/GasSprayerComponent.cs
Added check for solution component on GasSprayer.
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
* Update Content.Server/Atmos/GasSprayerComponent.cs
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
* Ready Indicator in the lobby
* Use SessionID instead of Name
* Don't show ready state when game is already running
* Make Ready List not selectable
* -Remove disconnected sessions from Ready
-Fix showing ReadyStatus when staying in lobby
* 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>
* Aghost Button
* Toggle Lights Button (Shitcode)
* Suicide Button
* Toggle Subfloor Button
* Changed the X icon for windows to be slimmer
* ToggleLights and ToggleSubfloor are no longer shitcode!
* Refactors SandboxWindows.cs
* Added Shows Spawns Button
* Fix
* Show Bounding Boxes Button
* I guess this helps somewhat?
* Nested SandboxWindow.cs inside of SandboxManager.cs for simplicity
* Fixes
* I forgot what I added
* Removed CSI console... for now
* Fix build
Co-authored-by: Víctor Aguilera Puerto <zddm@outlook.es>
* Station event system
Adds 2 basic events: (Power) GridCheck and RadiationStorm (based on the goonstation version).
The system itself to choose events is based on tgstation's implementation.
This also adds the event command that can be run to force specific events.
There's still some other TODO items for these to be complete, to my knowledge:
1. There's no worldspace DrawCircle method (though the radstorm could look a lot nicer with a shader).
2. The PlayGlobal power_off / power_on audio seems to cut out halfway-through
3. (I think this is a known issue) lights still emit light until you get closer in a gridcheck so PVS range might need bumping.
* Invariants for event names
* Fix random event shutdown
* Mix stereo announcements to mono
* Address feedback
* Remove redundant client system and use the overlay component instead
* Drop the server prefix
* Fix radiation overlay enum
* use entityquery instead
* zum's feedback
* Use EntityQuery
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* Improves the RCD
* oops
* Unnecessary
* Merge 2 checks
* RCD whitelist and reorganization
* Makes the RCD great again
* Ignored components
* loicense
* Fix missing using
* Let there be (vending machine) light
Cut up vending machines to have unshaded layers.
I scripted the cutting up so there might need to be minor tweaks to some of them.
Added the eris vending machine sound (I liked it more than tg's, fight me).
* Tweak sound reduction
* Mark vending as abstract
Appearance is done on each vending based on what sprite states they have (at the moment) and the vendingmachine shouldn't be spawned on its own anyway.
* Add screen layer back in
* Unstuff what was stuffed
* Removed the Soviet and USA vending machines
* Added proper licensing
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
Co-authored-by: Swept <jamesurquhartwebb@gmail.com>
* -ChemDispenser & Master can now open the UI without power
-Both can also eject beaker without power
* -Disables button if not powered
-Disables clear & eject buttons if no beaker
* Fix server freeze
* -Started Gas Analyzer
-TemperatureHelpers
* Formatting
* Adds PopupTooltip to NotifyManager
* Revert Tooltip fuckery
* Gas Analyzer gives proper error messages
* Localization
* Added a very wip gas analyzer ui
* UI works, doesn't look good but hey
* Safety checks
* Fancy WIP gas mix bar
* Gas Color
* Gas Amount shows only 2 decimal places
* -Made bar full width
-Moved gas list into a table
-Some gas bar things
* IDropped something
* Description
* -Percentage
-Padding
* ItemStatus
* -Proper Danger Warnings
-Added Warning danger state
* Pressure unit
Co-authored-by: Víctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
* do_after
Ports (most of) do_after from SS13.
Callers are expected to await the DoAfter task from the DoAfterSystem.
I had a dummy component for in-game testing which I removed for the PR so nothing in game uses do_after at the moment.
Currently only the movement cancellation is predicted client-side.
* Minor do_after doc cleanup
* do_the_shuffle
Fix nullable build errors.
* The last nullable
* Implement NeedHand
Thanks zum.
* nullable dereference
* Adjust the system query
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* Add initial atmospherics framework
* Make walls and airlocks airtight
* Add the basic atmosphere gas system
* Atmos: move CardinalToIntVec and Offset into extention methods in EntityNetworkUtils
* Optimize vending machine code a bit.
* Address feedback from Atmos PR, make code compile
Fix use of OnMove -> SnapGridComponent.OnPositionChanged.
Added pause checking to atmos simulations.
* Improvements to the existing ZAS prototype (#996)
* Rename Volume -> Quantity in GasProperty
This makes the name consistent with the rest of the code, given that
it's meant to be a mol value.
* Replace Gas enum with GasPrototype
Unused as of yet, but laying the groundwork for future changes.
* Update AtmosphereMap, improving maths
Adds a temporary default atmosphere, hardcoded in for testing. It will
be replaced eventually.
Fixed a maths mistake in the original code involving unit conversions.
Added the Take() method to IAtmosphere, for taking some volume of
mixture out of a gas mix. This will be pretty handy in the future, but
for now it's used by walls to delete air where they are built.
* Fix merging, splitting logic for zones
Removing a cell from a zone now correctly reduces its volume.
Adding a cell to a zone now correctly increases its volume.
* Improvements to atmos code, reorganising of types
Moved GasPrototype to shared, because it's going to be used by the
client later.
Split up the atmosphere code. Now zones are explicitly their own kind of
atmosphere, which should speed up some loops and also solve
inconsistencies in the volume calculation.
GasMixtures are another type of atmosphere, for more general use.
Try to fix the splitting/merging code, which was quite cryptic and not
clear at all. It *should* work now.
* Switch zones back to MapIndices
Turns out I'm an idiot who misunderstood the code. MapIndices can be
used as one-per-tile, which is what is needed for atmos. GridCoordinates
are many-per-tile, and were causing lots of problems.
* Add zone debugging overlay
This is the first example of zone information being sent to a client.
It adds the `togglezoneinfo` command, which overlays the tiles and gas
information for the zone currently occupied by the user on the screen.
This was helpful for debugging the GridCoordinates problem.
* Fix position of atmos zone debug text
* Make AirtightComponent only activate on MapInit
This should stop it splitting atmospheres in mapping.
* Doc comments improvements to AtmosphereMap
Fix some malformed comments, inherit some useful docs, document some
more functions.
* Add zone logic for changing tiles to/from space
Zones are now correctly created when all the tiles in a room are built,
and destroyed when one of the tiles is destroyed.
* update engine
* right
* Cleanup code
* Port GasMixture, further cleanup
* Fix windows not being airtight, some other stuff
* Work on atmos
* Difference between ZoneBlocked and AirBlocked
* Big GridAtmosphereManager cleanup, zones are broken now oops
* Remove zones, add excited group implementation
* Further cleanup
* Further work on atmos
* Work on gas overlay.
* PumpGasTo and ReleaseGasTo methods for GasMixture.
* Adds Tile Overlay System.
* More work on atmos
* Gasses spread, equalize and all that
* Fix a few crashes
* Gas can actually spread from room to room after opening airlocks
* Add explosive depressurization, tile prying on depressurization, gas spreading on wall break. Etc.
* More work
* Remove atmoschem, add "performant" gas overlays
* what the fuck git
* More work I guess?
* Fix stuff, create a few (empty) components for future work
* Fix temperature
* Fix tile air sharing
* Atmos optimizations
* Further atmos optimizations
* Even more optimizations!
* Update Content.Client/GameObjects/EntitySystems/GasTileOverlaySystem.cs
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
* Update Content.Client/GameObjects/EntitySystems/GasTileOverlaySystem.cs
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
* Update Content.Client/GameObjects/EntitySystems/GasTileOverlaySystem.cs
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
* Address a few reviews
* Oops, forgot to remove this
* Update Content.Server/Atmos/AtmosphereMap.cs
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
* Fix compile
* Improved client gas tile overlays
* Less allocations
* Even less allocations!
* some stuff dunno
* Big refactor time, oh yeah
* it truly is 1 AM
* bruh
* No idea why now it doesn't work.
Oh well! I'll fix this on thursday 😌
* Basic atmos serialization
* Fix bugs, add VV attributes
* Start adding stuff for gas reactions
* Add a few atmos commands
* Fill gas command
* Changes to gas opacity
* Fixes I guess
* Fixes, add space wind sound
* High pressure movement!
* Better high pressure movements.
* Fix direction, maybe?
* And now it works great
* Science!
* and this is why you don't trust people
* remove logging
* Turns out I'm fucking dumb
* Work on hotspots and reactions, add tritium gas
* IGridAtmosphereComponent interface! For future unsimulated grids.
* Makes atmos updates NoGC.
* C E A S E
* Add settemp atmos command
* Important reminder.
* Remove useless AtmosCooldown.
* More work on hotspots
* Overlays for hotspots. Fire works!
* Turns out I suck at coding
* Fire texture change
* Yeah let's make that an absolute value, hmm?
* Support for atmos after teleporting grid (more or less)
* fix attempt (doesn't actually fix it)
* Make static variable not static
* Remove magic numbers
* Stopwatch moment
* Slight cleanup.
* More cleanup.
* Atmos optimizations
* Fix build
* Remove useless ghost atmos shit
* Adds CanSeeGases component for gas overlay stuff
* Component and prototype ignores
* ExcitedGroups now dispose on being merged with others
* Some tweaking.
* Atmos now uses frame time for updates.
* Nullable boogaloo
* IExamine fix
* Fix build
* Fix restartround
* Atmos tweaking, use invalid direction
* Increase high pressure movement force
* Better sort
* Update submodule.
* NULLABILITY AAAAH
Special thanks to monster860 and all monstermos contributors!
Co-authored-by: Campbell Suter <znix@znix.xyz>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
Co-authored-by: ComicIronic <comicironic@gmail.com>
Co-authored-by: silicons <2003111+silicons@users.noreply.github.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
* Makes disposal units able to be entered when unpowered
* Make the unit's light turn off when unpowered
* Remove event handlers on component removal
* Make the disposal unit's lever engage when queueing an auto engage
* Autoengaging the lever on insert was a mistake
* Make the engage button active when engaged
* Make the engage button toggleable
* Fix nullable error
* Add disposal.rsi
* Rename disposal resource to disposal.rsi and create basic components
* Add disposal nets
* Add pushing entities along the disposal network
* Add disposal unit
* Unregister disposable component
* Add flush and selfinsert verbs to disposal unit
* Add gradual disposals movement
* Fix being able to walk through space for a while after exiting disposals
* Multiply disposals speed by 10
And fix early returns when moving an entity
* Rename Disposable component to InDisposals
* Remove DisposalNet and add on anchor events
* Remove anchored events, moved to interfaces
* Code cleanup
* Fix adjacent tubes' connections when a tube connects
* Fix jittery movement in disposals
* Remove Logger.Debug call
* Move disposals updates to InDisposalsComponent
* Fix adjacent connection valid directions check
* Disposal tubes now throw you out where they are facing
* Add disposal unit exit cooldown
* Set different disposal pipe sprite state depending on anchored value
* Add recycler
* Add recycler animation
* Add bloody texture to the recycler when grinding a living being
* Add PowerDevice component to the disposal unit
* Made the Recycler center on the grid
* Add disposal junction
* Add picking a random direction if junction is entered from the output side
* Add disposal flush and clang sounds
Taken from VGStation
* Move disposal flush and clang sound file names to exposedata
* Add disposalsmap.yml to test with
* Add summaries to DisposalUnit fields
* Add sideDegrees yaml property to disposal junctions
* Fix outdated usings
* Add conveyor resources
* Update RobustToolbox
* More merge fixes
Add conveyor collision masks
* Add ConveyorComponent
* Fix crash when reentering a body
* Merge branch 'master' into disposals-1147
* Reduce recycler bounds, set hard to false, add summary and expose "safe" to yaml
* Move IAnchored and IUnAnchored to AnchorableComponent
* Update power components and remove old disposals map
* Remove redundant sprite layers
* Add tile pry command
* Fix tilepry command
* Fix DisposalJunctionComponent missing a component reference
* Add anchor by radius command
* Add Y-Junctions
* Add disposal bend
* Add unanchor command
* Change DisposalJunction prototypes to specify their angles
* Fix disposal units being hidden below the floor
* Removed IAnhored and IUnAnchored interfaces
* Replace CanBeNull annotation with nullable reference types
* Update showwires command
* Add recycler recycling items
* Added angle and speed properties to ConveyorComponent
* Fix conveyort textures
* Add animation to the disposal unit
* Fix anchor and unanchor commands sometimes not finding any entities
* Fix not reading flush_time from disposal unit prototype
* Fix merge conflict wrong using
* Fix disposal, recycling and conveyor texture paths
Delete diverters
* Update visualizer names
* Add DisposableComponent, change drag and drop to work with multiple components
Ignoreinsideblocker client side for drag and drops, like on the server
Add more comments
* Add conveyor belts properly moving entities on top
* Anchorr wires
* Change conveyor bounds to 0.49
* Anchor catwalks, airlocks, gravity generators, low walls, wires and windows
* Add starting/stopping conveyors
* Add reversed conveyors
* Add conveyor switches
* Move InDisposalsComponent code to DisposableComponent
* Add ExitVector method to tubes
* Fix not updating tube references when disconnecting one
* Replace IoCManager call with dependency
* Add tubes disconnecting if they move too far apart from one another
* Move disposals action blocking to shared
* Add rotating and flipping pipes
* Make conveyor intersection calculations approximate
* Fix 1% chance of the server crashing when initializing the map
Happens when emergency lockers remove themselves
* Add disposal unit interface
* Make disposal units refuse items if not powered
* Make disposal tubes hide only when anchored
* Make disposal junction arrows visible to mere mortals
* Add disposal tubes breaking
* Add tubeconnections command
* Add missing verb attribute
* Add flipped disposal junction
* Add ids and linking to conveyors and switches
* Add conveyor switch prying and placing
* Add anchoring conveyor switches and refactor placing them
* Add missing serializable attributes from DisposableComponentState
* Make conveyor speed VV ReadWrite
* Change drawdepth of conveyors to FloorObjects
* Make conveyor anchored check consistent
* Remove anchoring interaction from switches
* Add conveyor switch id syncing and move switches slightly when pried
* Make entities in containers not able to be moved by conveyors
* Add conveyor and switches loose textures
* Merge conflict fixes
* Add disposal unit test
* Add flushing test to disposal unit test
* Add disposal unit flush fail test
* Add disposals to the saltern map
* Fix saltern disposal junctions
* Add power checks to the recycler
* Fix disposal unit placement in maintenance closet
* Remove disposal junctions from saltern
* Readd junctions to saltern
* Add the chemmaster to saltern at the request of Ike
* Move the chemistry disposal unit
* Fix casing of disposal flush sound
* More merge conflict fixes
* Fix a compiler warning.
* Remove popup invocation from buckle
* Remove showPopup parameter from InteractionChecks
* Remove unnecessary physics components
Fixes the physics system dying
* Replace PhysicsComponent usages with CollidableComponent
* Update existing code for the new controller system
* Change conveyors to use a VirtualController instead of teleporting the entity
* Remove visualizer 2d suffix and update physics code
* Transition code to new controller system
* Fix shuttles not moving
* Fix throwing
* Fix guns
* Change hands to use physics.Stop() and remove item fumble method
* Add syncing conveyor switches states
* Fix the recycler wanting to be a conveyor too hard
* Fix showwires > showsubfloor rename in mapping command
* Fix wifi air conveyors
* Fix test error
* Add showsubfloorforever command
Changes drawdepth of the relevant entities
* Disable opening the disposal unit interface while inside
* Add closing the disposal unit interface when getting inside
* Add closing the interface when the disposal unit component is removed
* Add removing entities on disposal unit component removal
* Delay disposal unit flush and fix serialization
* Implement pressure in disposal units
* Fix chain engaging a disposal unit
* Implement states to the disposal unit
* Fix missing imports from merge conflict
* Update Content.Server/GameObjects/Components/Conveyor/ConveyorComponent.cs
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
* Address some reviews
* Fix za buildo
* Use container helper to detach disposables
* Make conveyors use the construction system
* Make conveyor groups and syncing sane
* Make flip flip
brave
* Add activate interface to conveyor switches
* Fix not removing the switch from its group when it's deleted
* Fix not registering conveyors and switches on initialize
* Stop using 0 as null
* Disconnect conveyors and switches when disposing of a group
* Make disposal units not able to be exited when flushing
* Make disposal units flush after a configurable 30 seconds
* Add handle and light layers to the disposal unit
* Merge engaging and flushing
* Update saltern.yml
* I love using 0 as null
* Make disposal unit visual layers make sense
* Remove duplicate remove method in disposal units and update light
* Replace DisposableComponent with disposal holders
* Fix disposal holders deleting their contents on deletion
* Account for disposal unit pressure in tests and make a failed flush autoengage
* Rename disposable to holder
* Fix junction connections
* Disable self insert and flush verbs when inside a disposal unit
* Fix spamming the engage button making the animation reset
* Make the recycler take materials into account properly
Fix cablestack1 not existing
* Merge conflict fixes
* Fix pipes not being saved anchored
* Change conveyors and groups to not use an id
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
* 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
* Transition code to new controller system
* Fix shuttles not moving
* Fix throwing
* Fix guns
* Change hands to use physics.Stop() and remove item fumble method
* Added: CanReach property to AfterAttack events which signals if the attack was within reach.
Fixed: You cannot construct/deconstruct things out of reach.
Fixed: Construction entities now preserve transform rotation.
Fixed: No more exceptions about missing grids when constructing world entities.
Fixed: Used the proper intermediate sprite for intermediate entities.
Fixed: Issue with missing sprite layers on ghost.
* The alligator is greedy, he always eats the bigger number...
* Adds a check so that you cannot use tools on entities that are obstructed from view.
* Add some extra comments
* Remove the redundant closedTiles variable
* Rename some variables to better match the common naming schemes
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
The panel was staying when an individual part was toggled. I also removed some other redundant code.
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* Flash component, overlay and shader
Add BeginDraw method to Overlay.cs
* Add flash icons, sounds
* Progress
* Multiple overlays without enums
* This is probably the worst way to do this IDK
* Remove nullable reference type
* Add AttackEventArgs as parameter to OnHitEntities
MeleeWeaponComponent.Attack now continues when OnHitEntities returns true (it hit something)
Add OverlayType enum so client and server can agree on overlay ids
Move IConfigurable to its own file
Add AoE flash with shorter duration
Flashing someone slows them down
* Add arc to flash
Set item size to something reasonable
Remove chat log message when flash burns out
* Remove unused interface
* 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
* Fix client not knowing that the lobby is paused when joining after the pause
Also fixes a client thinking that a lobby is paused when joining a new one after leaving a previously paused one
* Add server announcement to delaying and pausing round start
* Add extendroundstart message to extend lobby start timer
* Rename StartExtend to DelayStart
* Fix delaystart amounts above 59 not working
* Change delaystart seconds type from int to uint
* Change delaystart wrong args amount message
* Add forcegamepreset command
* Rename forcegamepreset to forcepreset and merged start and forcestart preset methods
* Fix index out of bounds exception when forcing suspicion to start
* Change game preset to match regardless of casing
* Add forcepreset unknown preset message
* Add and move in lobby checks
* Remove testing changes
* Change delaystart to pause/resume the timer when no seconds are specified
* Change pause message
* Remove testing code
* Change 0 seconds to not be a valid amount of seconds
* Replace MsgTickerLobbyCountdown Seconds with DateTime instead of uint
* Add one entire dot
* Replace Math.Min + Math.Max with Math.Clamp
Co-authored-by: ComicIronic <comicironic@gmail.com>
Co-authored-by: ComicIronic <comicironic@gmail.com>
* UI Icon
* It worked?
* Reorganized UI
* converted the bedsheet/cloak sprites
* backpacks go over cloaks now
* Added a couple more neck clothing
* Milk Ape
* Start adding flashy flash
* Change slop
Might give a smoother decline
* flashy flash
* Add flashbang and flash projectiles
Bang bang bang pull my flash trigger
* Add collision check to area flash
* Flash cleanupo
* flash.ogg mixed to mono
* Adjusted flash curve again
* Enhancing flashes with unshaded and lights and shit
Still a WIP
* Add the other ballistic gun types
Re-organised some of the gun stuff so the powercell guns share the shooting code with the ballistic guns.
* Re-merging branch with master
Also fixed some visualizer bugs
* Last cleanup
Fixed some crashes
Fixed Deckard sprite
Fixed Hitscan effects
Re-applied master changes
Re-factor to using soundsystem
Add some more audio effects
* Cleanup flashes for merge
Can put flashbangs in lockers so you don't get blinded
Fix some bugs
* Fix shotties
Also removed some redundant code
* Bulldoze some legacycode
brrrrrrrrt
* Fix clientignore warnings
* Add the other Stunnable types to StunnableProjectile
* Some gun refactoring
* Removed extra visualizers
* All casing ejections use the same code
* Speed loaders can have their ammo pulled out
* Bolt sound less loud
* Stop ThrowController from throwing
* Fix speed loader visuals
* Update hitscan collision mask and fix typo
* Cleanup
* Fit hitscan and flashbang collisions
* Use the new flags support
* Update taser placeholder description
* Update protonames per style guide
* Add yaml flag support for gun firerates
* Cleanup crew
* Fix Audio up (components, audio file, + remove global sounds)
* Add server-side recoil back-in (forgot that I was testing this client-side)
* Add Flag support for fire-rate selectors
* Wrong int you dolt
* Fix AI conflicts
Haha ranged bulldozer go BRR
(I'll rewrite it after the other AI systems are done).
* Mix bang.ogg from stereo to mono
* Make sure serializer's reading for guns
Fixes integration test
* Change EntitySystem calls to use the static function
Also removed the Pumpbarrel commented-out code
* Change StunnableProjectile defaults to 0
* Fix taser paralyse
Apparently removing defaults means you have to specify the values, whodathunkit
* Add slowdown to stunnableprojectiles and fix tasers
* Remove FlagsFor from gun components
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
Co-authored-by: Víctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
* Add Utensil component
For eating. With utensils.
Added to fork, plastic fork, spoon, plastic spoon and plastic knife.
Ignored component on the client.
* Add break chance to utensils
Set to 20% for plastic ones
* Add break sound to utensils
* Add utensil kinds
None, fork, spoon and knife.
For sporks, forknifes and sporknifes, of course.
* Add restricting foods by utensils needed
* Fix utensils breaking when food isn't eaten
* Moved getting held utensils to FoodComponent
* Add breaking a clicking utensil even if its not necessary to eat the food
* Move use utensil code to a separate method
* Add telling a handless entity when they need an utensil to eat
The immersion is off the charts
* Change food trash to only be held when the food was also being held
* Fix Wi-Fi utensils
* Remove unnecessary utensil ItemGroup
* Made TryUseFood public, removed redundant trash position update
* Renamed UtensilKind to UtensilType
* Remove eating food when clicking with it on nothing
* Disable eating food when clicked directly if it requires an untensil to eat
* Changed "Run" to "Walk" in code
Fixes#844
* Revert "Changed "Run" to "Walk" in code"
This reverts commit bf70dc7214d08c208823bccd5d3f36854d6b80de.
* Changed "Run" to "Walk" in code
Fixes#844
This fixes one case of GridCoordinates being used unnecessarily, in
GameScreenBase.
It replaces other cases with explicit calls to TryFindGridAt and
GetDefaultGrid.
* Add meal recipe prototype class and yaml file.
Add bare bones MicrowaveComponent.
* Reformat the way recipe prototypes work to something sensible.
More work on Microwave component.
* Rewrite recipe prototype.
Fix comparer in microwavecomponent.
* Add Eris microwave RSI.
Cleaned up the Microwave component code.
* Refactor "output" to "result" for recipes/prototypes.
Remove a debug recipe from meal_recipes.yml
Add food.yml for food related reagents: sugar, flour, etc.
* Unfuck mostly everything.
* ShadowCommander is MVP.
* Add microwave visualizer. Clean up microwave code.
* Reformat 'PoweredIdle' to 'Idle'
* Refactor SoundComponent for stopping sounds.
* A shit ton of microwave stuff i can't really explain this.
* Microwave interface.
* Add (not working) basis for allowing solids (entities) in recipes.
* Microwave UI + solids implemented.
* Next up timer buttons
* Microwave is done. Added an easter egg recipe and made the cheeseburger recipe more sensible.
* Delete microwave.dmi, unneeded. Revert accidently changes to Shared EntryPoint.cs
* trying that again
* Remove unused 'ding.ogg'
* revert entrypoint to master
* revert sharedlathecomponent to master
* Pretty up the microwave menu, add click sounds. Remove some unnecessary ToList() calls. Remove unnecessary IoC resolves.
* And not a single "ToList()" went home to their family that day.....
* Seperated Reagent item list and Solid item list to allow for vaporizing particular reagents at will. (also fixes a really nasty null reference exception because they shared the same list before D: )
* Remove unncessary class dictionary and list. Fix meal prototype properties.
* lol
Co-authored-by: FL-OZ <yetanotherscuffed@gmail.com>
Co-authored-by: FLOZ <anotherscuffed@gmail.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>