Commit Graph

1998 Commits

Author SHA1 Message Date
Vera Aguilera Puerto 189a5c7847
ConstructionGL2 Part 1: ECSification, events and steps. (#5017)
- Completely rewrited the `ConstructionComponent` logic to be ECS, *without* looking too much at the original implementation.
    - The original implementation was dirty and unmaintainable, whereas this new implementation is much cleaner, well-organized and maintainable. I've made sure to leave many comments around, explaining what everything does.
- Construction now has a framework for handling events other than `InteractUsing`.
    - This means that you can now have CGL steps for things other than inserting items, using tools...
- Construction no longer uses `async` everywhere for `DoAfter`s. Instead it uses events.
- Construction event handling occurs in the `ConstructionSystem` update tick, instead of on event handlers.
    - This ensures we can delete/modify entities without worrying about "collection modified while enumerating" exceptions.
    - This also means the construction update tick is where all the fun happens, meaning it'll show up on our metrics and give us an idea of how expensive it is/how much tick time is spent in construction.
- `IGraphCondition` and `IGraphAction` have been refactored to take in `EntityUid`, `IEntityManager`, and to not be async.
- Removes nested steps, as they made maintainability significantly worse, and nothing used them yet.
- This fixes #4892 and fixes #4857

Please note, this leaves many things unchanged, as my idea is to split this into multiple PRs. Some unchanged things:
- Initial construction code is the same. In the future, it'll probably use dummy entities.
- Client-side guided steps are the same. In the future, the server will generate the guided steps and send them to clients as needed, caching these in both the server and client to save cycles and bandwidth.
- No new construction graph steps... Yet! 👀
2021-10-26 16:38:03 +02:00
metalgearsloth 27b50c9485
Sort construction graph recipes alphabetically (#5039) 2021-10-26 16:18:43 +02:00
Vera Aguilera Puerto ed3bf94a3b
Electrocution. (#4958)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2021-10-25 16:21:56 +02:00
Leon Friedrich 6e84e23ba1
Remove some functions from HandsComponent (#4937)
* remove wrapper functions

* Remove InteractionSystem wrapper functions

* remove two more functions

* add missing `using`

* clean diff
2021-10-25 18:06:12 +11:00
StStevens e621a82e65
Fire extinguisher safety (#4912)
* Moved safety into FireExtinguisherComponent.

* Fix errant find and replace

* Address reviews

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2021-10-25 18:04:24 +11:00
mirrorcult c0ecdb09af
Slipping tweaks + remove EffectBlocker (#4955)
* Slipping tweaks + remove EffectBlocker

* mfw failed merge conflict resolution

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2021-10-25 17:43:49 +11:00
Leon Friedrich e016fc9906
spray bottle fix (#5012)
* fix-spray

* move vapor rotation
2021-10-25 17:29:02 +11:00
metalgearsloth 507a1b9f84
Fix gas pipe rotation rendering (#5015) 2021-10-25 14:24:54 +11:00
metalgearsloth 5cc3f9ee30
Truncate long name / job titles for IDs (#5009) 2021-10-24 01:28:25 -07:00
ShadowCommander d568664702
Add examine, activate, and context menu to storage buttons (#4525)
* Add examine, activate, and context menu to storage buttons

* Handle UIClick
2021-10-24 16:42:47 +11:00
Alex Evgrashin 7de1ebbd77
Move RCD to ECS (#4742)
* Moved ammo to ecs

* Moved RCD to ecs

* Replaced RCDDeconstructWhitelist with Tag

* Updated new structures RCDDeconstructWhitelist

* Queue delete
2021-10-24 14:34:00 +11:00
Leon Friedrich 610f45e5cd
fix ghost component (#5000) 2021-10-23 19:29:38 -07:00
Julian Giebel 45caf25ea9
Apc device network and apc based light switch (#4908)
* Remove WireNet node group from cables
Implement extension cable components and system
Remove connection over distance logic from ApcPower... components

* Add extension cable components to prototypes

* Implement ApcNetwork
Implement ApcNetSwitch

* Fix ignoredComponents.cs

* Add friend attribute to new components

* Add construction graph for a light switch

* Address reviews

* Fix broken test

* Move ConnectionType enum to DeviceNetworkComponent
Change netId data definition to use the ConnectionType enum values

Co-authored-by: Julian Giebel <j.giebel@netrocks.info>
2021-10-23 16:23:19 -07:00
Vera Aguilera Puerto c4f6b71eb7 Fixes ShowHandItemOverlay freezing the game when the item in question has no sprite component. 2021-10-22 13:44:37 +02:00
Visne 86607e4fd6
Cargo console to XAML (#4973)
* Add and rename files

* CargoConsoleOrderMenu to XAML

* Cleanup imports

* Add and rename files

* CargoConsoleMenu to XAML

* Improve code

* CargoOrderRow/CargoProductRow to seperate files

* CargoOrderRow to XAML

* CargoProductRow to XAML
2021-10-22 02:53:18 -07:00
Pieter-Jan Briers 04b49b45a6 Fix held item overlay UIScale calculation.
Now correctly bases UI scale off viewport control and doesn't break if scale is automatic.
2021-10-22 10:10:33 +02:00
Pieter-Jan Briers 3d19a991d8
Show held item next to cursor (option). (#4658)
* Show held item next to cursor (option).

* UI scale

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2021-10-22 13:26:02 +11:00
metalgearsloth 7beb363285
Deprecate a bunch of IActionBlocker (#4852)
* Deprecate IActionBlocker ChangeDirectionAttempt

* Woops

* Throw and interact

* Deperacte speech

* ActionBlocker in fucking shambles

* CanEmote go byebye

* CanAttack is GONE

* IActionBlocker finally ded

* DRY
2021-10-21 13:03:14 +11:00
Leon Friedrich 339982d05b
fix lantern visualizer animation error (#4800)
* fix lantern-visualizer

* remove deleted check

* Remove other component.Deleted checks
2021-10-20 18:45:46 -07:00
Vera Aguilera Puerto f2fc1431aa Ignore component on client. 2021-10-19 21:15:23 +02:00
mirrorcult 636a04eccd
Armor (#4934)
* Armor

* radiation tweaks

* asphyxiation ignore resistances
2021-10-18 16:24:37 -07:00
Kara D 1b9f28200f
Remove window debug thing that was left in 2021-10-17 23:18:29 -07:00
Vera Aguilera Puerto 56a461988b Fix pipe connectors' appearance by making pipes screenlocked.
This is not an ideal solution because as an outsider, pipes will look wrong on rotated stations, however there's no way to fix this properly right now as far as I can see soooo...
2021-10-17 12:06:31 +02:00
Vera Aguilera Puerto 3001ea38cc
Add-d-ds s-s-stut-ttering t-to the g-gam-me (#4901) 2021-10-17 01:23:31 +02:00
Flipp Syder 7dc6b95a10
Moves HumanoidAppearanceComponent to ECS (#4855)
* Moves HumanoidCharacterAppearance to ECS

* Makes HumanoidAppearanceSystem work over networks

* Makes HumanoidAppearanceSystem more efficient

* Cleans up the files

* Updates privacy on a couple of functions

* Fixes a few using references, renames a file

* Makes HumanoidAppearanceSystem more cleaner

* Fixes Magic Mirror

* Cleanup

* HumanoidAppearanceComponent now has a friend

SharedHumanoidAppearanceSystem is only allowed to act on this, now

* Fixes the Body-HumanoidAppearance ECS scaffolding

* a little cleanup never hurt anybody

* quick fix for magic mirror appearance access

* Replaces a networked event with a local one

This one was... causing bugs
2021-10-17 00:28:02 +02:00
Watermelon914 4bf8a5d527
Adds hand labelers (#4903)
* Adds hand labelers

* Removes unnecessary thing

* Docs

* Reverts some changes

* Addresses comments and adds inhand sprites

* Addressed comments

Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
2021-10-16 13:34:05 -07:00
ShadowCommander 9da81ea85f
Add GhostRadio to allow ghosts to hear radio messages (#4896)
* Add GhostRadio to allow ghosts to hear radio messages

* Add GhostRadio to ignored components
2021-10-16 12:04:35 -07:00
Flipp Syder dfd59de11a
Moves HumanoidProfileEditor and CharacterSetupGui to XAML (#4866)
* Moves HumanoidProfileEditor to XAML

* Moves CharacterSetupGui to XAML
2021-10-16 15:40:25 +02:00
mirrorcult ae1ce0b31c
Status effect refactor (#4868)
* Oops! All Changes In One Commit

* try desperately to fix prediction issues and fail

* oops

* test

* actually fixes prediction issues

* port jittering to status effect

* default merge behavior + alert cooldown stuff

* silly test issue

* zabloing

* address reviews
2021-10-15 23:45:04 +02:00
Alex Evgrashin ce0b73ef62
Description for Uplink UI (and preset uplinks) (#4870)
* testing decription textlabel

* Move uplink listing to a new menu

* Add search bar

* Added description

* Added radio uplink

* Added preset uplinks

* Minor fix

* Fixed comma
2021-10-15 12:49:59 +02:00
Swept e34888373a
Respriting the codebase (#4820)
* Walls

* Airlocks mostly ported

* Disposal Unit

* Tiles

* Lighting

* Catwalk

* Windows

* Some vending machine work

* More Vending Machines

* Rest of vending machine sprites ported

* Fixes to vending machines

* Tables (This took a lot of work)

* Fixes low walls being required for window smoothing
- Also replaces window damage visualization

* Plasma Window

* APC

* SMES + Reorganized parts.yml

* Furniture and Organization and Removed Shelf

* Renamed seats.yml to chairs.yml

* Dispensers

* Lazy-fixed the glass airlocks

* Don't need this no more

* Tilez

* blue circuit my fucking beloved

* Switches lights to cev one

* Conveyors and Switch

* Reorients lights

* !ALERT! MAP CHANGES !ALERT!

Co-authored-by: Vera Aguilera Puerto <gradientvera@outlook.com>
2021-10-15 11:58:40 +02:00
Pieter-Jan Briers d52965cbd1 Fix disconnecting inside lobby.
Fixes #4862
2021-10-13 20:43:40 +02:00
moonheart08 9250bd62cb
Admin shuttle call button (#4859)
* shuttle call ui

* shuttle call ui

* Localize shuttle commands better.

* localization fix
2021-10-13 10:15:28 -07:00
JasperJRoth cd91e6c06b
Crayon fix (#4848)
* removed line that broke crayon decals

* Removed rotation from crayon decals.
2021-10-12 23:56:35 -07:00
metalgearsloth 07303e7a4b Remove some more unused fields 2021-10-13 17:38:20 +11:00
Pieter-Jan Briers 97143d91ac Fix a broken null check on .NET 6 RC 2 2021-10-13 02:44:26 +02:00
Vera Aguilera Puerto 26c77a0d0b
GasTileOverlay now uses a struct enumerator for enumerating overlays for a given tile. (#4844) 2021-10-12 17:20:32 +02:00
Julian Giebel a6f2c21919
Device network as ecs (#4205)
* Work on DeviceNetworkSystem

* Implement device networking as ecs
Remove mailing unit code for now
Remove device network metadata

* Implement integration tests for device networking

* Remove manual updating DeviceNetworkSystem and use WaitRunTicks

* Fix wrong component name in ignored components

* Apply suggestions from code review

Co-authored-by: mirrorcult <notzombiedude@gmail.com>

* Rename NetworkUtils to DeviceNetworkConstants
Change connection type constants to enum
Remove create function from network payload class

* Change broken nodegroup check in wirenet to grid check

* Change ComponentManager to entity manager in DeviceNetworkSystem

* Fix smaller mistakes

* Wtf random test fail pls run them again smh

* Fix DataField in DeviceNetworkComponent

* Fix yaml in DeviceNetworkTest

* Fix DeviceNetworkComponent DeviceNetId property

Co-authored-by: Julian Giebel <j.giebel@netrocks.info>
Co-authored-by: mirrorcult <notzombiedude@gmail.com>
2021-10-11 14:41:18 -07:00
Vera Aguilera Puerto 6eee256b11
Refactors stunnable to be ECS. (#4819)
Also cleans up StandingStatesystem.
2021-10-10 12:47:26 +02:00
moonheart08 19a588a70a
Adds a adminbus button to delete the singularity (#4816) 2021-10-10 12:47:15 +02:00
mirrorcult 9b4e495c95
Blast doors & shutters (#4822) 2021-10-10 12:43:50 +02:00
E F R f5ed593ac2
client/atmos: Fix pipe overlay rotation (#4823)
The Pipe Connection Visualizer failed to account for entity rotation,
making the connection overlay sprites appear out of sync with the actual
entity connections.
2021-10-10 10:30:07 +02:00
Vera Aguilera Puerto 67fd509c9f
Adds jittering. (#4809)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2021-10-09 17:30:04 +02:00
moonheart08 f635909d4e
Admin announcement panel. (#4803) 2021-10-09 10:54:27 +02:00
moonheart08 a2b04482a4
Add a warning dialog to the observe button. (#4794) 2021-10-08 16:22:57 +02:00
Vera Aguilera Puerto a00cc43889 Add missing localization to ConstructionMenuPresenter. 2021-10-08 13:45:32 +02:00
Alex Evgrashin df3b766139
Telecrystals (and a bit more ECS) (#4775) 2021-10-08 12:26:42 +02:00
moonheart08 401974d549
Renames KickWindow, adds a Respawn command button. (#4791)
* Renames KickWindow, adds a Respawn command button.

* Additionally fix PlayerActionsWindow not correctly having the buttons disabled on open.
2021-10-07 14:48:47 -07:00
Swept 6b474c75f8
Renames all mob IDs from stupid old format (#4789) 2021-10-07 18:59:59 +00:00
Vera Aguilera Puerto 365c7da4dc
Makes tools and welders ECS, add ToolQualityPrototype. (#4741) 2021-10-07 13:01:27 +02:00
20kdc b3f43509d1
Basic AHelp Panel, Ported & Fixed (#4776)
* Graft from https://github.com/space-wizards/space-station-14/pull/3049

* 'openahelp' command

* Add AHelp into escape menu

* Add a way to ahelp a player from the kick window

* bwoink: XAMLify, bugfix, etc.

* Rename the kick/bwoink window the Player Actions Panel

* Add the bwoink sound y'all know and love

adminhelp.ogg taken from d775e1ac80/sound/effects/adminhelp.ogg
 (available in master, therefore see master license: "All assets including icons and sound are under a Creative Commons 3.0 BY-SA license unless otherwise indicated.")
 "Changed the adminhelpsound to some creative commons sound I pinched. Until somebody can get a better one. I'm sick of MAAAAAAAAOOOOOOW."
 Actual source is https://freesound.org/people/martian/sounds/19261/ (CC0)
 The sound had been reversed and the volume altered.

* Actually play the bwoink sound on receiving an ahelp that you didn't send
2021-10-06 17:25:27 +02:00
Vera Aguilera Puerto 05b8d40071 Add scrolling to permissions' admin/rank lists.
Fixes #4714
2021-10-06 16:22:17 +02:00
Vera Aguilera Puerto da215096da Adds title to Edit Admin Rank window.
Fixes #4715
2021-10-06 15:35:59 +02:00
Leon Friedrich 6cb58e608b
ECS verbs and update context menu (#4594)
* Functioning ECS verbs

Currently only ID card console works.

* Changed verb types and allow ID card insertions

* Verb GUI sorting and verb networking

* More networking, and shared components

* Clientside verbs work now.

* Verb enums changed to bitmask flags

* Verb Categories redo

* Fix range check

* GasTank Verb

* Remove unnecessary bodypart verb

* Buckle Verb

* buckle & unbuckle verbs

* Updated range checks

* Item cabinet verbs

* Add range user override

* construction verb

* Chemistry machine verbs

* Climb Verb

* Generalise pulled entity verbs

* ViewVariables Verb

* rejuvenate, delete, sentient, control verbs

* Outfit verb

* inrangeunoccluded and tubedirection verbs

* attach-to verbs

* remove unused verbs and move VV

* Rename DebugVerbSystem

* Ghost role and pointing verbs

* Remove global verbs

* Allow verbs to raise events

* Changing categories and simplifying debug verbs

* Add rotate and flip verbs

* fix rejuvenate test

* redo context menu

* new Add Gas debug verb

* Add Set Temperature debug verb

* Uncuff verb

* Disposal unit verbs

* Add pickup verb

* lock/unlock verb

* Remove verb type, add specific verb events

* rename verb messages -> events

* Context menu displays verbs by interaction type

* Updated context menu HandleMove

previously, checked if entities moved 1 tile from click location.

Now checks if entities moved out of view.

Now you can actually right-click interact with yourself while walking!

* Misc Verb menu GUI changes

* Fix non-human/ghost verbs

* Update types and categories

* Allow non-ghost/human to open context menu

* configuration verb

* tagger verb

* Morgue Verbs

* Medical Scanner Verbs

* Fix solution refactor merge issues

* Fix context menu in-view check

* Remove prepare GUI

* Redo verb restrictions

* Fix context menu UI

* Disposal Verbs

* Spill verb

* Light verb

* Hand Held light verb

* power cell verbs

* storage verbs

and adding names to insert/eject

* Pulling verb

* Close context menu on verb execution

* Strip verb

* AmmoBox verb

* fix pull verb

* gun barrel verbs

revolver verb
energy weapon verbs
Bolt action verb

* Magazine gun barrel  verbs

* Add charger verbs

* PDA verbs

* Transfer amount verb

* Add reagent verb

* make alt-click use ECS verbs

* Delete old verb files

* Magboot verb

* finalising tweaks

* context menu visibility changes

* code cleanup

* Update AdminAddReagentUI.cs

* Remove HasFlag

* Consistent verb keys

* Remove Linq, add comment

* Fix in-inventory check

* Update GUI text alignment and padding

* Added close-menu option

* Changed some "interaction" verbs to "activation"

* Remove verb keys, use sorted sets

* fix master merge

* update some verb text

* Undo Changes

Remove some new verbs that can be added later

undid some .ftl bugfixes, can and should be done separately

* fix merge

* Undo file rename

* fix merge

* Misc Cleanup

* remove contraction

* Fix keybinding issue

* fix comment

* merge fix

* fix merge

* fix merge

* fix merge

* fix merge

* fix open-close verbs

* adjust uncuff verb

* fix merge

and undo the renaming of SharedPullableComponent to PullableComponent. I'm tired of all of those merge conflicts
2021-10-04 20:29:03 -07:00
metalgearsloth e801ffac45
Update content for joints refactor (#4487)
* Update content for joints refactor

* Fix tumbler

* Fix pulling crash

* Fixes
2021-10-04 15:35:03 +11:00
Pieter-Jan Briers 661105dadd Make launcher connecting dialog show disconnect reason again 2021-10-04 01:45:39 +02:00
Vera Aguilera Puerto 54a2b5dee0
Adds rule button to lobby and character creation. Add IC naming warning. (#4760) 2021-10-03 21:48:29 +00:00
Vera Aguilera Puerto 3e2a8738a9
PopupSystem now uses Filter methods for getting players from entities. (#4751) 2021-10-03 16:15:15 +02:00
Visne 553ca72c74
Remove usages of SizeFlags (#4662)
* Remove usages of SizeFlags

* Remove defaults
2021-10-03 13:37:52 +02:00
Paul Ritter 6fdb364497
Admin overlay (#4728)
* adds admin overlay

* fixes things
2021-10-03 13:34:36 +02:00
metalgearsloth 3a202989dc
Update showbb command (#4710) 2021-10-03 17:58:19 +11:00
Galactic Chimp 61f1c8a05c
#3898 open sprite field for drink comp (#4235)
* temp

* #3898 some progress on DrinkCanVisualizer

* Fixed implementation

* Moved drink can sprite layer definition to abstract parent

* Added open drink can sprites

* #3898 - fixes for drink cans' sprite field after merge + moved UpdateAppeareance from DrinkComponent to DrinkSystem

* Update Content.Server/Nutrition/EntitySystems/DrinkSystem.cs

* #3898 removed obsolete comment

Co-authored-by: Javier Guardia Fernández <DrSmugleaf@users.noreply.github.com>
2021-10-03 15:56:29 +11:00
Alex Evgrashin e5df8dbee3
Moving PDA to ECS (#4538)
* Moved pen slot to separate component

* Moved it all to more generic item slot class

* Add sounds

* Item slots now supports many slots

* Some clean-up

* Refactored slots a bit

* Moving ID card out

* Moving pda to system

* Moving PDA owner to ECS

* Moved PDA flashlight to separate component

* Toggle lights work through events

* Fixing UI

* Moving uplink to separate component

* Continue moving uplink to separate component

* More cleaning

* Removing pda shared

* Nuked shared pda component

* Fixed flashlight

* Pen slot now showed in UI

* Light toggle now shows correctly in UI

* Small refactoring of item slots

* Added contained entity

* Fixed tests

* Finished with PDA

* Moving PDA uplink to separate window

* Adding-removing uplink should show new button

* Working on a better debug

* Debug command to add uplink

* Uplink send state to UI

* Almost working UI

* Uplink correcty updates when you buy-sell items

* Ups

* Moved localization to separate file

* Minor fixes

* Removed item slots methods events

* Removed PDA owner name

* Removed one uplink event

* Deleted all uplink events

* Removed flashlight events

* Update Content.Shared/Traitor/Uplink/UplinkVisuals.cs

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Update Content.Server/Containers/ItemSlot/ItemSlotsSystem.cs

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Update Content.Server/Containers/ItemSlot/ItemSlotsSystem.cs

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Update Content.Server/GameTicking/Presets/PresetTraitorDeathMatch.cs

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Item slots system review

* Flashlight review

* PDA to XAML

* Move UplinkMenu to seperate class, fix WeightedColors methods

* Move UI to XAML

* Moved events to entity id

* Address review

* Removed uplink extensions

* Minor fix

* Moved item slots to shared

* My bad Robust...

* Fixed pda sound

* Fixed pda tests

* Fixed pda test again

Co-authored-by: Alexander Evgrashin <evgrashin.adl@gmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Visne <vincefvanwijk@gmail.com>
2021-10-03 15:05:52 +11:00
20kdc eb82dd3dae
Fix #4070, Visualizer Edition (#4730)
* Transform the Cloning Pod visualizer into a generic enum visualizer for simple cases like it

...I find it helpful at times like these to remind myself that our true enemy is
code. Code is what makes our programs run and generally is required for all of
these machinations to function in any way at all...

* Give the kitchen/meat spike a visualizer

* GenericEnumVisualizer: Byteify enums, switch to TryGetComponent for sprite
2021-10-02 16:43:47 -07:00
Alex Evgrashin 3b9146a11d
Fix deployable barrier light toggle (#4739) 2021-10-02 16:53:20 +02:00
mirrorcult 402cd9b56b
Many lighting tweaks (#4709) 2021-10-01 20:59:06 +00:00
Vera Aguilera Puerto c421ec5f63 Add DoorBumpOpener to ignored components, on the client. 2021-10-01 14:47:03 +02:00
Vera Aguilera Puerto 47107c6a42 Adds linting support to SoundCollectionPrototype, fix linter errors.
Closes #4580
2021-10-01 12:40:44 +02:00
Vera Aguilera Puerto ac81b207d7 Fix PDA uplink UI.
Just a quick fix for the playtest.
2021-09-30 13:24:45 +02:00
metalgearsloth ad783396f8
Update CloseTo to CloseToPercent (#4708) 2021-09-29 20:07:01 +10:00
Vera Aguilera Puerto 0be5ff829b
Gets rid of all ComponentManager usages. (#4707) 2021-09-28 13:35:29 +02:00
metalgearsloth 91665cf0e6
Optimise emergency lights a bit (#4567)
* Optimise emergency lights a bit

* Fixes

* Delete the failing test, sinple

* Revert "Delete the failing test, sinple"

This reverts commit 7d9e3a3bb6975c15add2987e39e0d3ba85d88be3.

* Start server and fix test

It just werks
2021-09-27 14:51:17 +10:00
Vera Aguilera Puerto f913d8361d
Refactors smoking to ECS, smoking actually makes you inhale reagents. (#4678) 2021-09-26 15:19:00 +02:00
Vera Aguilera Puerto 0767bd3777
Popup ECS Refactor (#4692) 2021-09-26 15:18:45 +02:00
Vera Aguilera Puerto 6cea9cb973
Refactor Flammable to be ECS. (#4671)
- Refactor IHotItem into IsHotEvent.
- Refactor IFireAct into TileFireEvent.
2021-09-22 11:05:33 +02:00
Pieter-Jan Briers 900e912c28 Disable light blur on lowest lighting quality. 2021-09-21 08:21:01 +02:00
Swept ae54ad188e
Changes most uses of Color.Green to Color.LimeGreen for better visuals (#4666) 2021-09-20 21:50:02 -07:00
Visne 610ff0083f
Ghost UI to XAML and minor cleanup (#4637)
* Remove unused class, clean up XAML

* Move GhostGui.cs into UI folder and namespace

* GhostTargetWindow to seperate file

* GhostTargetWindow to XAML

* Center request button

* Improve UI, localisation
2021-09-21 13:03:14 +10:00
metalgearsloth a8908427a8 Remove some unused fields 2021-09-21 00:16:52 +10:00
Vera Aguilera Puerto f1490f4d85 Cleanup microwave and ExpendableLight sound stop code.
Now this doesn't throw anymore, so no need to try catch it.
2021-09-20 11:25:12 +02:00
Vera Aguilera Puerto cda67df317 Fix some warnings relating to fields being unused. 2021-09-20 11:22:59 +02:00
Visne fcc1217e5d
Stop using some obsolete stuff (#4657) 2021-09-19 23:40:22 -07:00
Visne 3895266b1f
Remove last usage of MarginContainer (#4659)
* Remove usage of MarginContainer

* Fix margin
2021-09-19 23:40:03 -07:00
Visne 00b31d21f5
Remove last HSplitContainer usage (#4655) 2021-09-19 13:03:02 -07:00
Visne 5451f9eda1
Get rid of any usage of VBoxContainer/HBoxContainer (#4653)
Co-authored-by: Swept <sweptwastaken@protonmail.com>
2021-09-19 17:56:04 +00:00
Visne 73171835f1
MedicalScannerWindow to XAML UI (#4641) 2021-09-19 17:36:09 +00:00
Visne 9e5628ab5e
MainMenuControl to XAML (#4642) 2021-09-19 17:34:46 +00:00
Visne 4f125f9c4a
ResearchConsoleMenu to XAML UI (#4640)
* Create/rename files

* ResearchClientServerSelectionMenu to XAML

* ResearchConsoleMenu to XAML

* Localization
2021-09-19 10:23:32 -07:00
Swept 8e802b4305
Refactors Vending Menu to XAML-UI (#4614)
* Initial

* Some web-edit reviews

* Keep VV

* Applied Reviews
2021-09-19 17:21:05 +00:00
Swept b84930cc31
Refactors APC Window to XAML-UI (#4624) 2021-09-19 17:18:58 +00:00
Visne 093cf98b93
PaperWindow to XAML UI (#4639)
* Rename/add files

* PaperWindow to XAML
2021-09-19 10:01:01 -07:00
Visne 5063689d81
GravityGeneratorWindow to XAML UI (#4638)
* Move color handling to localization strings, small improvements

* Create/move files to UI namespace

* Actually change namespace

* Move to XAML

* Improve localization
2021-09-19 09:59:55 -07:00
Visne a993af07c7
Credits window to XAML UI (#4622) 2021-09-17 09:10:24 -07:00
Visne 70260c21b5
Disposals UI to XAML (#4623)
* DisposalUnitWindow to XAML

* DisposalTaggerWindow to XAML

* Remove unused imports

* DisposalRouterWindow to XAML

* Fix localization
2021-09-17 09:09:45 -07:00
mirrorcult 62f6c8dd8e
Wieldable/two-handed weapons (#4554)
* wielding kinda works

* rough out all the edges, wielding works nicely

* popups + loc

* increase damage & extra damage against whitelist

* small fixes

* forgot to actually do that

* reviews

* reviews + thing

* use resistances and not extradamageagainstwhitelist

* slashy

* make increasedamageonwield and melee hit events work with modifiersets

* Silly individual
2021-09-17 07:16:11 -07:00
Vera Aguilera Puerto 078a62762f
Improves the JobSpecial system. (#4626)
* Improves the JobSpecial system.

* clean up code
2021-09-16 23:17:19 +10:00
metalgearsloth 820069ba9c
Fixes for grid rotation (#4562)
* Fixes gas overlays
* Fixes verbs
*Set noRot on a bunch of stuff
2021-09-16 13:02:10 +10:00
Pieter-Jan Briers cd6c2bb373 Improve ExaminedEvent to handle newlines for you with helper methods. 2021-09-15 16:58:15 +02:00
Pieter-Jan Briers ce6e37bdd8 ECS-ify Construction[Ghost]Component IExamine. 2021-09-15 16:36:56 +02:00
Leon Friedrich df584ad446
ECS damageable (#4529)
* ECS and damage Data

* Comments and newlines

* Added Comments

* Make TryChangeDamageEvent immutable

* Remove SetAllDamage event

Use public SetAllDamage function instead

* Undo destructible mistakes

That was some shit code.

* Rename DamageData to DamageSpecifier

And misc small edits

misc

* Cache trigger prototypes.

* Renaming destructible classes & functions

* Revert "Cache trigger prototypes."

This reverts commit 86bae15ba6616884dba75f552dfdfbe2d1fb6586.

* Replace prototypes with prototype IDs.

* Split damage.yml into individual files

* move get/handle component state to system

* Update HealthChange doc

* Make godmode call Dirty() on damageable component

* Add Initialize() to fix damage test

* Make non-static

* uncache resistance set prototype and trim DamageableComponentState

* Remove unnecessary Dirty() calls during initialization

* RemoveTryChangeDamageEvent

* revert Dirty()

* Fix MobState relying on DamageableComponent.Dirty()

* Fix DisposalUnit Tests.

These were previously failing, but because the async was not await-ed, this never raised the exception.

After I fixed MobState component, this exception stopped happening and instead the assertions started being tested & failing

* Disposal test 2: electric boogaloo

* Fix typos/mistakes

also add comments and fix spacing.

* Use Uids instead of IEntity

* fix merge

* Comments, a merge issue, and making some damage ignore resistances

* Extend DamageSpecifier and use it for DamageableComponent

* fix master merge

* Fix Disposal unit test. Again.

Snapgrids were removed in master

* Execute Exectute
2021-09-14 10:07:37 -07:00
Visne 973926fc9a
Add chess (and mostly just tabletop backend stuff) (#4429)
* Add draggable tabletop component

* Use EntityCoordinates instead

* Don't send coordinates every frame

* Add chessboard + verb WIP

* Add documentation, verb networking works now

* Work so far
Need PVS refactor before being able to continue
Current code is broken

* viewsubscriber magic

* yes

* Fix map creation

* Add chess pieces, attempt prediction

* Add chess sprites and yml

* Clamping + other stuff

* fix

* stuff

* StopDragging() StartDragging()

* add piece grabbing

* Refactor dragging player to seperate event

* 🤣 Who did this 🤣💯👌

* 📮 sussy 📮

* Update chessboard sprite, scale piece while dragging

* yes

* ye

* y

* Close tabletop window when player dies

* Make interaction check more sane

* Fix funny behaviour when stunned

* Add icon

* Fix rsi

* Make time passed check more accurate

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Use EyeManager.PixelsPerMeter

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Add missing import

* Move viewport properties to XAML

* Make shared system and component abstract

* Use built in EntityManager

* Use RaiseNetworkEvent instead of SendSystemNetworkMessage

* Cache ViewSubscriberSystem

* Move unnecessary code to prototype

* Delete map on component shutdown instead of round restart

* Make documentation match rest of codebase

* Use ComponentManager instead of TryGetComponent

* Use TryGetComponent instead of GetComponent

* Add nullspace check to ClampPositionToViewport()

* Set world pos instead of local pos

* Improve server side verification

* Use visualizer

* Add netsync: false to sprites using visualizer

* Close window when chessboard is picked up

* Update to master

* Fix bug when opening window while another is opened

* Use ComponentManager

* Use TryGetValue

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2021-09-13 19:58:44 +10:00
Paul Ritter 4c7670fe82
conveyor & recycler ecs (#4537)
* conveyor done, recycler still todo

* done, just need to suss out the physics part. pinged sloth about it

* ship it
2021-09-10 17:26:05 +10:00
Vera Aguilera Puerto 77fe21eb0d
Refactors flashes to ECS, sunglasses protect you from being flashed. (#4579)
* Refactors flashes to ECS, sunglasses protect you from being flashed.

* VV ReadWrite for FlashImmunity Enabled.

* Use cached IEntityLookup.

* Consistent formatting.

* Fix flashbang duration.
Flash duration is a mess.

* Small area flash code cleanup.

* Flashable state is only sent to attached player.
2021-09-10 00:20:41 +10:00
metalgearsloth ff40a7665d
Ambient sound system (#4552)
* Ambient sound system

Client-side system that plays audio from nearby objects that are randomly sampled.

* Decent

* Tweaks

* Tweaks

* Comment this out for now

* reduce VM sound

* Fix rolloff

* Fixes

* Volume tweak
2021-09-07 18:47:23 +10:00
Pieter-Jan Briers dbd6704fef Remove unnecessary attenuation set.
Guess I'm fixing content after all.
2021-09-07 08:06:39 +02:00
Pieter-Jan Briers ca50a5f993 Clean up the escape menu XAML a bit. 2021-09-07 00:30:08 +02:00
Ygg01 c209e3f29b
Solution refactor (#4407)
* Rename SolutionContainerCaps -> Capability

* Move IExamine event to Chemistry System.

* ECS the ISolutionChange into SolutionChangeEvent

* Unify SolutionContainer into a single shared component

* Replace ISolutionInteraction with SolutionContainerComponent

* Move all methods from SolutionContainer to ChemistrySystem

* Refactor EntitySystem calls to Dependencies

* Refactor SolutionContainer to SolutionManager

* Fix yamls

* Fix test fails

* Fix post merge issues

* Fix various issues with SolutionManager

* More fixes

* Fix more components

* Fix events not being directed

* Fixes for Hypospray

* Separate removal and iteration on Metabolism

* Fix creampie problems

* Address some of sloth's issues

* Refactors for Systems

* Refactored solution location

* Fix tests

* Address more sloth issues

* Fix dependency

* Fix merge conflicts

* Add xmldocs for Capabilities components

* Remove HasSolution/TryGetDefaultSolution and Add/Remove Drainable/Refillable

* Replace Grindable/Juiceable with Extractable

* Refactor field names

* Fix Drainable

* Fix some issues with spillable and injector

* Fix issues with Grinder

* Fix Beaker having duplicate solutions

* Fix foaming

* Address some MGS issues

* Fix Uid issues

* Fix errors in solution Tranfer

* Fixed some extra values constant values

* Cola is drinkable now
2021-09-06 23:49:44 +10:00
metalgearsloth c5a0b18be1 Fix icon smoothing on rotated grid 2021-09-05 17:23:47 +10:00
Ygg01 53b53c3e0e
Cigarette ecs (#4495)
* Reorganized Shared.Storage folder

* Replace StorageCounter with Item Counter

* Change stack visuals setting data

* Fix mirrorcult suggestions

* Fix items from upstream

* Fix type formatting
2021-09-04 10:42:32 -07:00
metalgearsloth 5ade8c2695
Fix pulling lerping (#4550) 2021-09-01 19:35:16 -07:00
metalgearsloth 03d1df8190
Fix lobby exception (#4544)
From what I could tell whenever LobbyState is entered it makes a new Lobby + CharacterSetup GUI via Startup. These events are never disposed of under Shutdown + the lobby should be null whenever we're not in LobbyState (as the control ends up disposed).

The lobby == null checks could probably also be null asserts as they shouldn't be null when those methods are being called.
2021-09-01 16:39:19 -07:00
Pieter-Jan Briers a3fc00dc29 Change some data definitions to not do IoC resolve in their constructors. 2021-09-01 13:23:52 +02:00
metalgearsloth df7d6c4d90
PoweredLight uses PointLights for appearance (#4540)
* PoweredLight uses PointLights for appearance

Previously this just set PointLightComponent data via the visualizer which lead to desyncs in the data between client and server. If the server pointlight was dirtied at any point then the pointlight data set via appearance visualizers was bulldozed.

* Address review
2021-08-31 18:45:02 +10:00
Alex Evgrashin 4c873e53f2
Refactor ghost boo to ECS (#4511)
* Moved ghost boo to ecs

* Fixed small light exception

* No need to inject EM

* Moved cooldown and time to fields

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2021-08-31 18:33:55 +10:00
Vera Aguilera Puerto d1fe278afc Stack components are now entirely logicless.
- GetState is handled in SharedStackSystem
- Adds friend attributes to the stack components
2021-08-30 11:49:09 +02:00
Pieter-Jan Briers 9cf37b6e68 Fix event handler leaks in LauncherConnecting 2021-08-30 01:50:54 +02:00
metalgearsloth 4e46cf7d27
Make content use EntityLookupFlags (#4531)
* Use lookup flags

* Woops
2021-08-29 14:23:11 +10:00
Paul Ritter e11a9b282a
machine linking refactor to ecs (#4323)
* started work

* some more work, ui working (somewhat)

* stuff

* reorganization

* some more reorg

* conveyors

* conveyors working

* finalized (dis)connection
added linkattempt
added feedback text
work on conveyors

* removed command
add rangecheck

* fixed inrange check

* handling

* ui no longer kanser, ship it

* adresses reviews

* reformats file

* reformats file

Co-authored-by: Paul <ritter.paul1+git@googlemail.com>
2021-08-27 17:46:02 +02:00
Alex Evgrashin 18a1178654
Fix admin events UI (#4530) 2021-08-26 11:45:05 +02:00
Leon Friedrich 32d99eaba9
Damageable Refactor 3: Revenge of the Instamerge (#4524)
* Add DamageType And DamageGroup Prototypes

* Remove DamageTypePrototype Field "name" as its redundant

* Change I/DamageableComponent to use prototypes

* Update DamageContainer, ReisistanceSet and DamageChangeData

* Change Barotrauma Component to use DamageType from DamageSystem

* Update AsteroidRockComponent

* update some more components

* update some more components

* Fix m o r e c o m p o n e n t s and their damageType

* all thats left is bug/missing node hunting then verification.

* push changes

* update submodule

* Merge fixes

* push DGP for example

* update damagecomponent across shared and server

* fix a few bugs

* Fix Merge issues

* Refactor damageablecomponent update (#4406)

* Fixing merge.

I messed up part of the merge. this should fix it?

* Barotrauma now uses prototypeManager

As System.Runtime.CompilerServices also has a [Dependency], I think I had to use the full path [Robust.Shared.IoC.Dependency]

* FlammableComponent now uses prototypeManager

* SuicideCommands now use prototypeManager

* Changed  many files to use prototypeManager to resolve damaege prototypes

Yeah.... prototype references would be very nice. maybe this was all a waste of time.

* Grouping prototypeManager.Index with datafield definitions

This will make it easier to eventually add prototype references

* removed unused variable

* Moved lines around.

Lines now consistent with other TODO PROTOTYPE blocks

* Grouping more prototypeManager.Index with datafield definitions

* Removed unnecessary code

* Added more prototypeManager indexing

These ones weren't pointed out by DrSmug. But I think this is all of them? That or my regex is shit.

* Remove redundant _damage field

* Remove redundant _currentTemperature

* Moved variables down

* Added prototypeManager indexing to TemperatureComponent

* WeaponComponent/System now use ProtptypeManager

And as far as I can tell damageType is required, and therefore should never have been null anyway?

* Make ranged weapon clumsy fire effects datafields

And yes, the order in which the clumsy effects occur is very important.

* Made damage on vital body part loss a datafield

* Renamed several damageGroup variables to group

* Capitalised DamageListToDamageGroup

* Make radiation and explosion damage types datafields

* Renamed _supportedDamageGroupIDs and _supportedDamageTypeIDs

* Fixed mistakes

Frogot to remove prototypeManager index DamageTypeTrigger, and wrong variable visibility in TemperatureComponent

* Added necessary code

Is something tragically wrong?

* MeleeWeapon damageType is not actually required

* Fixing someone else's mistakes

A search comes up with nothing in the yaml files, and its not a required field. So no one uses it? Hopefully?

* Changed and renamed damageTypeToDamageGroup

Previously would incorrectly return the total container damage for each group, not the total in the group

* renaming varitables

* Renamed variable DamageClasses

* Added dictionary converting functions

* Added ID-keyed dictionaries

* Making MedicalScanner use ID dictionaries, instead of prototype dictionaries

Oh oh no. I've been able to avoid UI & networking up until now. I have no Idea what I am doing.

* Fix Medical Scanner

* Summary (required)

The joke here is that this fixes the empty summary.

* Removed DamageableComponent.GetDamageGroup/Type

* Renamed "damage classes" to groups.

* Update ChangeDamage description

* Replaced Heal() with SettAllDamage()

Heal() was just a confusing name,

* More Class -> Group renaming

* Replace Class with Group in yaml files

DamageClassTrigger does not appear in any yaml? only in testing?
DamageTypeTrigger appears only in human.yaml?
HealthChangeMetabolism is Mostly in medicine.yml and one in soad.yaml

Why the hell is Cola metabolizable by plants? Who is pouring cola on their plants!?!?

* Fix _prototypeManager being null errors.

* Changing comments

Where are the prototype references

* MetabolismComponent doesn't give free heals anymore.

* Changes HungerComponent healing.

Previously I think it would actually damage you.  Only did this as I though it was causing the fast healing. Turns out that was just BREATHING.

* Generalised a function in DamageableComponent and moved it to DamageGroupPrototype

previously DamageTypesDictToDamageGroupDict was private to DamageableComponent, but was also quite general (nearly a static function). As this sort of function may be needed by other components using DamageGroupPrototypes in the future, I moved it there as a static function instead.

* modified DamageableComponent.ChangeDamage()

ignoreResistances was renamed to ignoreDamageResistances to make it clearer that it had no effect on healing.

Now uses default argument for ignoreDamageResistances, so when healing you are not forced to specify an argument that does nothing.

Also made some general changes to ignoreResistances()

* Changed class->group and added missing damage type functionality to DamageContainerPrototypes

* Added Comments to damage.yml

* Misc Changes to DamageableComponent

* Differentiated between group support and group applicability

So far, every damage type is a member of one, and only one, damage group. So this change has no real effect so far.

* Added proposed alternative to ChangeDamage()

* fixed error in DamageGroupPrototype

* Changes to DamageableComponent

Lots of changes to comments.
Some variables renamed in IDamageableComponent and DamageableComponent (also required renaming in other files)

Some minor logic changes, mostly for incorrect descirptions of boolean return values.

Also further differentiating between ApplicableGroups and SupportedGroups... if that will ever even matter

* Generalised MedicalScannerComponent

If needed, can print miscellaneous damage types now

* Fixed HealthChangeMetabolism bug

* Changing Comments around

* More questions

* Made Barotrauma default to blunt

* Fix RejuvenateTest.cs

* Comments

* Coments and variable names

* fix some master-merge issues

* Removed redundant fields

* Misc changes for readbility of PR diff

* Consistent naming

* Fixed atmos damage bug

* Removed Ranting

* Fixed Hunger after I broke it

* Fixing Bugs

* Removed stupid question

* Removed more stupid questions

* Fix potential null errors.

* Made boolean return values consistent

Also renamed several functions, to make it clear they return a bool. Docs were also updated.

* Removed IoCManager.InjectDependencies()

* Removed unnecessary 'suffocation' prefix

* Fixed Spelling

Also removed accidentally left in logger call

* Fixed Medical Scanner

* Apply suggestions from code review

Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>

* Changing comments and whitespaces

* Made damage thresholds trigger  datafields required

* So many typos

* Changes to DamageableComponents

Changed documentation in IDamageableComponent

Made testing code more readable.

Relabelled groups as 'Applicable' either 'Fully Supported'

* Removed function and degeneralised

* Update DamageableComponent.cs

Removed unused parameters
Fixed Networking

* Added IoCManager.Resolve

* Now using alternative TryChangeDamage()

* Removed function from DamageGroupPrototype

* Removing comments

* Remove bad if statement?

* Fix damageChanged ordering

* Fix hurt server command

* Changed //TODO PROTOTYPE blocks

Now use PrototypeManager differently. Wherever possible, only retrieve the prototype once.

Also added default damage types to some more datafields

* Update Content.Shared/Damage/Container/DamageContainerPrototype.cs

Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>

* renamed _accumulatedHealth -> _accumulatedDamage and added TODOs

* Another class-> group

* Fix bug in generalisation of damage container prototypes

* Addes Tests to make sure I dont keep adding bugs to my own code.

* Changed Return values when setting

* Removed unused class

* Added more tests, split tests into three files

* Made damage types public and VV read-write-able

* Minor changes to DamageableComponent

Replaced internal use of GetDamagePerType with _damageDict and removed some unnecessary fields

* Fix Suicide, by adding IoC Resolve()

* Fix DamageGroupTrigger bug

* Fix typos in tests

* Change comments./docstrings & spacing

* Merge tests, use test prototypes

Co-authored-by: Leon Friedrich <60421075+leonsfriedrich@users.noreply.github.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>

* Fix merge issues

Co-authored-by: Silver <Silvertorch5@gmail.com>
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
Co-authored-by: Leon Friedrich <60421075+leonsfriedrich@users.noreply.github.com>
2021-08-24 11:06:27 -06:00
Silver e708091518
Revert "Refactor Damage to use Protoypes (#4262)"
This reverts commit 20bf5739a9.
2021-08-24 01:06:32 -06:00
Silver 20bf5739a9
Refactor Damage to use Protoypes (#4262)
* Add DamageType And DamageGroup Prototypes

* Remove DamageTypePrototype Field "name" as its redundant

* Change I/DamageableComponent to use prototypes

* Update DamageContainer, ReisistanceSet and DamageChangeData

* Change Barotrauma Component to use DamageType from DamageSystem

* Update AsteroidRockComponent

* update some more components

* update some more components

* Fix m o r e c o m p o n e n t s and their damageType

* all thats left is bug/missing node hunting then verification.

* push changes

* update submodule

* Merge fixes

* Revert "#3935 implemented suggestions from PR"

This reverts commit a9b1c7b96333ca570067d6a9df1954481005892a.

* #4219 revert of single sound removal in EmitSoundSystem

* #4219 single sounds in EmitSoundSystem should work now

* #4219 some small project tweaks

* push DGP for example

* update damagecomponent across shared and server

* fix a few bugs

* #4219 upgraded EmitSoundSystem to use SoundSpecifier

* replacing sound (collection) names with SoundSpecifier - part 1

* #4219 pr tweaks

* #4219 pr tweak

(cherry picked from commit 00b80cb1df2434259ab5df45188e176be57603af)

* emitsoundsystem tweak

* first windoor commit

* finished yaml

* windoors work #Dab

* sound + locked prototypes

* Inserted SoundSpecifier where appropiate

* added comment

* removed TryGetSound + made some SoundSpecifier datafields required

* changed some prototypes' sound paths

* test fixes

* Fix Merge issues

* Made plasma grindable (#4334)

Co-authored-by: SETh lafuente <cetaciocascarudo@gmail.com>
Co-authored-by: Swept <sweptwastaken@protonmail.com>

* Automatic changelog update

* Fixes invalid yaml line (#4408)

* Fix potential timer exception

* SetTile during extensions test (#4409)

Mainly so it can actually account for accurate grid bounds when doing the test

Co-authored-by: metalgearsloth <metalgearsloth@gmail.com>

* Update submodule

* GasFilter appearance, EnabledAtmosDeviceVisualizer improvements.

* Add Enabled property to SubFloorHideComponent, make it networked. (#4404)

* Refactor IDoorCheck into entity events (#4366)

* IDoorCheck refactored to events

# Conflicts:
#	Content.Server/Atmos/TileAtmosphere.cs
#	Content.Server/Doors/Components/AirlockComponent.cs
#	Content.Server/Doors/Components/FirelockComponent.cs
#	Content.Server/Doors/Components/ServerDoorComponent.cs
#	Content.Server/Doors/IDoorCheck.cs

* namespaces

* Fix mapinit bug with refreshautoclose

* ok i guess these just didnt feel like staging today

* Automatic changelog update

* AtmosDevices can optionally process in space. (#4405)

Refactors some misc atmos things, too.

* Fix gravity generator yeeting

* Enables nullables for atmos internals

* Meth (#4186)

* adds an overdose metabolism with sensible default settings

* adds the compoenents for the run fast part of meth

* not sure what I changed here but I trust my past self to not fuck up for once

* adds basic meth recipe

* correctly names comething

* I really should've checked my spelling before making this pr

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* adds suggestion from the maintaner, who managed to get to this pr suprisingly fast

* Revert "adds suggestion from the maintaner, who managed to get to this pr suprisingly fast"

This reverts commit 9b0f07402e35ed5890b3af805691b690671b950c.

* tweak

* tweak

* git's gitting on my nerves

* some small tweaks

* don't need these anymore

* makes some stuff required

* changes the meth recipe to arbitary bullshit to get the yaml thingy to leave me alone goddamnit

* extremely minor change

* removes overdose, because however it's gonna be done, it's definitely not my way

* i should really double check every key I press

* hm

* sigh, I should be more thorough with looking at error messages.

* beenus

* gay sex is gay

* this one goes out to bingo

* reviews

* not sure why status lifetime description wasn't being commited

* Update MovespeedModifierMetabolism.cs

Co-authored-by: mirrorcult <notzombiedude@gmail.com>

* adds VV to component variables

* rebalances meth, and makes the completely unrealistic recipe properly work now

* meth effects should go away now or something do you think I test these changes before pushing??

* ah yes, orginization

* adds proper recipe and prequisite chemicals

* fixes linter hopefully

* Update chemicals.yml

* a

* starts working on prediction

* thing

* predmiction??

* changes thing

* does it properly

* uses timespan instead of timer

* uses dif timers and adds a system

* updates robust and tweaks a small thing

* Fixes

* "Fix" prediction

* starts changing the timer to timespans to avoid icky on timer end

* okay fixes the check thing but now meth is broken and I don't know why

* fixes predicition (partially)

* Delete ContentNetIDs.cs

whoops

* some changes advised by sloth

* certified scalycode fix right here

* moves resettimer to the metabolism to make it less oop stinky

* moves resettimer to the metabolism to make it less oop stinky

* gamin

* when the  is

* updates mth colour to be accurate because I forgot

* abc hard ok

* everything should be up to date now

* makes MovespeedModifierMetabolism ECS and cleans up some other stuff

* does a fixy wixy

* fix thing

* Revert "Merge branch 'master' of https://github.com/space-wizards/space-station-14 into meth"

This reverts commit 62886561098be02f9adb6352f4e858a8269d5bd5, reversing
changes made to ca34fffb5b7a40f19aec7b9e4bc37bdeab914bc1.

* Revert "Revert "Merge branch 'master' of https://github.com/space-wizards/space-station-14 into meth""

This reverts commit 4f550da19656abfd0be05f818fc6b7100252d5b8.

* fix hopefully

* updates metabolism to works with mirror's fancy new system

* updates yaml + tweaks

* bruh

* yaml moment

* :yaml moment

* Revert " :yaml moment"

This reverts commit 8cb51573c64db76d989de22acdbb9c50b2c6d052.

* 99th commit yay, also I need to not do this

* removes something that I don't need

* makes system work with this and gets rid of unnesescary check

* make the update only work on active components

* oops

* Cleanup

* alphabetise this shit

* Touchup

* Woops stupid alloc by me

* Nerf nyoom for now

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: mirrorcult <notzombiedude@gmail.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>

* Automatic changelog update

* Random offset for DefaultGrid every round (#4411)

* Random offset for DefaultGrid every round

This is useful to make coders aware of entitycoordinates and mapcoordinates being different and to help spot problems early. It also puts the onus of fixing positioning bugs back onto the original coder rather than someone else if they happen to spot it.

* Fix clickable test

* Fix entitysystemextensions

* Automatic changelog update

* Document a few atmos classes.

* Update submodule

We do a little bit of debugging

* Make pulling feel less crap (#4414)

Something something pulling refactor someday

* Automatic changelog update

* Comment joint prediction

* Add CVar for random grid offset, disable it by default.

* Fixes not taking pressure damage in space.
Fixes #4415

* Automatic changelog update

* Adds an alternate jumpsuit for botany (#4419)

* Adds an alternate botanists jumpsuit

* Updated license information

* Automatic changelog update

* Added two new small areas to maintenence (#4359)

Co-authored-by: SETh lafuente <cetaciocascarudo@gmail.com>

* Automatic changelog update

* Updated meta.json to standard

* Update meta.json to standard

* a

* Revert "Update meta.json to standard"

This reverts commit 4c6702f17b.

* Revert "Updated meta.json to standard"

This reverts commit 8ea7a3ad1f.

* fix rsi

* proper sprites + visualizes nicely

* Removes broken new-line markers from a few desc.

* Fixes a localization error with solution container descriptions

* construction

* reviews + test

* remove SetLayerVisibility, doesnt work for some reason

* swept moment

* leftover

* Automatic changelog update

* Fix can't return to body bug (#4424)

* Automatic changelog update

* Update submodule

* Fix gas tile overlays on shuttles

* Offset station on roundstart again

* Fix PlaceableSurface incorrect coordinate usage.
It set world position to entity coordinate positions...

* Automatic changelog update

* Fix pickup animation incorrect coordinate usage.
Animation finalPosition was world position, while initialPosition was local position.

* Automatic changelog update

* Pointing coordinate fixes.

* Automatic changelog update

* Further pickup animation improvements.

* Adds Science Windoors (#4433)

Co-authored-by: SETh lafuente <cetaciocascarudo@gmail.com>

* Gave CMO a Hardsuit (#4434)

Co-authored-by: SETh lafuente <cetaciocascarudo@gmail.com>

* Automatic changelog update

* Fixed station engineer table spawn (#4436)

* Maps in windoors (#4432)

* Automatic changelog update

* Losing a head doesn't mean you lose your eyes #3956 #4061 (#4225)

Co-authored-by: Michael Will <will_m@outlook.de>

* Automatic changelog update

* Adds windoors for security and the brig. (#4441)

* Automatic changelog update

* Remaps Chemistry and Security, and some Mapping Fixes (#4442)

* Automatic changelog update

* Made the cloning pod and medical scanner constructible (#4439)

* Made the cloning machine pod constructable

* Added everything like I did but with the Medical Scanner

Co-authored-by: SETh lafuente <cetaciocascarudo@gmail.com>

* Automatic changelog update

* Fix fixed-point format specifier in PowerCellComponent

* Update submodule

* Actually update submodule

The last one was a test to check if you were paying attention.

* Update maps for grid collisions (#4450)

* Update submodule

* Fixes the windoor in science. (#4444)

* Automatic changelog update

* Remove IActionBlocker.CanMove (#4449)

* Remove IActionBlocker.CanMove

Ported the remainders over to using MovementAttemptEvent which should also help make mob movement a bit faster.

* Make that check faster

* Added restrictions for what can be inserted into most belts (#4367)

* Belts now restrict what can be inserted into them

* Bandolier now only holds shotgun shells

* Tiny typo

* Another tiny typo

* Automatic changelog update

* Fix indentation

* Fix stuff

* Fix gas canister

* Organize gas canister prototype

* Fix audio occlusion

This was previously being done on every SoundComponent.

* Call SoundSystem instead

* Parents crowbar-red and merges RSIs

* Deletes old crowbar_red.rsi

* Abstracts BasePlushie and ReagentContainerBase

* Adds missing suffixes to debug items and tags them all

* Crematorium now makes a noise on start and during cremation (#4459)

* Automatic changelog update

* Refactor disposals to ECS (#4418)

* ECS up disposals

Also significantly reduced its CPU usage.

* Make update significantly less S L O W

* Start units pressurised

* Client-side flush lerping

* Fix powered not toggling UI

* Fix flush button

* InteractUsing

* Minor optimisations

* Fix collisions

* Make visual state ECS

* Almost done with shared

* Most stuff moved

* Optimise item sleeping

* Automatic changelog update

* Fix door sound dampening (#4453)

* Completely fix NPC pathfinding

Through rigorous investigation and hard work.

* Implement Entity List Display and rework StorageComponent window (#4140)

* Create EntityListDisplay

* Rework ClientStorage window

* Add styling

* Remove unnecessary colors

* Rename list

* Make scrollbar push content

* Change children update a bit

* Add old index

* Localize ClientStorageComponent

* Add size return

* Remove spaces

* Fix usings

* Fix tool sounds.
Fixes #4465

* Automatic changelog update

* Fix missing sounds (#4466)

* Fix missing sounds

* Make SoundHitSpecies fallback to SoundHit

* Fix crayon YAML

* Update PlaySoundBehavior YAML

* Fix required

* Update README.md

* Fix taser physics (#4470)

* Increase MoverController performance (#4448)

Should be a decent amount; rest will come from removing IActionBlocker.

* Remove throwing fixture error

* Update submodule

* Fix sound crash when making foam (#4476)

* Automatic changelog update

* Centers some sprites

* Fix showatmos

* Fix tests.
Flashlight RSI state names had been changed, and some places weren't updated properly

* Remove pillcomponent (#4469)

* Remove PillComponent

* Make food without any solution left delete and create trash

* Replace PillComponent references with a Pill tag

* Clean up

* Add swallow message to food

* Change to eatMessage override

* Change FoodComponent transferAmount to nullable

* Change properties to private

* ItemCabinetVisualizer uses layers (#4445)

* ItemCabinetVisualizer uses layers

* Reviews applied

* Fixes the fireaxe cabinet as well

* I'm dumb

* Fixes bedsheets being unpickupable (#4479)

* Automatic changelog update

* Adds inhands for crayons and the crayon box (#4481)

* Automatic changelog update

* Fixes cigarette animations and matches now have lit/unlit inhand sprites (#4480)

* Automatic changelog update

* Adds plant clippers and changes hydro tool sprites to be more consistent (#4482)

* Adds plant clippers

* Updates sycthe, hoe and spade sprites

* Adds inhands for radio/walkietalkie (#4483)

* Adds inhands for radio/walkietalkie and separates layers

* License thingy

* Fixes test

* Can now equip fireaxe, claymore, spear and baseball back on your back (#4484)

* Can equip spears and claymores on your back now

* Adds fireaxe and baseball bat back equip

* Automatic changelog update

* Makes Match[sticks/box] ECS, Makes Matchsticks ignite plasma

* am big dumdum pls no shed

* Owner Transform to Owner in SoundSystem calls (#4460)

* Owner Transform to Owner

* Owner Transform to Owner minor fixes

* Improve hand pickup code
This way I can break EntityCoordinates' API without breaking content.
BWAHAHAHAHAH!

* Update submodule

* Version v0.5.11 does not exist

* Update submodule

We don't talk about v0.5.12 either.

* Update submodule

For the last time

* Adds duck-related content and a seclite (#4489)

* Added rubber ducky

* Adds ducky slippers

* Adds seclite

* Update Resources/Textures/Objects/Tools/seclite.rsi/meta.json

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

* Update Resources/Textures/Objects/Fun/ducky.rsi/meta.json

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

* The duck slippers now quack as you walk

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

* Automatic changelog update

* Adds the ability to assign equip sounds in ClothingComponent (#4485)

* Initial

* Works (Kinda)

* Polish

* Reviews

* Removes vending inventory desc and adds missing vending machine descriptions (#4493)

* Removes inventory descriptions

* Adds missing vending machine descriptions using inventory descriptions

* Woops missed a file

* Automatic changelog update

* Adds a ton more inhands (#4488)

* Removed useless loc and added inhands for some lamps

* Adds a ton of inhands to the game

* Actually adds the pill inhand

* Update Resources/Textures/Objects/Misc/utensils.rsi/meta.json

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

* Update Resources/Textures/Objects/Tools/rcd.rsi/meta.json

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

* Added open/close/stacklayers for Matchbox and inhands (#4496)

* Added open/close/stacklayers for Matchbox

* Added inhands for matchbox

* What am I a clown not gonna leave no indent spaces

* Adds sound to fire extinguisher safety (#4494)

* Automatic changelog update

* Adds a 6pack of Cola (#4499)

* Adds a 6pack of Cola

* Revert "Adds a 6pack of Cola"

This reverts commit 99f024b94ab3c684ce62e28018bd0fe2f26a2e09.

* Revert "Revert "Adds a 6pack of Cola""

This reverts commit 9e3d31e41c8ea61a962ad7d4d3c0ea7124e82653.

* Automatic changelog update

* Fix H-pulling? (#4425)

In retrospect the answer is easy, but man this took a while.

* Automatic changelog update

* Makes DiceComponent ECS

* Makes PlaceableSurface ECS

* Added classic announcement sound to announcements (#4504)

* Automatic changelog update

* Refactors throw events, makes cream pies ECS (#4500)

* Automatic changelog update

* Port the tumbler from Box2D (#4486)

* Subscribe TransformComponent events by-ref (#4478)

* Refactor damageablecomponent update (#4406)

* Fixing merge.

I messed up part of the merge. this should fix it?

* Barotrauma now uses prototypeManager

As System.Runtime.CompilerServices also has a [Dependency], I think I had to use the full path [Robust.Shared.IoC.Dependency]

* FlammableComponent now uses prototypeManager

* SuicideCommands now use prototypeManager

* Changed  many files to use prototypeManager to resolve damaege prototypes

Yeah.... prototype references would be very nice. maybe this was all a waste of time.

* Grouping prototypeManager.Index with datafield definitions

This will make it easier to eventually add prototype references

* removed unused variable

* Moved lines around.

Lines now consistent with other TODO PROTOTYPE blocks

* Grouping more prototypeManager.Index with datafield definitions

* Removed unnecessary code

* Added more prototypeManager indexing

These ones weren't pointed out by DrSmug. But I think this is all of them? That or my regex is shit.

* Remove redundant _damage field

* Remove redundant _currentTemperature

* Moved variables down

* Added prototypeManager indexing to TemperatureComponent

* WeaponComponent/System now use ProtptypeManager

And as far as I can tell damageType is required, and therefore should never have been null anyway?

* Make ranged weapon clumsy fire effects datafields

And yes, the order in which the clumsy effects occur is very important.

* Made damage on vital body part loss a datafield

* Renamed several damageGroup variables to group

* Capitalised DamageListToDamageGroup

* Make radiation and explosion damage types datafields

* Renamed _supportedDamageGroupIDs and _supportedDamageTypeIDs

* Fixed mistakes

Frogot to remove prototypeManager index DamageTypeTrigger, and wrong variable visibility in TemperatureComponent

* Added necessary code

Is something tragically wrong?

* MeleeWeapon damageType is not actually required

* Fixing someone else's mistakes

A search comes up with nothing in the yaml files, and its not a required field. So no one uses it? Hopefully?

* Changed and renamed damageTypeToDamageGroup

Previously would incorrectly return the total container damage for each group, not the total in the group

* renaming varitables

* Renamed variable DamageClasses

* Added dictionary converting functions

* Added ID-keyed dictionaries

* Making MedicalScanner use ID dictionaries, instead of prototype dictionaries

Oh oh no. I've been able to avoid UI & networking up until now. I have no Idea what I am doing.

* Fix Medical Scanner

* Summary (required)

The joke here is that this fixes the empty summary.

* Removed DamageableComponent.GetDamageGroup/Type

* Renamed "damage classes" to groups.

* Update ChangeDamage description

* Replaced Heal() with SettAllDamage()

Heal() was just a confusing name,

* More Class -> Group renaming

* Replace Class with Group in yaml files

DamageClassTrigger does not appear in any yaml? only in testing?
DamageTypeTrigger appears only in human.yaml?
HealthChangeMetabolism is Mostly in medicine.yml and one in soad.yaml

Why the hell is Cola metabolizable by plants? Who is pouring cola on their plants!?!?

* Fix _prototypeManager being null errors.

* Changing comments

Where are the prototype references

* MetabolismComponent doesn't give free heals anymore.

* Changes HungerComponent healing.

Previously I think it would actually damage you.  Only did this as I though it was causing the fast healing. Turns out that was just BREATHING.

* Generalised a function in DamageableComponent and moved it to DamageGroupPrototype

previously DamageTypesDictToDamageGroupDict was private to DamageableComponent, but was also quite general (nearly a static function). As this sort of function may be needed by other components using DamageGroupPrototypes in the future, I moved it there as a static function instead.

* modified DamageableComponent.ChangeDamage()

ignoreResistances was renamed to ignoreDamageResistances to make it clearer that it had no effect on healing.

Now uses default argument for ignoreDamageResistances, so when healing you are not forced to specify an argument that does nothing.

Also made some general changes to ignoreResistances()

* Changed class->group and added missing damage type functionality to DamageContainerPrototypes

* Added Comments to damage.yml

* Misc Changes to DamageableComponent

* Differentiated between group support and group applicability

So far, every damage type is a member of one, and only one, damage group. So this change has no real effect so far.

* Added proposed alternative to ChangeDamage()

* fixed error in DamageGroupPrototype

* Changes to DamageableComponent

Lots of changes to comments.
Some variables renamed in IDamageableComponent and DamageableComponent (also required renaming in other files)

Some minor logic changes, mostly for incorrect descirptions of boolean return values.

Also further differentiating between ApplicableGroups and SupportedGroups... if that will ever even matter

* Generalised MedicalScannerComponent

If needed, can print miscellaneous damage types now

* Fixed HealthChangeMetabolism bug

* Changing Comments around

* More questions

* Made Barotrauma default to blunt

* Fix RejuvenateTest.cs

* Comments

* Coments and variable names

* fix some master-merge issues

* Removed redundant fields

* Misc changes for readbility of PR diff

* Consistent naming

* Fixed atmos damage bug

* Removed Ranting

* Fixed Hunger after I broke it

* Fixing Bugs

* Removed stupid question

* Removed more stupid questions

* Fix potential null errors.

* Made boolean return values consistent

Also renamed several functions, to make it clear they return a bool. Docs were also updated.

* Removed IoCManager.InjectDependencies()

* Removed unnecessary 'suffocation' prefix

* Fixed Spelling

Also removed accidentally left in logger call

* Fixed Medical Scanner

* Apply suggestions from code review

Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>

* Changing comments and whitespaces

* Made damage thresholds trigger  datafields required

* So many typos

* Changes to DamageableComponents

Changed documentation in IDamageableComponent

Made testing code more readable.

Relabelled groups as 'Applicable' either 'Fully Supported'

* Removed function and degeneralised

* Update DamageableComponent.cs

Removed unused parameters
Fixed Networking

* Added IoCManager.Resolve

* Now using alternative TryChangeDamage()

* Removed function from DamageGroupPrototype

* Removing comments

* Remove bad if statement?

* Fix damageChanged ordering

* Fix hurt server command

* Changed //TODO PROTOTYPE blocks

Now use PrototypeManager differently. Wherever possible, only retrieve the prototype once.

Also added default damage types to some more datafields

* Update Content.Shared/Damage/Container/DamageContainerPrototype.cs

Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>

* renamed _accumulatedHealth -> _accumulatedDamage and added TODOs

* Another class-> group

* Fix bug in generalisation of damage container prototypes

* Addes Tests to make sure I dont keep adding bugs to my own code.

* Changed Return values when setting

* Removed unused class

* Added more tests, split tests into three files

* Made damage types public and VV read-write-able

* Minor changes to DamageableComponent

Replaced internal use of GetDamagePerType with _damageDict and removed some unnecessary fields

* Fix Suicide, by adding IoC Resolve()

* Fix DamageGroupTrigger bug

* Fix typos in tests

* Change comments./docstrings & spacing

* Merge tests, use test prototypes

Co-authored-by: Leon Friedrich <60421075+leonsfriedrich@users.noreply.github.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>

* Add Alt-click functionality (#4497)

* Fix ItemSlot Bug

* Add Alt-use Key

* Fix TransferAmount window bug

* Alt-click functionality

* Added AltInteract verbs

* Add new verbs

* verb icons

* Changed Comments

* Change Comments

* Fix disposal verbs

* Changed Get...() to Get...OrNull()

* Changed alt-interact combat behaviour

* Update verb icons

* Inventory interact event

* Add Alt+E secondary binding

* Add alt-z keybinding

* Rename AltUse -> AltActivateItemInWorld

* Automatic changelog update

* Fixes chocolate/energy bar (#4503)

* Bring refactor-damageablecomponent branch up-to-date with master (#4510)

* Revert "#3935 implemented suggestions from PR"

This reverts commit a9b1c7b96333ca570067d6a9df1954481005892a.

* #4219 revert of single sound removal in EmitSoundSystem

* #4219 single sounds in EmitSoundSystem should work now

* #4219 some small project tweaks

* #4219 upgraded EmitSoundSystem to use SoundSpecifier

* replacing sound (collection) names with SoundSpecifier - part 1

* #4219 pr tweaks

* #4219 pr tweak

(cherry picked from commit 00b80cb1df2434259ab5df45188e176be57603af)

* emitsoundsystem tweak

* first windoor commit

* finished yaml

* windoors work #Dab

* sound + locked prototypes

* Inserted SoundSpecifier where appropiate

* added comment

* removed TryGetSound + made some SoundSpecifier datafields required

* changed some prototypes' sound paths

* test fixes

* Made plasma grindable (#4334)

Co-authored-by: SETh lafuente <cetaciocascarudo@gmail.com>
Co-authored-by: Swept <sweptwastaken@protonmail.com>

* Automatic changelog update

* Fixes invalid yaml line (#4408)

* Fix potential timer exception

* SetTile during extensions test (#4409)

Mainly so it can actually account for accurate grid bounds when doing the test

Co-authored-by: metalgearsloth <metalgearsloth@gmail.com>

* Update submodule

* GasFilter appearance, EnabledAtmosDeviceVisualizer improvements.

* Add Enabled property to SubFloorHideComponent, make it networked. (#4404)

* Refactor IDoorCheck into entity events (#4366)

* IDoorCheck refactored to events

# Conflicts:
#	Content.Server/Atmos/TileAtmosphere.cs
#	Content.Server/Doors/Components/AirlockComponent.cs
#	Content.Server/Doors/Components/FirelockComponent.cs
#	Content.Server/Doors/Components/ServerDoorComponent.cs
#	Content.Server/Doors/IDoorCheck.cs

* namespaces

* Fix mapinit bug with refreshautoclose

* ok i guess these just didnt feel like staging today

* Automatic changelog update

* AtmosDevices can optionally process in space. (#4405)

Refactors some misc atmos things, too.

* Fix gravity generator yeeting

* Enables nullables for atmos internals

* Meth (#4186)

* adds an overdose metabolism with sensible default settings

* adds the compoenents for the run fast part of meth

* not sure what I changed here but I trust my past self to not fuck up for once

* adds basic meth recipe

* correctly names comething

* I really should've checked my spelling before making this pr

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* adds suggestion from the maintaner, who managed to get to this pr suprisingly fast

* Revert "adds suggestion from the maintaner, who managed to get to this pr suprisingly fast"

This reverts commit 9b0f07402e35ed5890b3af805691b690671b950c.

* tweak

* tweak

* git's gitting on my nerves

* some small tweaks

* don't need these anymore

* makes some stuff required

* changes the meth recipe to arbitary bullshit to get the yaml thingy to leave me alone goddamnit

* extremely minor change

* removes overdose, because however it's gonna be done, it's definitely not my way

* i should really double check every key I press

* hm

* sigh, I should be more thorough with looking at error messages.

* beenus

* gay sex is gay

* this one goes out to bingo

* reviews

* not sure why status lifetime description wasn't being commited

* Update MovespeedModifierMetabolism.cs

Co-authored-by: mirrorcult <notzombiedude@gmail.com>

* adds VV to component variables

* rebalances meth, and makes the completely unrealistic recipe properly work now

* meth effects should go away now or something do you think I test these changes before pushing??

* ah yes, orginization

* adds proper recipe and prequisite chemicals

* fixes linter hopefully

* Update chemicals.yml

* a

* starts working on prediction

* thing

* predmiction??

* changes thing

* does it properly

* uses timespan instead of timer

* uses dif timers and adds a system

* updates robust and tweaks a small thing

* Fixes

* "Fix" prediction

* starts changing the timer to timespans to avoid icky on timer end

* okay fixes the check thing but now meth is broken and I don't know why

* fixes predicition (partially)

* Delete ContentNetIDs.cs

whoops

* some changes advised by sloth

* certified scalycode fix right here

* moves resettimer to the metabolism to make it less oop stinky

* moves resettimer to the metabolism to make it less oop stinky

* gamin

* when the  is

* updates mth colour to be accurate because I forgot

* abc hard ok

* everything should be up to date now

* makes MovespeedModifierMetabolism ECS and cleans up some other stuff

* does a fixy wixy

* fix thing

* Revert "Merge branch 'master' of https://github.com/space-wizards/space-station-14 into meth"

This reverts commit 62886561098be02f9adb6352f4e858a8269d5bd5, reversing
changes made to ca34fffb5b7a40f19aec7b9e4bc37bdeab914bc1.

* Revert "Revert "Merge branch 'master' of https://github.com/space-wizards/space-station-14 into meth""

This reverts commit 4f550da19656abfd0be05f818fc6b7100252d5b8.

* fix hopefully

* updates metabolism to works with mirror's fancy new system

* updates yaml + tweaks

* bruh

* yaml moment

* :yaml moment

* Revert " :yaml moment"

This reverts commit 8cb51573c64db76d989de22acdbb9c50b2c6d052.

* 99th commit yay, also I need to not do this

* removes something that I don't need

* makes system work with this and gets rid of unnesescary check

* make the update only work on active components

* oops

* Cleanup

* alphabetise this shit

* Touchup

* Woops stupid alloc by me

* Nerf nyoom for now

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: mirrorcult <notzombiedude@gmail.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>

* Automatic changelog update

* Random offset for DefaultGrid every round (#4411)

* Random offset for DefaultGrid every round

This is useful to make coders aware of entitycoordinates and mapcoordinates being different and to help spot problems early. It also puts the onus of fixing positioning bugs back onto the original coder rather than someone else if they happen to spot it.

* Fix clickable test

* Fix entitysystemextensions

* Automatic changelog update

* Document a few atmos classes.

* Update submodule

We do a little bit of debugging

* Make pulling feel less crap (#4414)

Something something pulling refactor someday

* Automatic changelog update

* Comment joint prediction

* Add CVar for random grid offset, disable it by default.

* Fixes not taking pressure damage in space.
Fixes #4415

* Automatic changelog update

* Adds an alternate jumpsuit for botany (#4419)

* Adds an alternate botanists jumpsuit

* Updated license information

* Automatic changelog update

* Added two new small areas to maintenence (#4359)

Co-authored-by: SETh lafuente <cetaciocascarudo@gmail.com>

* Automatic changelog update

* Updated meta.json to standard

* Update meta.json to standard

* a

* Revert "Update meta.json to standard"

This reverts commit 4c6702f17b.

* Revert "Updated meta.json to standard"

This reverts commit 8ea7a3ad1f.

* fix rsi

* proper sprites + visualizes nicely

* Removes broken new-line markers from a few desc.

* Fixes a localization error with solution container descriptions

* construction

* reviews + test

* remove SetLayerVisibility, doesnt work for some reason

* swept moment

* leftover

* Automatic changelog update

* Fix can't return to body bug (#4424)

* Automatic changelog update

* Update submodule

* Fix gas tile overlays on shuttles

* Offset station on roundstart again

* Fix PlaceableSurface incorrect coordinate usage.
It set world position to entity coordinate positions...

* Automatic changelog update

* Fix pickup animation incorrect coordinate usage.
Animation finalPosition was world position, while initialPosition was local position.

* Automatic changelog update

* Pointing coordinate fixes.

* Automatic changelog update

* Further pickup animation improvements.

* Adds Science Windoors (#4433)

Co-authored-by: SETh lafuente <cetaciocascarudo@gmail.com>

* Gave CMO a Hardsuit (#4434)

Co-authored-by: SETh lafuente <cetaciocascarudo@gmail.com>

* Automatic changelog update

* Fixed station engineer table spawn (#4436)

* Maps in windoors (#4432)

* Automatic changelog update

* Losing a head doesn't mean you lose your eyes #3956 #4061 (#4225)

Co-authored-by: Michael Will <will_m@outlook.de>

* Automatic changelog update

* Adds windoors for security and the brig. (#4441)

* Automatic changelog update

* Remaps Chemistry and Security, and some Mapping Fixes (#4442)

* Automatic changelog update

* Made the cloning pod and medical scanner constructible (#4439)

* Made the cloning machine pod constructable

* Added everything like I did but with the Medical Scanner

Co-authored-by: SETh lafuente <cetaciocascarudo@gmail.com>

* Automatic changelog update

* Fix fixed-point format specifier in PowerCellComponent

* Update submodule

* Actually update submodule

The last one was a test to check if you were paying attention.

* Update maps for grid collisions (#4450)

* Update submodule

* Fixes the windoor in science. (#4444)

* Automatic changelog update

* Remove IActionBlocker.CanMove (#4449)

* Remove IActionBlocker.CanMove

Ported the remainders over to using MovementAttemptEvent which should also help make mob movement a bit faster.

* Make that check faster

* Added restrictions for what can be inserted into most belts (#4367)

* Belts now restrict what can be inserted into them

* Bandolier now only holds shotgun shells

* Tiny typo

* Another tiny typo

* Automatic changelog update

* Fix indentation

* Fix stuff

* Fix gas canister

* Organize gas canister prototype

* Fix audio occlusion

This was previously being done on every SoundComponent.

* Call SoundSystem instead

* Parents crowbar-red and merges RSIs

* Deletes old crowbar_red.rsi

* Abstracts BasePlushie and ReagentContainerBase

* Adds missing suffixes to debug items and tags them all

* Crematorium now makes a noise on start and during cremation (#4459)

* Automatic changelog update

* Refactor disposals to ECS (#4418)

* ECS up disposals

Also significantly reduced its CPU usage.

* Make update significantly less S L O W

* Start units pressurised

* Client-side flush lerping

* Fix powered not toggling UI

* Fix flush button

* InteractUsing

* Minor optimisations

* Fix collisions

* Make visual state ECS

* Almost done with shared

* Most stuff moved

* Optimise item sleeping

* Automatic changelog update

* Fix door sound dampening (#4453)

* Completely fix NPC pathfinding

Through rigorous investigation and hard work.

* Implement Entity List Display and rework StorageComponent window (#4140)

* Create EntityListDisplay

* Rework ClientStorage window

* Add styling

* Remove unnecessary colors

* Rename list

* Make scrollbar push content

* Change children update a bit

* Add old index

* Localize ClientStorageComponent

* Add size return

* Remove spaces

* Fix usings

* Fix tool sounds.
Fixes #4465

* Automatic changelog update

* Fix missing sounds (#4466)

* Fix missing sounds

* Make SoundHitSpecies fallback to SoundHit

* Fix crayon YAML

* Update PlaySoundBehavior YAML

* Fix required

* Update README.md

* Fix taser physics (#4470)

* Increase MoverController performance (#4448)

Should be a decent amount; rest will come from removing IActionBlocker.

* Remove throwing fixture error

* Update submodule

* Fix sound crash when making foam (#4476)

* Automatic changelog update

* Centers some sprites

* Fix showatmos

* Fix tests.
Flashlight RSI state names had been changed, and some places weren't updated properly

* Remove pillcomponent (#4469)

* Remove PillComponent

* Make food without any solution left delete and create trash

* Replace PillComponent references with a Pill tag

* Clean up

* Add swallow message to food

* Change to eatMessage override

* Change FoodComponent transferAmount to nullable

* Change properties to private

* ItemCabinetVisualizer uses layers (#4445)

* ItemCabinetVisualizer uses layers

* Reviews applied

* Fixes the fireaxe cabinet as well

* I'm dumb

* Fixes bedsheets being unpickupable (#4479)

* Automatic changelog update

* Adds inhands for crayons and the crayon box (#4481)

* Automatic changelog update

* Fixes cigarette animations and matches now have lit/unlit inhand sprites (#4480)

* Automatic changelog update

* Adds plant clippers and changes hydro tool sprites to be more consistent (#4482)

* Adds plant clippers

* Updates sycthe, hoe and spade sprites

* Adds inhands for radio/walkietalkie (#4483)

* Adds inhands for radio/walkietalkie and separates layers

* License thingy

* Fixes test

* Can now equip fireaxe, claymore, spear and baseball back on your back (#4484)

* Can equip spears and claymores on your back now

* Adds fireaxe and baseball bat back equip

* Automatic changelog update

* Makes Match[sticks/box] ECS, Makes Matchsticks ignite plasma

* am big dumdum pls no shed

* Owner Transform to Owner in SoundSystem calls (#4460)

* Owner Transform to Owner

* Owner Transform to Owner minor fixes

* Improve hand pickup code
This way I can break EntityCoordinates' API without breaking content.
BWAHAHAHAHAH!

* Update submodule

* Version v0.5.11 does not exist

* Update submodule

We don't talk about v0.5.12 either.

* Update submodule

For the last time

* Adds duck-related content and a seclite (#4489)

* Added rubber ducky

* Adds ducky slippers

* Adds seclite

* Update Resources/Textures/Objects/Tools/seclite.rsi/meta.json

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

* Update Resources/Textures/Objects/Fun/ducky.rsi/meta.json

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

* The duck slippers now quack as you walk

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

* Automatic changelog update

* Adds the ability to assign equip sounds in ClothingComponent (#4485)

* Initial

* Works (Kinda)

* Polish

* Reviews

* Removes vending inventory desc and adds missing vending machine descriptions (#4493)

* Removes inventory descriptions

* Adds missing vending machine descriptions using inventory descriptions

* Woops missed a file

* Automatic changelog update

* Adds a ton more inhands (#4488)

* Removed useless loc and added inhands for some lamps

* Adds a ton of inhands to the game

* Actually adds the pill inhand

* Update Resources/Textures/Objects/Misc/utensils.rsi/meta.json

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

* Update Resources/Textures/Objects/Tools/rcd.rsi/meta.json

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

* Added open/close/stacklayers for Matchbox and inhands (#4496)

* Added open/close/stacklayers for Matchbox

* Added inhands for matchbox

* What am I a clown not gonna leave no indent spaces

* Adds sound to fire extinguisher safety (#4494)

* Automatic changelog update

* Adds a 6pack of Cola (#4499)

* Adds a 6pack of Cola

* Revert "Adds a 6pack of Cola"

This reverts commit 99f024b94ab3c684ce62e28018bd0fe2f26a2e09.

* Revert "Revert "Adds a 6pack of Cola""

This reverts commit 9e3d31e41c8ea61a962ad7d4d3c0ea7124e82653.

* Automatic changelog update

* Fix H-pulling? (#4425)

In retrospect the answer is easy, but man this took a while.

* Automatic changelog update

* Makes DiceComponent ECS

* Makes PlaceableSurface ECS

* Added classic announcement sound to announcements (#4504)

* Automatic changelog update

* Refactors throw events, makes cream pies ECS (#4500)

* Automatic changelog update

* Port the tumbler from Box2D (#4486)

* Subscribe TransformComponent events by-ref (#4478)

* Add Alt-click functionality (#4497)

* Fix ItemSlot Bug

* Add Alt-use Key

* Fix TransferAmount window bug

* Alt-click functionality

* Added AltInteract verbs

* Add new verbs

* verb icons

* Changed Comments

* Change Comments

* Fix disposal verbs

* Changed Get...() to Get...OrNull()

* Changed alt-interact combat behaviour

* Update verb icons

* Inventory interact event

* Add Alt+E secondary binding

* Add alt-z keybinding

* Rename AltUse -> AltActivateItemInWorld

* Automatic changelog update

* Fixes chocolate/energy bar (#4503)

* Fix merge issues

Co-authored-by: Galactic Chimp <GalacticChimpanzee@gmail.com>
Co-authored-by: Kara Dinyes <lunarautomaton6@gmail.com>
Co-authored-by: SethLafuente <84478872+SethLafuente@users.noreply.github.com>
Co-authored-by: SETh lafuente <cetaciocascarudo@gmail.com>
Co-authored-by: Swept <sweptwastaken@protonmail.com>
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
Co-authored-by: metalgearsloth <metalgearsloth@gmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Vera Aguilera Puerto <gradientvera@outlook.com>
Co-authored-by: Vera Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
Co-authored-by: ScalyChimp <72841710+scaly-chimp@users.noreply.github.com>
Co-authored-by: mirrorcult <notzombiedude@gmail.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
Co-authored-by: Jaskanbe <86671825+Jaskanbe@users.noreply.github.com>
Co-authored-by: scrato <Mickaello2003@gmx.de>
Co-authored-by: Michael Will <will_m@outlook.de>
Co-authored-by: TimrodDX <timrod@gmail.com>
Co-authored-by: Leon Friedrich <60421075+leonsfriedrich@users.noreply.github.com>
Co-authored-by: Ygg01 <y.laughing.man.y@gmail.com>
Co-authored-by: Paul <ritter.paul1+git@googlemail.com>
Co-authored-by: ColdAutumnRain <73938872+ColdAutumnRain@users.noreply.github.com>
Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

* Singularity fixes (#4383)

* Singularity fixes

* Fix the rest

* Woops

* ahh

* Nerf singulo for now

* Final touchups for now

* Review

* Automatic changelog update

* Fix PA construction crash, make it clear that PA construction needs LV cables (#4506)

* Automatic changelog update

* Add security barriers (#4458)

* Add sprites

* Lock system now raises lock toggle events

* Add prototype and barrier system

* Toggle lock on click

* Barrier blocks bullets (like a real wall)

* Barrier now destroyable

* Fancy visualzer and lighting. Also unlock by default

* Deleted comma

* Ignored components?

* Update Resources/Prototypes/Entities/Objects/Specific/Security/barrier.yml

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Update Resources/Prototypes/Entities/Objects/Specific/Security/barrier.yml

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Toggle Lock no longer handled

* Made it much easier to move through airlocks

Co-authored-by: Swept <sweptwastaken@protonmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Automatic changelog update

* Updates name of LV cable coil

* Admin ghosts can now interact with stuff (#4178)

* Ghosts now have a bool for interacting with stuff

* Wrong ghost

* Simping for Swept

* Merge cleanup

* IT'S ODNE

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>

* Automatic changelog update

* Added Basic Parts Technology (#4440)

* Added parts Technology

* is something they're something

bad grammar

* Update Parts.yml

* Update technologies.yml

Co-authored-by: SETh lafuente <cetaciocascarudo@gmail.com>
Co-authored-by: Swept <sweptwastaken@protonmail.com>

* Add basic meteor swarm (#4420)

* Add basic meteor swarm

* Map fixes

* Dependency cache

* Fix projectile crash

* Last of the reviews

* Automatic changelog update

* Update content for PhysicsMapComponent (#4462)

* Update content for PhysicsMapComponent

* Fix command

* Cache broadphasesystem

* Update submodule

* Update SS14 for grid contraction (#4452)

* Update SS14 for grid contraction

* Remove more dummy chunks

* Update submodule

* ratio's rects

* Add DamageType And DamageGroup Prototypes

* Remove DamageTypePrototype Field "name" as its redundant

* Change I/DamageableComponent to use prototypes

* Update DamageContainer, ReisistanceSet and DamageChangeData

* Change Barotrauma Component to use DamageType from DamageSystem

* Update AsteroidRockComponent

* update some more components

* update some more components

* Fix m o r e c o m p o n e n t s and their damageType

* all thats left is bug/missing node hunting then verification.

* push changes

* update submodule

* Merge fixes

* push DGP for example

* update damagecomponent across shared and server

* fix a few bugs

* Fix Merge issues

* Refactor damageablecomponent update (#4406)

* Fixing merge.

I messed up part of the merge. this should fix it?

* Barotrauma now uses prototypeManager

As System.Runtime.CompilerServices also has a [Dependency], I think I had to use the full path [Robust.Shared.IoC.Dependency]

* FlammableComponent now uses prototypeManager

* SuicideCommands now use prototypeManager

* Changed  many files to use prototypeManager to resolve damaege prototypes

Yeah.... prototype references would be very nice. maybe this was all a waste of time.

* Grouping prototypeManager.Index with datafield definitions

This will make it easier to eventually add prototype references

* removed unused variable

* Moved lines around.

Lines now consistent with other TODO PROTOTYPE blocks

* Grouping more prototypeManager.Index with datafield definitions

* Removed unnecessary code

* Added more prototypeManager indexing

These ones weren't pointed out by DrSmug. But I think this is all of them? That or my regex is shit.

* Remove redundant _damage field

* Remove redundant _currentTemperature

* Moved variables down

* Added prototypeManager indexing to TemperatureComponent

* WeaponComponent/System now use ProtptypeManager

And as far as I can tell damageType is required, and therefore should never have been null anyway?

* Make ranged weapon clumsy fire effects datafields

And yes, the order in which the clumsy effects occur is very important.

* Made damage on vital body part loss a datafield

* Renamed several damageGroup variables to group

* Capitalised DamageListToDamageGroup

* Make radiation and explosion damage types datafields

* Renamed _supportedDamageGroupIDs and _supportedDamageTypeIDs

* Fixed mistakes

Frogot to remove prototypeManager index DamageTypeTrigger, and wrong variable visibility in TemperatureComponent

* Added necessary code

Is something tragically wrong?

* MeleeWeapon damageType is not actually required

* Fixing someone else's mistakes

A search comes up with nothing in the yaml files, and its not a required field. So no one uses it? Hopefully?

* Changed and renamed damageTypeToDamageGroup

Previously would incorrectly return the total container damage for each group, not the total in the group

* renaming varitables

* Renamed variable DamageClasses

* Added dictionary converting functions

* Added ID-keyed dictionaries

* Making MedicalScanner use ID dictionaries, instead of prototype dictionaries

Oh oh no. I've been able to avoid UI & networking up until now. I have no Idea what I am doing.

* Fix Medical Scanner

* Summary (required)

The joke here is that this fixes the empty summary.

* Removed DamageableComponent.GetDamageGroup/Type

* Renamed "damage classes" to groups.

* Update ChangeDamage description

* Replaced Heal() with SettAllDamage()

Heal() was just a confusing name,

* More Class -> Group renaming

* Replace Class with Group in yaml files

DamageClassTrigger does not appear in any yaml? only in testing?
DamageTypeTrigger appears only in human.yaml?
HealthChangeMetabolism is Mostly in medicine.yml and one in soad.yaml

Why the hell is Cola metabolizable by plants? Who is pouring cola on their plants!?!?

* Fix _prototypeManager being null errors.

* Changing comments

Where are the prototype references

* MetabolismComponent doesn't give free heals anymore.

* Changes HungerComponent healing.

Previously I think it would actually damage you.  Only did this as I though it was causing the fast healing. Turns out that was just BREATHING.

* Generalised a function in DamageableComponent and moved it to DamageGroupPrototype

previously DamageTypesDictToDamageGroupDict was private to DamageableComponent, but was also quite general (nearly a static function). As this sort of function may be needed by other components using DamageGroupPrototypes in the future, I moved it there as a static function instead.

* modified DamageableComponent.ChangeDamage()

ignoreResistances was renamed to ignoreDamageResistances to make it clearer that it had no effect on healing.

Now uses default argument for ignoreDamageResistances, so when healing you are not forced to specify an argument that does nothing.

Also made some general changes to ignoreResistances()

* Changed class->group and added missing damage type functionality to DamageContainerPrototypes

* Added Comments to damage.yml

* Misc Changes to DamageableComponent

* Differentiated between group support and group applicability

So far, every damage type is a member of one, and only one, damage group. So this change has no real effect so far.

* Added proposed alternative to ChangeDamage()

* fixed error in DamageGroupPrototype

* Changes to DamageableComponent

Lots of changes to comments.
Some variables renamed in IDamageableComponent and DamageableComponent (also required renaming in other files)

Some minor logic changes, mostly for incorrect descirptions of boolean return values.

Also further differentiating between ApplicableGroups and SupportedGroups... if that will ever even matter

* Generalised MedicalScannerComponent

If needed, can print miscellaneous damage types now

* Fixed HealthChangeMetabolism bug

* Changing Comments around

* More questions

* Made Barotrauma default to blunt

* Fix RejuvenateTest.cs

* Comments

* Coments and variable names

* fix some master-merge issues

* Removed redundant fields

* Misc changes for readbility of PR diff

* Consistent naming

* Fixed atmos damage bug

* Removed Ranting

* Fixed Hunger after I broke it

* Fixing Bugs

* Removed stupid question

* Removed more stupid questions

* Fix potential null errors.

* Made boolean return values consistent

Also renamed several functions, to make it clear they return a bool. Docs were also updated.

* Removed IoCManager.InjectDependencies()

* Removed unnecessary 'suffocation' prefix

* Fixed Spelling

Also removed accidentally left in logger call

* Fixed Medical Scanner

* Apply suggestions from code review

Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>

* Changing comments and whitespaces

* Made damage thresholds trigger  datafields required

* So many typos

* Changes to DamageableComponents

Changed documentation in IDamageableComponent

Made testing code more readable.

Relabelled groups as 'Applicable' either 'Fully Supported'

* Removed function and degeneralised

* Update DamageableComponent.cs

Removed unused parameters
Fixed Networking

* Added IoCManager.Resolve

* Now using alternative TryChangeDamage()

* Removed function from DamageGroupPrototype

* Removing comments

* Remove bad if statement?

* Fix damageChanged ordering

* Fix hurt server command

* Changed //TODO PROTOTYPE blocks

Now use PrototypeManager differently. Wherever possible, only retrieve the prototype once.

Also added default damage types to some more datafields

* Update Content.Shared/Damage/Container/DamageContainerPrototype.cs

Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>

* renamed _accumulatedHealth -> _accumulatedDamage and added TODOs

* Another class-> group

* Fix bug in generalisation of damage container prototypes

* Addes Tests to make sure I dont keep adding bugs to my own code.

* Changed Return values when setting

* Removed unused class

* Added more tests, split tests into three files

* Made damage types public and VV read-write-able

* Minor changes to DamageableComponent

Replaced internal use of GetDamagePerType with _damageDict and removed some unnecessary fields

* Fix Suicide, by adding IoC Resolve()

* Fix DamageGroupTrigger bug

* Fix typos in tests

* Change comments./docstrings & spacing

* Merge tests, use test prototypes

Co-authored-by: Leon Friedrich <60421075+leonsfriedrich@users.noreply.github.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>

* Bring refactor-damageablecomponent branch up-to-date with master (#4510)

* Revert "#3935 implemented suggestions from PR"

This reverts commit a9b1c7b96333ca570067d6a9df1954481005892a.

* #4219 revert of single sound removal in EmitSoundSystem

* #4219 single sounds in EmitSoundSystem should work now

* #4219 some small project tweaks

* #4219 upgraded EmitSoundSystem to use SoundSpecifier

* replacing sound (collection) names with SoundSpecifier - part 1

* #4219 pr tweaks

* #4219 pr tweak

(cherry picked from commit 00b80cb1df2434259ab5df45188e176be57603af)

* emitsoundsystem tweak

* first windoor commit

* finished yaml

* windoors work #Dab

* sound + locked prototypes

* Inserted SoundSpecifier where appropiate

* added comment

* removed TryGetSound + made some SoundSpecifier datafields required

* changed some prototypes' sound paths

* test fixes

* Made plasma grindable (#4334)

Co-authored-by: SETh lafuente <cetaciocascarudo@gmail.com>
Co-authored-by: Swept <sweptwastaken@protonmail.com>

* Automatic changelog update

* Fixes invalid yaml line (#4408)

* Fix potential timer exception

* SetTile during extensions test (#4409)

Mainly so it can actually account for accurate grid bounds when doing the test

Co-authored-by: metalgearsloth <metalgearsloth@gmail.com>

* Update submodule

* GasFilter appearance, EnabledAtmosDeviceVisualizer improvements.

* Add Enabled property to SubFloorHideComponent, make it networked. (#4404)

* Refactor IDoorCheck into entity events (#4366)

* IDoorCheck refactored to events

# Conflicts:
#	Content.Server/Atmos/TileAtmosphere.cs
#	Content.Server/Doors/Components/AirlockComponent.cs
#	Content.Server/Doors/Components/FirelockComponent.cs
#	Content.Server/Doors/Components/ServerDoorComponent.cs
#	Content.Server/Doors/IDoorCheck.cs

* namespaces

* Fix mapinit bug with refreshautoclose

* ok i guess these just didnt feel like staging today

* Automatic changelog update

* AtmosDevices can optionally process in space. (#4405)

Refactors some misc atmos things, too.

* Fix gravity generator yeeting

* Enables nullables for atmos internals

* Meth (#4186)

* adds an overdose metabolism with sensible default settings

* adds the compoenents for the run fast part of meth

* not sure what I changed here but I trust my past self to not fuck up for once

* adds basic meth recipe

* correctly names comething

* I really should've checked my spelling before making this pr

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* adds suggestion from the maintaner, who managed to get to this pr suprisingly fast

* Revert "adds suggestion from the maintaner, who managed to get to this pr suprisingly fast"

This reverts commit 9b0f07402e35ed5890b3af805691b690671b950c.

* tweak

* tweak

* git's gitting on my nerves

* some small tweaks

* don't need these anymore

* makes some stuff required

* changes the meth recipe to arbitary bullshit to get the yaml thingy to leave me alone goddamnit

* extremely minor change

* removes overdose, because however it's gonna be done, it's definitely not my way

* i should really double check every key I press

* hm

* sigh, I should be more thorough with looking at error messages.

* beenus

* gay sex is gay

* this one goes out to bingo

* reviews

* not sure why status lifetime description wasn't being commited

* Update MovespeedModifierMetabolism.cs

Co-authored-by: mirrorcult <notzombiedude@gmail.com>

* adds VV to component variables

* rebalances meth, and makes the completely unrealistic recipe properly work now

* meth effects should go away now or something do you think I test these changes before pushing??

* ah yes, orginization

* adds proper recipe and prequisite chemicals

* fixes linter hopefully

* Update chemicals.yml

* a

* starts working on prediction

* thing

* predmiction??

* changes thing

* does it properly

* uses timespan instead of timer

* uses dif timers and adds a system

* updates robust and tweaks a small thing

* Fixes

* "Fix" prediction

* starts changing the timer to timespans to avoid icky on timer end

* okay fixes the check thing but now meth is broken and I don't know why

* fixes predicition (partially)

* Delete ContentNetIDs.cs

whoops

* some changes advised by sloth

* certified scalycode fix right here

* moves resettimer to the metabolism to make it less oop stinky

* moves resettimer to the metabolism to make it less oop stinky

* gamin

* when the  is

* updates mth colour to be accurate because I forgot

* abc hard ok

* everything should be up to date now

* makes MovespeedModifierMetabolism ECS and cleans up some other stuff

* does a fixy wixy

* fix thing

* Revert "Merge branch 'master' of https://github.com/space-wizards/space-station-14 into meth"

This reverts commit 62886561098be02f9adb6352f4e858a8269d5bd5, reversing
changes made to ca34fffb5b7a40f19aec7b9e4bc37bdeab914bc1.

* Revert "Revert "Merge branch 'master' of https://github.com/space-wizards/space-station-14 into meth""

This reverts commit 4f550da19656abfd0be05f818fc6b7100252d5b8.

* fix hopefully

* updates metabolism to works with mirror's fancy new system

* updates yaml + tweaks

* bruh

* yaml moment

* :yaml moment

* Revert " :yaml moment"

This reverts commit 8cb51573c64db76d989de22acdbb9c50b2c6d052.

* 99th commit yay, also I need to not do this

* removes something that I don't need

* makes system work with this and gets rid of unnesescary check

* make the update only work on active components

* oops

* Cleanup

* alphabetise this shit

* Touchup

* Woops stupid alloc by me

* Nerf nyoom for now

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: mirrorcult <notzombiedude@gmail.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>

* Automatic changelog update

* Random offset for DefaultGrid every round (#4411)

* Random offset for DefaultGrid every round

This is useful to make coders aware of entitycoordinates and mapcoordinates being different and to help spot problems early. It also puts the onus of fixing positioning bugs back onto the original coder rather than someone else if they happen to spot it.

* Fix clickable test

* Fix entitysystemextensions

* Automatic changelog update

* Document a few atmos classes.

* Update submodule

We do a little bit of debugging

* Make pulling feel less crap (#4414)

Something something pulling refactor someday

* Automatic changelog update

* Comment joint prediction

* Add CVar for random grid offset, disable it by default.

* Fixes not taking pressure damage in space.
Fixes #4415

* Automatic changelog update

* Adds an alternate jumpsuit for botany (#4419)

* Adds an alternate botanists jumpsuit

* Updated license information

* Automatic changelog update

* Added two new small areas to maintenence (#4359)

Co-authored-by: SETh lafuente <cetaciocascarudo@gmail.com>

* Automatic changelog update

* Updated meta.json to standard

* Update meta.json to standard

* a

* Revert "Update meta.json to standard"

This reverts commit 4c6702f17b.

* Revert "Updated meta.json to standard"

This reverts commit 8ea7a3ad1f.

* fix rsi

* proper sprites + visualizes nicely

* Removes broken new-line markers from a few desc.

* Fixes a localization error with solution container descriptions

* construction

* reviews + test

* remove SetLayerVisibility, doesnt work for some reason

* swept moment

* leftover

* Automatic changelog update

* Fix can't return to body bug (#4424)

* Automatic changelog update

* Update submodule

* Fix gas tile overlays on shuttles

* Offset station on roundstart again

* Fix PlaceableSurface incorrect coordinate usage.
It set world position to entity coordinate positions...

* Automatic changelog update

* Fix pickup animation incorrect coordinate usage.
Animation finalPosition was world position, while initialPosition was local position.

* Automatic changelog update

* Pointing coordinate fixes.

* Automatic changelog update

* Further pickup animation improvements.

* Adds Science Windoors (#4433)

Co-authored-by: SETh lafuente <cetaciocascarudo@gmail.com>

* Gave CMO a Hardsuit (#4434)

Co-authored-by: SETh lafuente <cetaciocascarudo@gmail.com>

* Automatic changelog update

* Fixed station engineer table spawn (#4436)

* Maps in windoors (#4432)

* Automatic changelog update

* Losing a head doesn't mean you lose your eyes #3956 #4061 (#4225)

Co-authored-by: Michael Will <will_m@outlook.de>

* Automatic changelog update

* Adds windoors for security and the brig. (#4441)

* Automatic changelog update

* Remaps Chemistry and Security, and some Mapping Fixes (#4442)

* Automatic changelog update

* Made the cloning pod and medical scanner constructible (#4439)

* Made the cloning machine pod constructable

* Added everything like I did but with the Medical Scanner

Co-authored-by: SETh lafuente <cetaciocascarudo@gmail.com>

* Automatic changelog update

* Fix fixed-point format specifier in PowerCellComponent

* Update submodule

* Actually update submodule

The last one was a test to check if you were paying attention.

* Update maps for grid collisions (#4450)

* Update submodule

* Fixes the windoor in science. (#4444)

* Automatic changelog update

* Remove IActionBlocker.CanMove (#4449)

* Remove IActionBlocker.CanMove

Ported the remainders over to using MovementAttemptEvent which should also help make mob movement a bit faster.

* Make that check faster

* Added restrictions for what can be inserted into most belts (#4367)

* Belts now restrict what can be inserted into them

* Bandolier now only holds shotgun shells

* Tiny typo

* Another tiny typo

* Automatic changelog update

* Fix indentation

* Fix stuff

* Fix gas canister

* Organize gas canister prototype

* Fix audio occlusion

This was previously being done on every SoundComponent.

* Call SoundSystem instead

* Parents crowbar-red and merges RSIs

* Deletes old crowbar_red.rsi

* Abstracts BasePlushie and ReagentContainerBase

* Adds missing suffixes to debug items and tags them all

* Crematorium now makes a noise on start and during cremation (#4459)

* Automatic changelog update

* Refactor disposals to ECS (#4418)

* ECS up disposals

Also significantly reduced its CPU usage.

* Make update significantly less S L O W

* Start units pressurised

* Client-side flush lerping

* Fix powered not toggling UI

* Fix flush button

* InteractUsing

* Minor optimisations

* Fix collisions

* Make visual state ECS

* Almost done with shared

* Most stuff moved

* Optimise item sleeping

* Automatic changelog update

* Fix door sound dampening (#4453)

* Completely fix NPC pathfinding

Through rigorous investigation and hard work.

* Implement Entity List Display and rework StorageComponent window (#4140)

* Create EntityListDisplay

* Rework ClientStorage window

* Add styling

* Remove unnecessary colors

* Rename list

* Make scrollbar push content

* Change children update a bit

* Add old index

* Localize ClientStorageComponent

* Add size return

* Remove spaces

* Fix usings

* Fix tool sounds.
Fixes #4465

* Automatic changelog update

* Fix missing sounds (#4466)

* Fix missing sounds

* Make SoundHitSpecies fallback to SoundHit

* Fix crayon YAML

* Update PlaySoundBehavior YAML

* Fix required

* Update README.md

* Fix taser physics (#4470)

* Increase MoverController performance (#4448)

Should be a decent amount; rest will come from removing IActionBlocker.

* Remove throwing fixture error

* Update submodule

* Fix sound crash when making foam (#4476)

* Automatic changelog update

* Centers some sprites

* Fix showatmos

* Fix tests.
Flashlight RSI state names had been changed, and some places weren't updated properly

* Remove pillcomponent (#4469)

* Remove PillComponent

* Make food without any solution left delete and create trash

* Replace PillComponent references with a Pill tag

* Clean up

* Add swallow message to food

* Change to eatMessage override

* Change FoodComponent transferAmount to nullable

* Change properties to private

* ItemCabinetVisualizer uses layers (#4445)

* ItemCabinetVisualizer uses layers

* Reviews applied

* Fixes the fireaxe cabinet as well

* I'm dumb

* Fixes bedsheets being unpickupable (#4479)

* Automatic changelog update

* Adds inhands for crayons and the crayon box (#4481)

* Automatic changelog update

* Fixes cigarette animations and matches now have lit/unlit inhand sprites (#4480)

* Automatic changelog update

* Adds plant clippers and changes hydro tool sprites to be more consistent (#4482)

* Adds plant clippers

* Updates sycthe, hoe and spade sprites

* Adds inhands for radio/walkietalkie (#4483)

* Adds inhands for radio/walkietalkie and separates layers

* License thingy

* Fixes test

* Can now equip fireaxe, claymore, spear and baseball back on your back (#4484)

* Can equip spears and claymores on your back now

* Adds fireaxe and baseball bat back equip

* Automatic changelog update

* Makes Match[sticks/box] ECS, Makes Matchsticks ignite plasma

* am big dumdum pls no shed

* Owner Transform to Owner in SoundSystem calls (#4460)

* Owner Transform to Owner

* Owner Transform to Owner minor fixes

* Improve hand pickup code
This way I can break EntityCoordinates' API without breaking content.
BWAHAHAHAHAH!

* Update submodule

* Version v0.5.11 does not exist

* Update submodule

We don't talk about v0.5.12 either.

* Update submodule

For the last time

* Adds duck-related content and a seclite (#4489)

* Added rubber ducky

* Adds ducky slippers

* Adds seclite

* Update Resources/Textures/Objects/Tools/seclite.rsi/meta.json

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

* Update Resources/Textures/Objects/Fun/ducky.rsi/meta.json

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

* The duck slippers now quack as you walk

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

* Automatic changelog update

* Adds the ability to assign equip sounds in ClothingComponent (#4485)

* Initial

* Works (Kinda)

* Polish

* Reviews

* Removes vending inventory desc and adds missing vending machine descriptions (#4493)

* Removes inventory descriptions

* Adds missing vending machine descriptions using inventory descriptions

* Woops missed a file

* Automatic changelog update

* Adds a ton more inhands (#4488)

* Removed useless loc and added inhands for some lamps

* Adds a ton of inhands to the game

* Actually adds the pill inhand

* Update Resources/Textures/Objects/Misc/utensils.rsi/meta.json

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

* Update Resources/Textures/Objects/Tools/rcd.rsi/meta.json

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

* Added open/close/stacklayers for Matchbox and inhands (#4496)

* Added open/close/stacklayers for Matchbox

* Added inhands for matchbox

* What am I a clown not gonna leave no indent spaces

* Adds sound to fire extinguisher safety (#4494)

* Automatic changelog update

* Adds a 6pack of Cola (#4499)

* Adds a 6pack of Cola

* Revert "Adds a 6pack of Cola"

This reverts commit 99f024b94ab3c684ce62e28018bd0fe2f26a2e09.

* Revert "Revert "Adds a 6pack of Cola""

This reverts commit 9e3d31e41c8ea61a962ad7d4d3c0ea7124e82653.

* Automatic changelog update

* Fix H-pulling? (#4425)

In retrospect the answer is easy, but man this took a while.

* Automatic changelog update

* Makes DiceComponent ECS

* Makes PlaceableSurface ECS

* Added classic announcement sound to announcements (#4504)

* Automatic changelog update

* Refactors throw events, makes cream pies ECS (#4500)

* Automatic changelog update

* Port the tumbler from Box2D (#4486)

* Subscribe TransformComponent events by-ref (#4478)

* Add Alt-click functionality (#4497)

* Fix ItemSlot Bug

* Add Alt-use Key

* Fix TransferAmount window bug

* Alt-click functionality

* Added AltInteract verbs

* Add new verbs

* verb icons

* Changed Comments

* Change Comments

* Fix disposal verbs

* Changed Get...() to Get...OrNull()

* Changed alt-interact combat behaviour

* Update verb icons

* Inventory interact event

* Add Alt+E secondary binding

* Add alt-z keybinding

* Rename AltUse -> AltActivateItemInWorld

* Automatic changelog update

* Fixes chocolate/energy bar (#4503)

* Fix merge issues

Co-authored-by: Galactic Chimp <GalacticChimpanzee@gmail.com>
Co-authored-by: Kara Dinyes <lunarautomaton6@gmail.com>
Co-authored-by: SethLafuente <84478872+SethLafuente@users.noreply.github.com>
Co-authored-by: SETh lafuente <cetaciocascarudo@gmail.com>
Co-authored-by: Swept <sweptwastaken@protonmail.com>
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
Co-authored-by: metalgearsloth <metalgearsloth@gmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Vera Aguilera Puerto <gradientvera@outlook.com>
Co-authored-by: Vera Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
Co-authored-by: ScalyChimp <72841710+scaly-chimp@users.noreply.github.com>
Co-authored-by: mirrorcult <notzombiedude@gmail.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
Co-authored-by: Jaskanbe <86671825+Jaskanbe@users.noreply.github.com>
Co-authored-by: scrato <Mickaello2003@gmx.de>
Co-authored-by: Michael Will <will_m@outlook.de>
Co-authored-by: TimrodDX <timrod@gmail.com>
Co-authored-by: Leon Friedrich <60421075+leonsfriedrich@users.noreply.github.com>
Co-authored-by: Ygg01 <y.laughing.man.y@gmail.com>
Co-authored-by: Paul <ritter.paul1+git@googlemail.com>
Co-authored-by: ColdAutumnRain <73938872+ColdAutumnRain@users.noreply.github.com>
Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
Co-authored-by: Galactic Chimp <GalacticChimpanzee@gmail.com>
Co-authored-by: Kara Dinyes <lunarautomaton6@gmail.com>
Co-authored-by: Leon Friedrich <leonsfriedrich@gmail.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
Co-authored-by: SethLafuente <84478872+SethLafuente@users.noreply.github.com>
Co-authored-by: SETh lafuente <cetaciocascarudo@gmail.com>
Co-authored-by: Swept <sweptwastaken@protonmail.com>
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
Co-authored-by: metalgearsloth <metalgearsloth@gmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Vera Aguilera Puerto <gradientvera@outlook.com>
Co-authored-by: Vera Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
Co-authored-by: ScalyChimp <72841710+scaly-chimp@users.noreply.github.com>
Co-authored-by: mirrorcult <notzombiedude@gmail.com>
Co-authored-by: Jaskanbe <86671825+Jaskanbe@users.noreply.github.com>
Co-authored-by: scrato <Mickaello2003@gmx.de>
Co-authored-by: Michael Will <will_m@outlook.de>
Co-authored-by: TimrodDX <timrod@gmail.com>
Co-authored-by: Leon Friedrich <60421075+leonsfriedrich@users.noreply.github.com>
Co-authored-by: Ygg01 <y.laughing.man.y@gmail.com>
Co-authored-by: Paul <ritter.paul1+git@googlemail.com>
Co-authored-by: ColdAutumnRain <73938872+ColdAutumnRain@users.noreply.github.com>
Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: 20kdc <asdd2808@gmail.com>
Co-authored-by: Alex Evgrashin <aevgrashin@yandex.ru>
2021-08-24 00:50:39 -06:00
Swept 49b81b2587
Admin ghosts can now interact with stuff (#4178)
* Ghosts now have a bool for interacting with stuff

* Wrong ghost

* Simping for Swept

* Merge cleanup

* IT'S ODNE

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2021-08-23 13:14:52 +10:00
Alex Evgrashin 8408c1128f
Add security barriers (#4458)
* Add sprites

* Lock system now raises lock toggle events

* Add prototype and barrier system

* Toggle lock on click

* Barrier blocks bullets (like a real wall)

* Barrier now destroyable

* Fancy visualzer and lighting. Also unlock by default

* Deleted comma

* Ignored components?

* Update Resources/Prototypes/Entities/Objects/Specific/Security/barrier.yml

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Update Resources/Prototypes/Entities/Objects/Specific/Security/barrier.yml

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Toggle Lock no longer handled

* Made it much easier to move through airlocks

Co-authored-by: Swept <sweptwastaken@protonmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2021-08-23 02:32:24 +10:00
metalgearsloth f472bbab88
Singularity fixes (#4383)
* Singularity fixes

* Fix the rest

* Woops

* ahh

* Nerf singulo for now

* Final touchups for now

* Review
2021-08-23 00:54:03 +10:00
Leon Friedrich 486dc6ca62
Add Alt-click functionality (#4497)
* Fix ItemSlot Bug

* Add Alt-use Key

* Fix TransferAmount window bug

* Alt-click functionality

* Added AltInteract verbs

* Add new verbs

* verb icons

* Changed Comments

* Change Comments

* Fix disposal verbs

* Changed Get...() to Get...OrNull()

* Changed alt-interact combat behaviour

* Update verb icons

* Inventory interact event

* Add Alt+E secondary binding

* Add alt-z keybinding

* Rename AltUse -> AltActivateItemInWorld
2021-08-21 10:20:18 -07:00
Vera Aguilera Puerto ad5f7bb71b
Subscribe TransformComponent events by-ref (#4478) 2021-08-21 11:49:31 +02:00
Vera Aguilera Puerto ea4ce1c6fc
Refactors throw events, makes cream pies ECS (#4500) 2021-08-21 09:18:23 +02:00
Vera Aguilera Puerto fd8872cc4e Makes PlaceableSurface ECS 2021-08-20 10:21:39 +02:00
Swept 6e1ef973f0
ItemCabinetVisualizer uses layers (#4445)
* ItemCabinetVisualizer uses layers

* Reviews applied

* Fixes the fireaxe cabinet as well

* I'm dumb
2021-08-17 14:13:39 -07:00
ShadowCommander d908684f09
Remove pillcomponent (#4469)
* Remove PillComponent

* Make food without any solution left delete and create trash

* Replace PillComponent references with a Pill tag

* Clean up

* Add swallow message to food

* Change to eatMessage override

* Change FoodComponent transferAmount to nullable

* Change properties to private
2021-08-17 14:11:07 -07:00
metalgearsloth d61ff89dfc Fix showatmos 2021-08-17 14:09:59 +10:00
metalgearsloth dcbb2d2a11
Increase MoverController performance (#4448)
Should be a decent amount; rest will come from removing IActionBlocker.
2021-08-15 14:03:08 +10:00
ShadowCommander b8e6a996d4
Fix missing sounds (#4466)
* Fix missing sounds

* Make SoundHitSpecies fallback to SoundHit

* Fix crayon YAML

* Update PlaySoundBehavior YAML

* Fix required
2021-08-13 21:31:37 -07:00
ShadowCommander 6a1ca13111
Implement Entity List Display and rework StorageComponent window (#4140)
* Create EntityListDisplay

* Rework ClientStorage window

* Add styling

* Remove unnecessary colors

* Rename list

* Make scrollbar push content

* Change children update a bit

* Add old index

* Localize ClientStorageComponent

* Add size return

* Remove spaces

* Fix usings
2021-08-12 10:05:02 -07:00
metalgearsloth 4da74d0ee4
Refactor disposals to ECS (#4418)
* ECS up disposals

Also significantly reduced its CPU usage.

* Make update significantly less S L O W

* Start units pressurised

* Client-side flush lerping

* Fix powered not toggling UI

* Fix flush button

* InteractUsing

* Minor optimisations

* Fix collisions

* Make visual state ECS

* Almost done with shared

* Most stuff moved

* Optimise item sleeping
2021-08-12 13:40:38 +10:00
metalgearsloth b8e6e713d3 Call SoundSystem instead 2021-08-11 19:29:06 +10:00
metalgearsloth 3a4adfa410 Fix audio occlusion
This was previously being done on every SoundComponent.
2021-08-11 19:20:49 +10:00
ShadowCommander 730c137778
Merge branch 'master' of github.com:space-wizards/space-station-14 into replace-sounds-with-sound-specifier 2021-08-10 15:17:58 -07:00
ShadowCommander a1db43ab34
Merge branch 'master' into replace-sounds-with-sound-specifier 2021-08-10 15:05:49 -07:00
metalgearsloth b2322864e9
Remove IActionBlocker.CanMove (#4449)
* Remove IActionBlocker.CanMove

Ported the remainders over to using MovementAttemptEvent which should also help make mob movement a bit faster.

* Make that check faster
2021-08-09 17:34:01 -07:00
scrato 298a77c7af
Losing a head doesn't mean you lose your eyes #3956 #4061 (#4225)
Co-authored-by: Michael Will <will_m@outlook.de>
2021-08-07 14:18:42 -07:00
Vera Aguilera Puerto 41ddf3d7eb Further pickup animation improvements. 2021-08-06 19:20:27 +02:00
Vera Aguilera Puerto 0501ae4b89 Fix pickup animation incorrect coordinate usage.
Animation finalPosition was world position, while initialPosition was local position.
2021-08-06 18:11:58 +02:00
metalgearsloth 13760f4014 Fix gas tile overlays on shuttles 2021-08-06 23:59:33 +10:00
Kara D e460285187
proper sprites + visualizes nicely 2021-08-05 19:43:58 -07:00
metalgearsloth 28a7d5041a Comment joint prediction 2021-08-04 01:16:42 +10:00
metalgearsloth c453bb07c5
Make pulling feel less crap (#4414)
Something something pulling refactor someday
2021-08-03 17:02:43 +02:00
mirrorcult af2e21c355
Refactor IDoorCheck into entity events (#4366)
* IDoorCheck refactored to events

# Conflicts:
#	Content.Server/Atmos/TileAtmosphere.cs
#	Content.Server/Doors/Components/AirlockComponent.cs
#	Content.Server/Doors/Components/FirelockComponent.cs
#	Content.Server/Doors/Components/ServerDoorComponent.cs
#	Content.Server/Doors/IDoorCheck.cs

* namespaces

* Fix mapinit bug with refreshautoclose

* ok i guess these just didnt feel like staging today
2021-08-02 21:57:06 +10:00
Vera Aguilera Puerto 331604cc66 GasFilter appearance, EnabledAtmosDeviceVisualizer improvements. 2021-08-02 13:20:31 +02:00
Vera Aguilera Puerto f2a3987343
Add subfloor appearance data, pipes correctly render subfloor. (#4393) 2021-07-31 19:50:36 -07:00
Galactic Chimp 57016d14b4 removed TryGetSound + made some SoundSpecifier datafields required 2021-07-31 19:52:33 +02:00
Galactic Chimp b2e40d540f Inserted SoundSpecifier where appropiate 2021-07-31 15:17:16 +02:00
mirrorcult 8aa4f998de
Metabolism refactor (#4395)
* metabolism -> respirator, add reageanteffect and reagenteffectcondition, start on metabolizercomp/system

* move LiverBehavior metabolism logic to Metabolizer

* minor tweaks and update all YAML

* how about actually taking conditions into account

* off by one

* removals

* reviews
2021-07-31 13:50:32 +02:00
Galactic Chimp 41c30aa28b Merge branch 'master' into replace-sounds-with-sound-specifier
# Conflicts:
#	Content.Server/Hands/Components/HandsComponent.cs
#	Content.Server/Light/Components/ExpendableLightComponent.cs
#	Content.Shared/Light/Component/SharedExpendableLightComponent.cs
2021-07-31 13:16:03 +02:00
Vera Aguilera Puerto dc18997bf8
Removes LoopingSoundComponent. (#4396)
I'm sorry.
2021-07-31 12:41:59 +02:00
Pieter-Jan Briers 632e72b817
Improve hands & pulling (#4389) 2021-07-31 03:14:00 +02:00
clyf 6649310ccf
Moved MagbootsComponent.cs from Cloning to Clothing (#4399) 2021-07-31 01:05:07 +02:00
Galactic Chimp 5363f59a90 Merge branch 'master' into replace-sounds-with-sound-specifier
# Conflicts:
#	Content.Server/Kitchen/Components/ReagentGrinderComponent.cs
#	Content.Server/Storage/Components/SecureEntityStorageComponent.cs
2021-07-30 20:26:22 +02:00
Galactic Chimp 898bdc9491
#4420 Replaced SecureEntityStorageComp with LockComponent (new ECS) (#4228)
* #4420 moved sound components to a better spot in the project

* MWF-4420 - ported SecureEntityStorageComponent to new ECS system, as a LockComponent

* MWF-4420 - removed unused usings

* #4420 removed dumb ToggleLockVerb override workaround

* #4420 added SoundSpecifier to LockComponent
2021-07-30 10:22:06 -07:00
Vera Aguilera Puerto 8ed1a9e19c Add ButtonHelpers and the SetButtonDisabledRecursive helper.
Fixes the mess from the other day.
2021-07-29 12:55:37 +02:00
Paul Ritter 3501bcbea6
reagentgrinder ecs & xamlui (#4347)
* started converting grinder to ecs

* finished reagentcontainer ecs
refactored bui
converted ui to xaml

* adds handling

* fixes handling

* oopsie

Co-authored-by: Paul <ritter.paul1+git@googlemail.com>
2021-07-28 21:58:38 -07:00
Visne 273eaa493f
XAMLify ID card computer, Alerts and AME window (#4322)
* Refactor ID card computer to XAML UI

* Alerts

* XAMLify AME window

* Use Control.SetButtonDisabledRecursive() instead
2021-07-27 20:09:12 +02:00
Vera Aguilera Puerto 1033d8bbe5 Use EntitySystem dependencies in a bunch of systems. 2021-07-26 13:01:47 +02:00
mirrorcult a91f919018
Remove FoodContainer, add whitelists, replace with SpawnItemsOnUse (#4358) 2021-07-25 17:41:50 +02:00
Galactic Chimp f531c65a0b Merge branch 'master' into replace-sounds-with-sound-specifier
# Conflicts:
#	Content.Server/Actions/Actions/DisarmAction.cs
#	Content.Server/Actions/Actions/ScreamAction.cs
#	Content.Server/Arcade/Components/SpaceVillainArcadeComponent.cs
#	Content.Server/Damage/Components/DamageOnHighSpeedImpactComponent.cs
#	Content.Server/Explosion/Components/FlashExplosiveComponent.cs
#	Content.Server/Physics/Controllers/MoverController.cs
#	Content.Server/Portal/Components/PortalComponent.cs
#	Content.Server/Portal/Components/TeleporterComponent.cs
#	Content.Server/Projectiles/Components/ProjectileComponent.cs
#	Content.Server/Singularity/Components/EmitterComponent.cs
#	Content.Server/Sound/EmitSoundSystem.cs
#	Content.Server/Stunnable/Components/StunbatonComponent.cs
#	Content.Server/Tools/Components/MultitoolComponent.cs
#	Content.Server/Weapon/Ranged/Barrels/Components/ServerBatteryBarrelComponent.cs
#	Content.Shared/Gravity/GravityComponent.cs
#	Content.Shared/Light/Component/SharedExpendableLightComponent.cs
#	Content.Shared/Maps/ContentTileDefinition.cs
#	Content.Shared/Slippery/SlipperyComponent.cs
#	Content.Shared/Standing/StandingStateComponent.cs
#	Resources/Prototypes/Entities/Objects/Fun/bike_horn.yml
2021-07-25 14:12:00 +02:00
metalgearsloth ced39d4b2e
Slight trigger refactor (#4320)
* Trigger tweaks

* Finish trigger refactor

* Clusterflash too
2021-07-25 12:09:08 +02:00
mirrorcult 649e973a15
Fix missing inhands showing an error (#4360) 2021-07-25 03:02:48 -07:00
mirrorcult d27164528e
Add UI for setting solution transfer amount (#4074)
* basic eui and window

* finish EUI, update defaults

* unnecessary usings

* convert to bounduserinterface

* merge me up

merge me up inside

* Fix repeated define for component in prototype

* impl swept UI suggestion

* apply discord reviews

* small changes
2021-07-25 00:53:53 -07:00
Paul b8972ffcfc fixes #4307 2021-07-24 01:38:10 +02:00
Paul ed384fbc91 fixes the solarcontrolwindow
updates submodule (just realized i didn't need to, whatever)
2021-07-22 20:02:18 +02:00
Ygg01 3fd28c2565
Added mapped storage for things like crayon belts and tools (#4201)
* Added mapped storage for things like crayon belts and tools

* Attempt to get StorageFillEvent to work

* Managed to get it working with Visualizer logi

* Improved PR and did some light refactoring of components

* Update Content.Client/Storage/Visualizers/MappedItemVisualizer.cs

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Removed event, went with stateful ApperanceData

* Removed ids in favor of whitelist

* Refactor YAML, Moved functionality to Shared and renamed it.

* Changed so insert/remove always send full state.

* Move logic to component

* Fix some issues on MappedVisualizer and few nitpicks

- Fix mapped visualizer only doing init or update layers
- Fixed naming of systems
- Fixed sort of crayons

* Forgot to apply Vera's suggestion

* Fix the data to be more strict and to avoid unnecessary clearing

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2021-07-22 02:56:55 -07:00
Pieter-Jan Briers e9af56c7c3 Vote type delay, code comments.
Added doc comments to server side voting API.
There is now a 4 minute delay between creating votes of the same type.
Shuffled some code around.
Made a StandardVoteType enum instead of string IDs.
2021-07-21 19:03:10 +02:00
Pieter-Jan Briers a0a5dcdfde Clean up vote XAML a bit.
Remove deprecated UI things from it, give vote popup a MinWidth.
2021-07-21 15:15:02 +02:00
metalgearsloth 590a6ce969
Slipping, now with 20% more ecs (#4310)
* Slipping, now with 20% more ecs

* vereview
2021-07-21 22:13:58 +10:00
Visne 951691bbd6
Close examine tooltip when moving out of range (#4273) 2021-07-21 21:31:00 +10:00
Visne 8ee312f2d4
Adds integer scaling option (#4300)
* Adds integer scaling option

* RobustToolbox

* Update option name and tooltip
2021-07-21 21:30:50 +10:00
metalgearsloth 500b9cb1ea
Make Saltern driveable (#4257)
* Broadphase refactor (content)

* Shuttle jank

* Fixes

* Testing jank

* Features and things

* Balance stuffsies

* AHHHHHHHHHHHHHHHH

* Mass and stuff working

* Fix drops

* Another balance pass

* Balance AGEN

* Add in stuff for rotating shuttles for debugging

* Nothing to see here

* Testbed stuffsies

* Fix some tests

* Fixen test

* Try fixing map

* Shuttle movement balance pass

* lasaggne

* Basic Helmsman console working

* Slight docking cleanup

* Helmsman requires power

* Basic shuttle test

* Stuff

* Fix computations

* Add shuttle console to saltern

* Rename helmsman to shuttleconsole

* Final stretch

* More tweaks

* Fix piloting prediction for now.
2021-07-21 21:15:12 +10:00
metalgearsloth 4b78e0a4e0
ECS flash area on collision (#4311) 2021-07-21 11:20:13 +02:00
metalgearsloth 8862028860
ECS StunnableProjectile (#4309)
* ECS StunnableProjectile

Also renamed it to the more generic component for stunning on collision

* Reviews
2021-07-21 11:16:38 +02:00
metalgearsloth 94ef2cb66e
Nuke portals (#4315) 2021-07-21 11:16:10 +02:00
Visne 370ae45b5a
Refactor OptionsMenu to XAML UI (#4299) 2021-07-20 21:36:28 +02:00
metalgearsloth b46de3a5db
Refactor chemical injection to be ECS (#4296) 2021-07-20 17:41:22 +02:00
Pieter-Jan Briers b96d760043
Chat improvements. (#4283)
* UI is an abbreviation, in XAML.

* Chat improvements.

Changing the "selected" channel on the chat box is now only done via the tab cycle or clicking the button.

Prefix chars like [ will temporarily replace the active chat channel. This is based 100% on message box contents so there's no input eating garbage or anything.

Pressing specific channel focusing keys inserts the correct prefix character, potentially replacing an existing one. Existing chat contents are left in place just fine and selected so you can easily delete them (but are not forced to).

Channel focusing keys now match the QWERTY key codes.

Deadchat works now.

Console can no longer be selected as a chat channel, but you can still use it with the / prefix.

Refactored the connection between chat manager and chat box so that it's event based, reducing tons of spaghetti everywhere.

Main chat box control uses XAML now.

General cleanup.

Added focus hotkeys for deadchat/console. Also added prefix for deadchat.

Local chat is mapped to deadchat when a ghost.

Probably more stuff I can't think of right now.

* Add preferred channel system to chat box to automatically select local.

I can't actually test this works because the non-lobby chat box code is complete disastrous spaghetti and i need to refactor it.

* Move chatbox resizing and all that to a subclass.

Refine preferred channel & deadchat mapping code further.

* Don't do prefixes for channels you don't have access to.

* Change format on channel select popup.

* Clean up code with console handling somewhat.
2021-07-20 10:29:09 +02:00
Visne bf493c39b7
Replace most VBox/HBoxContainers with BoxContainers (#4274) 2021-07-18 18:39:31 +02:00
Pieter-Jan Briers 97a3866a40 Use replicated CVars for max chat message length. 2021-07-17 14:35:28 +02:00
Visne b7dc3c81ae
Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Visne 0bc2b5745b
Remove unused IEntityManager parameter from ScreenCoordinates.FromMap() (#4272) 2021-07-15 22:09:15 -07:00
Swept 5f9ba812ca
Reorganizes Resources/Constructible (#4252) 2021-07-15 18:30:50 +00:00
mirrorcult 1f17b817af
Fix low wall overlay displaying incorrectly (#4138)
* fix low wall overlay displaying incorrectly and move low wall overlay handling to window

* Revert "fix low wall overlay displaying incorrectly and move low wall overlay handling to window"

This reverts commit 2f423c03254c70896026cc34a8df7704034f37d4.

* actual change

* forgot about merge
2021-07-12 21:10:03 -07:00
Acruid 59e5cc5e3c
Remove Static Component NetIds (#4247)
* Remove the unnecessary NetID property from ComponentState.

* Remove Component.NetworkSynchronizeExistence.

* Removed Component.NetID.

* Adds component netID automatic generation.

* Removed NetIdAttribute from serverside components with no corresponding clientside registration.

* Completely remove static NetIds.

* Renamed NetIDAttribute to NetworkedComponentAttribute.

* Add GenerateNetIds calls to client and server entry points.
Add test to make sure auto generated NetIds are identical.

* Component changes when rebasing that I am too lazy to rewrite into the branch.

Co-authored-by: Vera Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
2021-07-12 10:32:10 +02:00
Vera Aguilera Puerto 077f158dda
Add pipe coloring (#4261) 2021-07-12 09:59:45 +02:00
Vera Aguilera Puerto d8bfb7c054 Instrument checks connection status before sending stop component message. 2021-07-11 11:07:16 +02:00
Galactic Chimp ce3c59e0e6 replacing sound (collection) names with SoundSpecifier - part 1 2021-07-10 17:35:33 +02:00
Galactic Chimp 1b8fb8df1d
#4213 translation string fixes (#4217)
* #4213 some translation string fixes

* #4213 cargo localization string fixes

* #4213 more localization tweaks and fixes

* #4213 - fixed some translation string issues

* #4213 - fixed some translation string issues
2021-07-10 01:14:06 -07:00
Swept 0a42b0b59f
Changes the chatbox to be more consistent with SS14's UI (#4137) 2021-07-09 07:10:57 +00:00
Pieter-Jan Briers cfe4a26d1f Fix AME node updating to fix exceptions.
And also make it run less poorly, I guess.
2021-07-06 20:56:55 +02:00
Pieter-Jan Briers 103bc19508
Pow3r: stage 1 (#4208)
Co-authored-by: 20kdc <asdd2808@gmail.com>
2021-07-04 18:11:52 +02:00
Vera Aguilera Puerto bc7b315b18
Replace IResettingEntitySystem with RoundRestartCleanupEvent. (#4245)
* Replace IResettingEntitySystem with RoundRestartCleanupEvent.

* oops
2021-06-29 23:56:07 +10:00
Vera Aguilera Puerto 9bedfe79be
Fix being able to start pulling something while incapacitated. (#4240) 2021-06-28 22:17:37 +10:00
Vera Aguilera Puerto 599814d5a0 Chat manager won't enqueue speech bubbles in a different map than you eye.
Fixes #4215
2021-06-28 13:21:41 +02:00
metalgearsloth 50cc526ebd
Refactor standing to be ECS (#4142)
* Refactor standing to be ECS

E C S B A B Y

* DONE

* FIX IT FIX IT FIX IT

* IsDown event

* Change to methods

* Fixes

* Address some reviews

* Last of the Mohicans

* Final fixes

* Fix tests
2021-06-27 19:02:46 +10:00
Galactic Chimp 97f4f0a9bd
#4222 fixed crayon cast issue causing exception (#4229) 2021-06-27 18:01:26 +10:00
Galactic Chimp afb5f5c8eb
#1462 extracted MapGrid's HasGravity property to separate Content com… (#4200)
* #1462 extracted MapGrid's HasGravity property to separate Content component

* #1462 - PR suggestions

* Merge to master

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2021-06-27 15:43:39 +10:00
Pieter-Jan Briers fc74eaca62 Use new DrawString helper in TraitorOverlay 2021-06-26 03:26:57 +02:00
Swept d6805f47a3
Added fireaxe cabinets (#4221)
* Added fireaxe cabinets

* Now inserts and renamed ItemCabinetVisuals file

* Added netsync

* Cut out layers for future ItemCabinetVisualizer work and reorganized some RSIs

* Update Resources/Textures/Constructible/Storage/Cabinets/extinguisher_cabinet.rsi/meta.json

* Update Resources/Textures/Constructible/Storage/Cabinets/extinguisher_cabinet.rsi/meta.json

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2021-06-25 13:27:22 +10:00
DrSmugleaf 716bee0746
Remove IClientSingularityInstance, move visual effects to SingularityDistortionComponent (#4194)
* Remove IClientSingularityInstance

* In and out 5 minute refactor

* Component states for singularity distortion

* Fix distortion states

* Address reviews
2021-06-24 12:48:11 +10:00
collinlunn f2816e8081
Moves Hands to shared, some prediction (#3829)
* HandsGuiState

* Gui state setting methods

* code cleanup

* Removes TryGetHands

* ClientHand

* Gui Hands

* Refactor WIP 1

* Hand index

* refactors 2

* wip 3

* wip 4

* wiip 4

* wip 5

* wip 6

* wip 7

* wip 8

* wip 9

* wip 11

* Hand ui mostly looks fine

* hands gui cleanup 1

* cleanup 2

* wip 13

* hand enabled

* stuff

* Hands gui gap fix

* onpressed test

* hand gui buttons events work

* bag activation works

* fix item use

* todo comment

* hands activate fix

* Moves Client Hands back to using strings to identify active hand

* fixes action hand highlighting

* diff fix

* serverhand

* SharedHand

* SharedHand, IReadOnlyHand

* Client Hands only stores SharedHand

* cleanup server hands

* server hand container shutdown

* misc renames, refactors of serverhand

* stuff 1

* stuff 3

* server hand refactor 1

* Undo API changes to remove massive diff

* More API name fixes

* server hands cleanup 2

* cleanup 3

* dropping cleanup

* Cleanup 4

* MoveItemFromHand

* Stuff

* region sorting

* Hand Putter methods cleanup

* stuff 2

* Merges all of serverhand and clienthand into sharedhand

* Other hands systems, hack to make inhands update (gui state set every frame, visualzier updated every frame)

* GetFinalDropCoordinates cleanup

* SwapHands cleanup

* Moves server hands code to shared hands

* Fixed hand selected and deselected

* Naming fixes

* Server hands system cleanup

* Hands privacy fixes

* Client hand updates when containers are modified

* HeldItemVisualizer

* Fixes hand gui item status panel

* method name fix

* Swap hands prediction

* Dropping prediction

* Fixes pickup entity animation

* Fixes HeldItemsVisualizer

* moves item pickup to shared

* PR cleanup

* fixes hand enabling/disabling

* build fix

* Conflict fixes

* Fixes pickup animation

* Uses component directed message subscriptions

* event unsubscriptions in hand system

* unsubscribe fix

* CanInsertEntityIntoHand checks if hand is enabled

* Moving items from one hand to another checks if the hands can pick up and drop

* Fixes stop pulling not re-enabling hand

* Fixes pickup animation for entities containers on the floor

* Fixes using held items

* Fixes multiple hands guis appearing

* test fix

* removes obsolete system sunsubscribes

* Checks IsFirstTimePredicted before playing drop animation

* fixes hand item deleted crash

* Uses Get to get other system

* Replaces AppearanceComponent with SharedAppearanceComponent

* Replaces EnsureComponent with TryGetComponent

* Improves event class names

* Moves property up to top of class

* Moves code for determining the hand visualizer rsi state into the visualizer instead of being determined on hand component

* Eventbus todo comment

* Yaml fix for changed visualizer name

* Makes HandsVisuals a byte

* Removes state from HandsVisualizer

* Fixes hand using interaction method name

* Namespace changes fixes

* Fix for changed hand interaction method

* missing }

* conflict build fix

* Moves cleint HandsSystem to correct folder

* Moved namespace fix for interaction test

* Moves Handsvisualizer ot correct folder

* Moves SharedHandsSystem to correct folder

* Fixes errors from moving namespace of hand systems

* Fixes PDA component changes

* Fixes ActionsComponent diff

* Fixes inventory component diff

* fixes null ref

* Replaces obsolete Loc.GetString usage with fluent translations

* Fluent for hands disarming

* SwapHands and Drop user input specify to the server which hand

* Pickup animation WorldPosiiton todo

* Cleans up hands gui subscription handling

* Fixes change in ActionBlockerSystem access

* Namespace references fixes

* HandsComponent PlayerAttached/Detached messages are handled through eventbus

* Fixes GasCanisterSystem drop method usage

* Fix gameticker equipping method at new location

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2021-06-21 19:21:20 +10:00
mirrorcult 2ea5aec101
Remove NetMessage deprecated boilerplate (#4196) 2021-06-21 07:43:54 +02:00
Galactic Chimp 392b820796
Removed old Loc.GetString() use instances (#4155)
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
2021-06-21 02:13:54 +02:00
Vera Aguilera Puerto 82a2663d1f Fix crafting menu icon not appearing
Fixes #4210
2021-06-20 22:45:00 +02:00
Pieter-Jan Briers 1eae13a863 HumanoidProfileEditor defers preview updates to FrameUpdate.
Fixes most of the perf problems with it.
2021-06-20 19:50:28 +02:00
Vera Aguilera Puerto f7f996e168 Fix a single namespace 2021-06-20 10:14:52 +02:00
Vera Aguilera Puerto d3a611164b
Turns GameTicker into an EntitySystem. (#4197)
* GameTicker turned into an EntitySystem

* Turns ClientGameTicker into an EntitySystem, turn NetMessages into events

* Change event names to be more consistent with the rest.

* YAML linter uses the dummy gameticker CVar override.

* Fix game ticker initialization order

* Dummy ticker won't spawn players.

* Fix character creation test
2021-06-20 10:09:24 +02:00
Acruid 15fb554c28
Engine Entity Anchoring Changes (#4195)
* Converted all SnapGridPositionChangedEvent subscriptions to AnchorStateChangedEvent.

* Fixes power tests with new anchored requirements.

* Moved AnchorableComponent into construction.
AnchorableComponent now uses Transform.Anchored.

* Fixed bug with nodes, power works again.

* Adds lifetime stages to Component.

* Update Engine to v0.4.70.
2021-06-19 19:41:26 -07:00
DrSmugleaf 0ab7b3a5d2 Fix a tragic 2D suffix on the filename of DrinkFoodContainerVisualizer 2021-06-20 00:19:14 +02:00
Swept a51305466e
Makes more stuff destructible/breakable (#4081) 2021-06-19 19:34:01 +00:00
Vera Aguilera Puerto a2b737d945
Atmos pipe rework (#3833)
* Initial

* Cleanup a bunch of things

* some changes dunno

* RequireAnchored

* a

* stuff

* more work

* Lots of progress

* delete pipe visualizer

* a

* b

* pipenet and pipenode cleanup

* Fixes

* Adds GasValve

* Adds GasMiner

* Fix stuff, maybe?

* More fixes

* Ignored components on the client

* Adds thermomachine behavior, change a bunch of stuff

* Remove Anchored

* some work, but it's shitcode

* significantly more ECS

* ECS AtmosDevices

* Cleanup

* fix appearance

* when the pipe direction is sus

* Gas tanks and canisters

* pipe anchoring and stuff

* coding is my passion

* Unsafe pipes take longer to unanchor

* turns out we're no longer using eris canisters

* Gas canister inserted tank appearance, improvements

* Work on a bunch of appearances

* Scrubber appearance

* Reorganize AtmosphereSystem.Piping into a bunch of different systems

* Appearance for vent/scrubber/pump turns off when leaving atmosphere

* ThermoMachine appearance

* Cleanup gas tanks

* Remove passive gate unused imports

* remove old canister UI functionality

* PipeNode environment air, make everything use AssumeAir instead of merging manually

* a

* Reorganize atmos to follow new structure

* ?????

* Canister UI, restructure client

* Restructure shared

* Fix build tho

* listen, at least the canister UI works entirely...

* fix build : )

* Atmos device prototypes have names and descriptions

* gas canister ui slider doesn't jitter

* trinary prototypes

* sprite for miners

* ignore components

* fix YAML

* Fix port system doing useless thing

* Fix build

* fix thinking moment

* fix build again because

* canister direction

* pipenode is a word

* GasTank Air will throw on invalid states

* fix build....

* Unhardcode volume pump thresholds

* Volume pump and filter take time into account

* Rename Join/Leave atmosphere events to AtmosDeviceEnabled/Disabled Event

* Gas tank node volume is set by initial mixtuer

* I love node container
2021-06-19 13:25:05 +02:00
Galactic Chimp cfc3f2e7fc
#3814 - dropping an item, which adds an action to the actions bar, wi… (#4123)
* #3814 - dropping an item, which adds an action to the actions bar, will no longer leave weird ui glitch in actions bar

* #3814 - small reformat + minor style tweaks

* #3814 - bit better working ActionMenu locking + added missing toolips for ActionMenu lock and OpenAbilities button

* #3814 - tooltip text typo fix

* #3814 - incorporated suggestions

* #3814 localization tweaks
2021-06-19 03:41:43 -07:00
Galactic Chimp 53671aeee7
#3935 - Refactored ToysComponent functionality into ECS (#4127)
* #3935 - toys properly play sounds when: Activated, Landed (after throwing) and Used in hand

* #3935 - extracted BaseEmitSoundComponent

* #3935 - refactored EmitSound components to use ECS

* #3935 - added new components to client ignored components

* #3935 - added suggested stuff for EmitSoundSystem et al.

* #3935 added suggestions from PR

* #3935 implemented suggestions from PR

* #3935 updated namespace
2021-06-19 02:35:56 -07:00
DrSmugleaf 9b8185db23
Deprecate IActionBlocker in favour of cancellable events (#4193)
* Deprecate IActionBlocker in favour of cancellable events

* Bring back old speech/emoting component restrictions

* Rename action blocker listener methods

* Use Entity System public methods instead of extension methods

Co-authored-by: Vera Aguilera Puerto <gradientvera@outlook.com>
2021-06-19 10:03:24 +02:00
Acruid e1e54e9cb1
Removes all dependencies on engine component events. (#4199) 2021-06-18 10:49:18 +02:00
DrSmugleaf 4f4d203d2e
Make ghost component ECS (#4159)
* Make ghost component ECS

* Remove players and locations properties from ghost component

* Address reviews

* One more doc

* Fix client ghost component state method error
2021-06-18 09:56:23 +02:00
20kdc a2f5c953dc
Refactoring of solar control console (#4072)
* Refactor/fix client-side of solar control computer (introduce ComputerBoundUserInterface & fix bugs)

* Refactor server side of solar control computer (introduce BaseComputerUserInterfaceComponent)

* If you can't interact, then messages to computers are blocked.

* Add 'not powered' messages, migrate activation logic partially to an EntitySystem

* Move solar control console to a XAML UI

* Remove useless comment on UserInterfaceKey

* BaseComputerUserInterfaceComponent: Remove EnsureComponent<PowerReceiver>, it's not necessary

* Fix solar panel occlusion check direction

* Solar Control Console refactors/etc. : Handle namespace renames
2021-06-17 00:49:02 +10:00
DrSmugleaf 69969bbdc6
Remove IBody, IBodyPart, IMechanism and IMechanismBehavior (#4187)
* Remove IBody, IBodyPart, IMechanism and IMechanismBehavior interfaces

* Summary cleanup
2021-06-17 00:44:38 +10:00
metalgearsloth 7cbfbad578
Minor cuff changes (#4164) 2021-06-17 00:37:05 +10:00
DrSmugleaf e44663e99f
Remove obsolete system event unsubscriptions (#4190) 2021-06-16 23:54:00 +10:00
DrSmugleaf f878f353e4
Move some files out of Content.Shared root because I forgot (#4182) 2021-06-13 22:52:40 +10:00
DrSmugleaf f9acdbe5cc
Fix unused and improperly named xaml namespaces (#4172) 2021-06-10 23:09:07 +02:00
DrSmugleaf ff1a2d97ea
Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
mirrorcult 1c7285825c
Refactor ExtinguisherCabinet->ItemCabinet and actually maps them in, adds EntityWhitelist (#4154)
* i probably shouldnt have done this in one commit

* map nonsense

* fix example code

* unnecessary

* test

* reviews

* little fix for open datafield

* add soul
2021-06-09 12:10:29 +10:00
20kdc 561a5bc0f2
Cloning error messages and prediction based timing (#4013)
* Cloning error messages and prediction based timing

* Cloning error messages & prediction based timing: Fix problems mentioned in reviews
2021-06-06 03:32:59 +10:00
ShadowCommander 3af9c334ea
Stop ItemStatus from spamming measure
ItemStatus set Label.Text in Update which caused measure and arrange to be invalidated
every update.
2021-06-05 01:33:30 -07:00
Swept fd2a081539
Slims down disposal unit ui and fixes thrown collisions (#4122)
* Cleans up disposal unit yaml and fixes inability to throw things in them.

* Comments out mailing units because they are beyond broken and need a refactor.

* Makes Disposal UI look better

* Localized the disposal unit

* Removes title line

* Removes changes to VendingMachineMenu, mistakenly committed.

* Applies code reviews

* Now uses BaseMachinePowered
2021-06-03 17:26:08 -07:00
20kdc 6a78c401bf
Singularity Fixes, Part 3 (#4105)
* Hopefully make singularity shader warping resolution-invariant

This may or may not fix intensity issues

* Fix singularity 'zero velocity' check

It got stuck in a corner. Twice. I really thought I'd fixed that.

* Make it easier to move around various power stuff by shrinking their AABBs a little and making singulo generator a circle

* Changes to some machine prototypes to reduce duplication of collision changes (#1)

* Changes to some machine prototypes to reduce duplication of collision changes

* BaseMachine.BaseMachineUnpowered -> BaseMachine.BaseMachinePowered
2021-06-03 00:55:50 -07:00
R. Neuser db4213b21a
Fix Issue #4056 - Prevent cargo order quantities larger than the maximum (#4057)
* Fix merge conflicts with #4078
Check if the requested cargo order amount exceeds the maximum capacity
Check if the maximum order capacity would be exceeded given current capcity and order amount when approved
Cap maximum cargo request amount on client-side
Play an error sound if a cargo order could not be added or approved

* Add back error sound

* Cargo orders over the maximum amount do not close the order UI
2021-05-31 21:45:28 -07:00
ShadowCommander ae4534a29a
Fix ChatBox not calling OnMouseExited 2021-05-31 18:57:36 -07:00
metalgearsloth d93ebe9409 Remove ICollideSpecial
Handled in an ECS way by PreventCollideEvent.
The disposals one doesn't work anyway and would've required a larger refactor of disposals to fix so out of scope.
2021-05-30 23:30:44 +10:00
20kdc a3d9562532
Makes the singularity engine actually work stably. (#4068)
* Add GNU Octave script for tuning singularity engine. startsingularityengine is now properly tuned & sets up radiation collectors. FTLize RadiationCollectorComponent.

* Fix bugs with radiation collectors producing infinite power.

* Ensure singularities don't instantly annihilate other singularities (causing new singularities to instantly dissolve)

Technically found by a "bug" where a singularity generator would make multiple singularities, but this renders that bug harmless.

* Tune singularity shield emitters to hopefully randomly fail less, and add an Octave script for looking into that

* Fix singularity shader

* Map in an unfinished PA into Saltern

* Correct PA particles being counted twice by singularity calculations, add singulo food component

* Hopefully stop "level 1 singulo stuck in a corner" issues by freezing it when it goes to level 1 from any other level

* Apply suggestions on 'jazz' PR
2021-05-28 11:44:13 +02:00
mirrorcult 58d15ebc3b
Fix melee weapon effects being offset incorrectly (#4102) 2021-05-28 10:58:30 +02:00
mirrorcult 8b0826ff83
Fix NRE when spawning and activating randomized expendable lights (#4059)
* fix nre

* move resolve up to parent

* oopy
2021-05-28 09:56:06 +02:00
20kdc c7f104cd93
More rotatability (#4067)
* Make barstools, PA components, and radiation collectors rotatable.

Making barstools rotatable is so that people can spin on the barstool. (RP moment.)

The other two are more "functional" changes for assembling a PA.

* Allow rotating a rotate-while-anchored object if you're buckled to it.

Barstool spinny

* Fix bug with rotation of an object that someone is buckled to

* BuckleSystem: Efficiency improvements with directed events

* Don't need to unsubscribe anymore from events, so in BuckleSystem, just don't
2021-05-27 12:51:14 +02:00
Vera Aguilera Puerto f64433a14d Makes more things queue delete to prevent physics collision callback issues. 2021-05-26 18:43:12 +02:00
Vera Aguilera Puerto 33fa208214
Refactors stacks to be fully ECS. (#4046) 2021-05-26 10:20:57 +02:00
20kdc 136928ecb8
Fix exception in IconSmoothSystem where it tries to get a grid that doesn't exist (#4064)
This finally ought to actually kill the bug for real this time. Hopefully.
2021-05-24 16:39:57 +02:00
20kdc 7598684e88
Make IconSmoothComponent more failure-tolerant of the grid not being available (Fixes power stuff disappearing) (#4063)
This (hopefully) fixes power stuff disappearing by making IconSmoothComponent more failure-tolerant of grids not being available.
It might still leave issues in, though.
2021-05-23 20:18:36 +02:00
ShadowCommander acb102f978
Rename and clean up interaction events (#4044)
* Rename and clean up interaction events

* Fix hand equip events
2021-05-22 21:06:40 -07:00
Ygg01 d97021d3a0
Fix layers displaying in cable stacks (#4028)
* Fix layers displaying in cable stacks

Fixed stackVisualizer to use another round method

* Fix ShadowCommander review

* Change to expected Result
2021-05-22 21:05:55 -07:00
Visne d97dd4400d
Implement fluent for some Menu files (#3893) 2021-05-21 15:39:33 +02:00
Paul e9844e8c4c fixes #4003 (examine-spriteview is rotated) 2021-05-21 14:55:15 +02:00
Vera Aguilera Puerto 3a27490c59
Material cleanup (#4025)
* work

* more work
2021-05-20 10:37:34 +02:00
Clyybber 914e49f867
Chat channel switching improvements (#4000)
* IC is default when joining;
switch to IC channel if IC channel becomes unavailable before trying OOC

* Allow channel cycling while the textbox is focused

* Fix focus channel keybinds not actually focusing

* Whitespess

* Fix duplicate radio

* Smol CycleChatChannel cleanup

* Revert style change
2021-05-15 03:28:04 -07:00
Pieter-Jan Briers 4903c3bbc6 Remove usages of client IPlayerSession from content. 2021-05-13 01:18:09 +02:00
20kdc e0f7ca7740
Little component to make batteries examinable. (#3982) 2021-05-13 01:10:57 +02:00
ShadowCommander 28d59908ca
Show nothing instead of error sprite when item has no inhands (#3992) 2021-05-13 00:43:53 +02:00
ShadowCommander c2d66723a3
Cloning rework (#3808)
* Fix cloning

* Fix cloning after clone dies and remove unneeded code

* Fix ignored

Co-authored-by: Silver <silvertorch5@gmail.com>
2021-05-11 16:16:08 -07:00
Vera Aguilera Puerto 9c3c81e8d8 Fix radio messages not being sent and messages not being escaped. 2021-05-11 12:17:47 +02:00
ShadowCommander 4780179058
Global ghost hearing (#3954)
* Add global hearing for ghosts

* Fix speech bubbles breaking when out of PVS
2021-05-11 18:37:40 +10:00
Paul Ritter add711114c
Colors the chatselector in the chatcolor (#3960)
Co-authored-by: Paul <ritter.paul1+git@googlemail.com>
2021-05-10 19:49:12 +02:00
ShadowCommander c817165482
Fix patreon OOC name coloring 2021-05-08 22:35:32 -07:00
Alex Evgrashin 9857f8197c
Pulling change entity rotation (#3890)
* Moved rotatable to shared

* Pullable change rotation

* Applied review

* Update Content.Shared/GameObjects/EntitySystems/SharedPullingSystem.cs

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2021-05-05 13:29:26 +10:00
DrSmugleaf ad3b7fe97d
Remove field: from DataField attributes (#3932) 2021-05-04 15:37:16 +02:00
DrSmugleaf 055279f86c
Update serialization markdown usages (#3931)
* Update serialization markdown usages

* test submodule update

* Revert "test submodule update"

This reverts commit c240ca312a44365fa1aa0a7df4915434dff10bfc.
2021-05-04 13:30:38 +02:00
Pieter-Jan Briers d796dcfcca
Multi-window input handling. (#3911) 2021-05-02 20:48:00 +02:00
ShadowCommander ec00d4fa03
Use MainViewport when input is not provided a viewport (#3897) 2021-04-29 16:01:13 -06:00
metalgearsloth 6a5e7dbecb
TryGetEntitySystem nullable (#3903) 2021-04-29 15:56:17 -06:00
Acruid 00e01d51fd
SnapGridComponent Removal (#3884)
* Removed SnapGridOffset, there is only center now.

* SnapGridComponent methods are now static.

* Removed SnapGridComponent.OnPositionChanged.

* Refactored static functions off SnapGridComponent to MapGrid.
Refactored away usages of SnapGridComponent.Position.

* Added Transform.Anchored for checking if an entity is a tile entity.
More refactoring for static MapGrid functions.

* Static snapgrid methods on MapGrid are no longer static.

* Add setter to ITransformComponent.Anchored.
Removed direct references to SnapGridComponent from content.

* Grid functions now deal with EntityUids instead of SnapGridComponents.
Began renaming public API functions from SnapGrid to Anchor.

* Remove the SnapGridComponent 'Offset' field from all yaml files. This was removed in code previously, so the yaml linter was upset.

* Update engine submodule to v0.4.46.
2021-04-28 10:49:37 -07:00
Alex Evgrashin 182663cd0b
Solution visualizer fixes (#3883) 2021-04-23 00:42:48 -06:00
SweptWasTaken c402f47d9e QOL for AirlockVisualizer.cs 2021-04-22 17:10:16 -07:00
Swept 465eaa87d3
Deprecates DrinkFoodVisualizer.cs in favor of SolutionContainerVisualizer.cs (#3876)
* Initial

* Removes DrinkFoodVisualizer.cs

* Tests
2021-04-21 21:12:37 +00:00
Visne 75a8833b2c
Add AdvertiseComponent and add it to vending machines (#3756)
* WIP AdvertiseComponent

* Add AdvertiseComponent and add it to vending machines

* Add snacks.yml

* Capitalise C in cigarette machine

* Update Content.Server/GameObjects/Components/AdvertiseComponent.cs

Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>

* Update Content.Server/GameObjects/Components/AdvertiseComponent.cs

Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>

* Fix most problems

* Add localisation + exception for illegal prototype values

* Add ads for smart fridge, discount dan's, youtool and mining

* Oops

* Fix style

* Make dependencies local

* Remove some ads, increase wait

* Increase wait, allow full initial wait width

* Fix error

* Update sovietsoda.ftl

* Update sovietsoda.ftl

Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2021-04-21 20:00:14 +10:00
ike709 055059ab5c
Chairbender Chat (#3794)
* #272 restructure and restyle chat line edit section

* #272 no arrow, actually change id on channel changer

* #272 nice round chat channel picker

* #272 add chat channel selection logic, and auto-select
when a prefix is entered

* #272 consistent width of chat channel btn

* #272 only show admin channel filter if asay perms

* #272 add tutorial info on chat prefixes

* #272 added chat filter button

* #272 added chat filter button

* #272 WIP on filter popup

* #272 fix filter popup pressed / unpressed logic

* #272 fix filter popup positioning and layout

* #272 WIP channel filter logic

* #272 WIP channel filter logic

* #272 WIP refactoring how chatbox / manager manages available filters and channels to send on

* #272 WIP implementing filtering UI / logic
and refactoring how chat UI is managed

* #272 fix various bugs with new chat filter / selector logic

* #272 remove outdated todos

* #272 WIP working chat window resize

* #272 bounded chatbox resizing

* #272 alertUI moves with resized chat

* #272 WIP making alertUI not be too large when changing size / UIScale

* #272 WIP fixing window / uiscale adjustment

* #272 WIP hacky approach for resizing, will try another approach

* #272 implement hacky approach for bounded chat resize

* #272 no resizing of lobby chat

* #272 WIP adding unread marker to chat filters

* #272 basic working unread chat message indicators

* #272 WIP adding horizontal channel selector items

* #272 horizontal channel selector popup

* #272 workaround for chat selector staying highlighted when right clicking it while toggled

* #272 workaround for chat selector staying highlighted when right clicking it while toggled

* #272 wip trying to add tests for chatbox

* #272 remove test, not really possible with current system

* #272 merge latest

* #272 merge latest

* #272 fix csproj changes

* It works if you disable the lobby

* Fixes lobby chat

* Adds more channel focusses

* Channel cycler

* Address review

* Address nitpicks

* Address more of the review

* Fix chat post-viewport

* Finalize review stuff

Co-authored-by: chairbender <kwhipke1@gmail.com>
Co-authored-by: ike709 <sparebytes@protonmail.com>
2021-04-20 16:39:39 -07:00
Pieter-Jan Briers 147a54c642
Viewport improvements (#3765) 2021-04-19 09:52:40 +02:00
Pieter-Jan Briers 4a8559ab37 Fix context menu not marking input as handled correctly. 2021-04-19 01:45:02 +02:00
Vera Aguilera Puerto 2a95f5c4b6 Makes a few EntitySystems use the RaiseNetworkedEvent helper instead of manually calling IEntityNetworkManager. 2021-04-14 14:12:14 +02:00
metalgearsloth dc48b25a3b
Named fixtures for banana peels (#3822)
* Named fixtures for banana peels

* Soaps and PDAs

* Update submodule
2021-04-13 20:57:29 +10:00
Vera Aguilera Puerto 499cfe7c3d
Remove unused AudioMixTarget code. (#3838)
* Remove unused AudioMixTarget code.

* Update submodule

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2021-04-13 20:38:19 +10:00
ike709 69dbb9f654
HUD Themes (#3774)
* HUD Themes

* Prototypes

* field

* oops

* ugh

* Fixes

* Update Content.Client/UserInterface/GameHud.cs

Co-authored-by: ike709 <sparebytes@protonmail.com>
2021-04-12 00:43:53 +02:00
Vera Aguilera Puerto 2fac6b1089
Player list now lists antagonists. (#3826) 2021-04-10 22:24:50 -07:00
Vera Aguilera Puerto 03cd390478 Makes a lot of entity systems unsubscribe from events on shutdown. 2021-04-09 16:08:12 +02:00
Alex Evgrashin cfe427eb8c
Light replacer (#3701)
* Add graphics

* Barebone light replacer

* Now light replacer stores bulbs

* More interactions

* Added text messages

* Better light refil

* Add light replacer to locker and lathe

* Added sound

* Fixed ignore error

* Better inhand

* You don't like this commas?

* Fixed typo

* Deferring spawning

* Moved interaction logic to system

Co-authored-by: Alex Evgrashin <evgrashin.adl@gmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2021-04-08 22:28:06 +10:00
metalgearsloth 67f9e9cb5e
Split entity lookups from entity manager (#3747)
* Split entity lookups from entity manager

* IoC instead

* IoC refactor

* Fix bad resolve

* Remove EntityManager EntityLookup

* Update submodule

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2021-04-06 13:31:07 +10:00
DrSmugleaf 677706b117
Refactor body component to use slots instead of an army of dictionaries (#3749)
* Refactor body component to use slots instead of an army of dictionaries

* Update vox

* Replace static method call with extension

* Add setpart method, replace dispose with shutdown

* Fix tests, fix not listening to slot events when setting a part
2021-04-05 14:54:51 +02:00
DrSmugleaf 4c47cd4fe2
Add back pull moving (#3635)
* Add back pull moving

* Make pull moving event-based, use map coordinates, slow down moving when getting closer and stop moving when very close, add max range and add compensation for overshooting

* Remove compensation

* Prevent pull move from pulling you

* acruid did this

* Add unsubscriptions to shutdown

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2021-04-05 14:08:45 +02:00
collinlunn f7aba5f701
SharedItemComponent (#3513)
* StorableComponent refactor

* ItemComponent refactor

* conflict fixes

* removes redundant null check

* removes redundant item throwing code

* fix conflicts

* ExplosionLaunchedComponent

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2021-04-02 21:01:03 +11:00
metalgearsloth 5de9228c40
Content grid-trees (#3750)
* Content grid-trees

* Update submodule
2021-04-02 20:29:19 +11:00
Pieter-Jan Briers d5d4f434c1
Merge pull request #3718 from SweptWasTaken/swepthud 2021-04-01 23:24:39 +02:00
ShadowCommander a98c0dadd4
Implement inflatable wall (#3703)
* Implement inflatable wall

* Actually block atmos

* Fix naming and add description

* Add requested changes

* Change prototype to field

* Refactor checks to use existing methods

* Fix PrototypeIdSerializer imports

* Fix mass in yaml
2021-04-01 00:04:56 -07:00
ShadowCommander 7a842f7c22
Fix tests (#3707)
* First pass

* Fix access and rename banananium to bananium

* Fix captialization of CookTimeInfoLabel

* Fix InteractUsing calls

* Remove unused [Dependency]

* Replace obsolete references to Anchored with BodyType

* Assign default value to shoving someone in disposals

* Fix naming

* Replace Initialize TryGetComponents with EnsureComponent

* Rework AnchorableComponent

* Fix singularity component

* Replace obsolete usages of Angle.South

* Fix efcore warning

* Fix container tests

* Fix DebugPressurePump invalid PressurePump yaml

* Fix getting pathfinding region of grid 0

* Fix atmos plaque missing layer and add info message when it happens

* Fix AiSteeringSystem steering in an invalid grid in entity test

* Make content able to choose which log level leads to test failures

* Revert container test fix for Acruid

* Fix sprite, pipe and saving errors
Make EntityTest print all errors instead of stopping on the first

* Reorder singularity visualizer

* Disable pvs for container occlusion adn simple predict reconcile, they use entities other than map ones

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2021-03-31 21:41:23 +02:00
NIXC e842df84fa
Allow ownerless ids to show in pda (#3693)
* Allow ownerless ids to show in pda

* use new localization, and null coalesce

* Adjust localization naming
2021-03-31 15:29:57 +02:00
metalgearsloth bd0d0ec512
Fix action item rotation (#3764)
Similar to how hands does it.
2021-03-31 12:10:56 +02:00
SweptWasTaken d8996c05b6 More tweaking 2021-03-28 16:39:33 -07:00
Pieter-Jan Briers fd1012d0d2 Hair style fixes.
Can color facial hair again.
Fix sort for hair styles to use name instead of ID.
2021-03-28 21:37:09 +02:00
Pieter-Jan Briers 0ac4c0e85c
SKREEEEEE (#3706)
* Import bird sprites and define basic mob.

* SKREEEEEEEEE

* Move hair styles to new sprite accessory prototypes.

Basic stuff, no multi-species stuff yet.

* Vox hair styles and clothes

* Make HumanoidCharacterProfile.Default() a static default to fix tests.

Usages that wanted the previous random behavior now call Random().

* Remove names from hair style prototypes.

(They're in localization files)

* Update Content.Shared/Actions/ActionType.cs

(sk)reeee github

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2021-03-28 17:26:32 +11:00
Swept b7c81063ec
Open character window centered (#3735) 2021-03-28 13:40:23 +11:00
Swept 9363cd1b5c
Change storage window to OpenCentered (#3729) 2021-03-27 01:01:12 -07:00
Acruid 3e7e44df29 Removed Control.Update, moved all update code to Control.FrameUpdate. UI controls have no business running code inside simulation Ticks. Because of how the update loop is ordered, this will actually make the UI elements more responsive to simulation changes.
Fixed multiple bugs in the action UI where the Control.Update method was calling the base Control.FrameUpdate.
2021-03-26 17:10:31 -07:00
SweptWasTaken 1a0b5fb742 HandsGUI uses correct sprites again 2021-03-26 10:55:41 -07:00
ike709 1d052d0410
Improves the HUD (#3655)
* All good except the combat doll

* Makes the HUD inventory less terrible

* Cleanup, nuke the Combat Mode button

* Harm icon

* Switch the icon

* Basic goon hud

* Toggleable

* Nuke the popup, properly centers it

* Fix clicking the button

* Nuke some old code

* missed a comment

* Remove defaults

* Localization

* Nuke some old yaml

* New sprites

Co-authored-by: ike709 <sparebytes@protonmail.com>
2021-03-27 02:23:12 +11:00
Acruid 9459400002
SoundSystem Improvements (#3697)
* Refactor all audio to use the new SoundSystem.

* Update submodule

Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2021-03-21 17:12:03 +01:00
Vera Aguilera Puerto a93e9e9401 Small MeleeWeaponSystem cleanup.
Now it TryGets the entities for lunges.
2021-03-17 17:44:37 +01:00
DrSmugleaf a5ade526b7
Enable nullability in Content.Server (#3685) 2021-03-16 15:50:20 +01:00
metalgearsloth d4dede2755
Fix DoAfter flicker (#3643)
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2021-03-16 09:16:55 +01:00
Vera Aguilera Puerto 4df4493db2 Ignore GhostOnMove on the client. 2021-03-16 03:07:02 +01:00
DrSmugleaf 6f012cb9ad
Enable nullability in Content.Shared (#3626)
* Enable nullability in Content.Shared

* Fix null errors in server

* aye github i swear on me mom
2021-03-15 21:55:49 +01:00
Vera Aguilera Puerto 0c35b78401
Improved Slippery prediction, moves Slippery entirely to Shared (#3677)
* Fixes SlipperyComponent mispredict

* a

* Holy shit
2021-03-15 19:01:15 +01:00
mirrorcult e4169ecf0d
Fix minsizes for all windows that needed it (#3648)
* fix minsizes

* fix scanner height, minsize->setsize for some
2021-03-15 09:38:08 +01:00
GraniteSidewalk 97db03b065
fixes singulo shader z-levels (#3672) 2021-03-15 14:19:14 +11:00
Vera Aguilera Puerto fc7ad61afe Fix funky nullability making rotatable verbs not show up
Fixes #3656
2021-03-14 23:22:30 +01:00
mirrorcult e81db48cd1
Fix various issues with the emitter (#3329)
Co-authored-by: cyclowns <cyclowns@protonmail.ch>
2021-03-14 23:02:22 +01:00
Pieter-Jan Briers 70e2648fa0 Verb icons now UI scale. 2021-03-14 14:40:14 +01:00
Swept 3dba752193
Adds a bunch of UI icons for verbs. (#3007)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2021-03-14 14:23:32 +01:00
Pieter-Jan Briers 13afec5f76 Make TraitorOverlay use EnumerateRunes() 2021-03-14 11:36:55 +01:00
ike709 899a5cfa80
Comms Console Announcements (#3629)
* Communications console announcements

* title case for jobs

* Helper

* Prevent abuse

* Cap message length

* more abuse prevention

* Validate clientside too to reduce bandwidth from unmodified clients
2021-03-14 16:21:57 +11:00
mirrorcult f60f76f644
Increase time to clone people (#3650)
* cloning

* why

* why?
2021-03-13 01:57:51 -08:00
metalgearsloth 2f8bd10b47
Shared subfloor system (#3590)
* Shared subfloor system

Will also cull the broadphase for server a lot.

* Nullable subfloor

* Snapgrid nullable

* Actually use ComponentDependency

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2021-03-13 14:46:22 +11:00
Vera Aguilera Puerto c30c60efc4 Fixes structure instruments not playing due to a nullability moment 2021-03-13 02:46:32 +01:00
ike709 d8a8b37182
Turns lobby music down (#3634) 2021-03-13 02:06:52 +01:00
ike709 31f1cf9936
Adds lobby music (#3620)
* Adds lobby music

* Add UI toggle for lobby music

* Pick the song serverside so everyone gets the same song

* Add more songs

* Fixes

* Catch-all end lobby music

* Rename it

* Catchall ambience cvar change

* Wait until we receive the lobby song to start playing one

* Fix toggling ready status resetting the song

* Comment

* Expend the last of my sanity fixing latejoin lobby music

* Update Content.Client/GameObjects/EntitySystems/BackgroundAudioSystem.cs

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Update Content.Client/GameObjects/EntitySystems/BackgroundAudioSystem.cs

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Update Content.Client/GameObjects/EntitySystems/BackgroundAudioSystem.cs

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Move the var

Co-authored-by: ike709 <sparebytes@protonmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2021-03-12 23:40:28 +01:00
Swept bf99a91507
Revert "Revert "Slight changes to spawners"" (#3627)
* Revert "Revert "Slight changes to spawners (#3605)" (#3624)"

This reverts commit 8c01d9d9dc.

* Bring back clicktest.yml

* Update IgnoredComponents.cs

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
2021-03-12 21:28:40 +01:00
Vera Aguilera Puerto df22f24975 Optimize gas overlays slightly 2021-03-11 13:51:56 +01:00
Alex Evgrashin 4455bab4c5
Reagent container visualizer (#3529)
* Started working on beakers

* Working sprite change

* Fixed large beaker

* Add bluepsace beaker

* Add cryostasis beaker

* Removed old rsi

* Fixed dropper

* No dropper problems

* Working on syrigine

* Better syr visualizer

* Add dropper inhand

* Syringe in-hands

* Add base empty bottle for chemistry

* Deleted old fillings

* Simplified beaker in hand

* Moved chemical bottles to seperate .yml

* Fixed chem master

* Serv3 when

* Fixed grammar

* Removed delays

Co-authored-by: Alex Evgrashin <evgrashin.adl@gmail.com>
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2021-03-11 10:24:17 +01:00
Swept 87aced8392
Adds mice (#3594)
* Initial

* Mmm

* Adds them to map

* Makes mice grindable

* meta.json looking nice

* Mice go squeak

* Ye

* E

* Review

* Update Content.Server/GameObjects/Components/Mobs/Speech/MouseAccentComponent.cs

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>
2021-03-11 01:06:57 +01:00
Swept b8ab364c39
Centcom Official ghost role #3586
* Initial

* EE

* indent fix

* Oops

* Applied Reviews

* Removed Centcom Official Spawns

* Fixes Icon

* added component to ignored
2021-03-10 20:52:57 +01:00
DrSmugleaf 902aa128c2
Enable nullability in Content.Client (#3257)
* Enable nullability in Content.Client

* Remove #nullable enable

* Merge fixes

* Remove Debug.Assert

* Merge fixes

* Fix build

* Fix build
2021-03-10 14:48:29 +01:00
Acruid 6edc416afc
EntitySystemMessage Removal & InteractionSystem directed events (#3572)
* Removed obsolete EntitySystemMessage, now everything uses the base EntityEventArgs or the derived HandledEntityEventArgs.
Setup InteractionSystem to use new directed events.

* Update Submodule.
2021-03-09 11:22:48 -08:00
GraniteSidewalk 549d84174c
Singularity Shaders and a lot of Shader Stuff (#2517)
* Beginnings of singulo shader

* LOTS of changes!!

* Minor changes

* Singulo stuff

* Aesthetic changes to singulo

* Combining singulo change

* ShaderAura uses IEntities now, not IPlayerSession

* Fixes?

* Fixes draw order for atmos

* using fix

* Address reviews

* nuget.config whaaa

* nuget haha

* nuget why are you so dum

* happy now

* Preparing for omegachange

* Merge from seventh level of hell

* woork

* Ignorecomponents add

* mmf

* RobustToolbox?

* Fixes

* Fixes Robust?

* adds sprite

* Nullables

* Crit overlay stuff

* Commits Robust
2021-03-09 02:33:41 -08:00
Swept deeacce8f7
Removed unused vending machines (#3553) 2021-03-09 10:42:26 +01:00
Vera Aguilera Puerto d86623eed7 Improves AirtightComponent.
- Atmos now nulls air in fully airblocked tiles ONLY if one of the airtight entities in it has NoAirWhenFullyAirBlocked to true.
- Fixes edge firelocks atmos airtight direction
- Fixes atmos debug overlay not accounting for angle 0 being south.
2021-03-08 14:57:05 +01:00
metalgearsloth 362c6de742
Fix monkey kitchen spike dragdrop (#3450)
* Fix monkey kitchen spike dragdrop

I also aligned the behavior with tg (need combat mode on + mob alive).
It still needs to do damage over time and buckle the target but baby steps.

* Cleanup

* Fix kitchenspike layers

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2021-03-08 21:24:34 +11:00
Vera Aguilera Puerto 6c77801d90
StunnableComponent cleanup, proper prediction for stuns and slips. (#3552) 2021-03-08 05:00:50 +01:00
Swept 4b8e4dd6ba
Cleans up Airlock content (#3575)
* Initial

* Fixed RSI timings

* Sorts RSIs

* Adds effects.rsi

* Unlits
2021-03-07 19:25:07 -08:00
DrSmugleaf f682833c8d
Make the client validate character information (#3563)
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2021-03-08 13:07:53 +11:00
ShadowCommander 72a3160671
Reformat the construction menu to become less stretchy (#3538) 2021-03-07 14:09:41 -08:00
RemberBL 343f183b32
Character eye customization, scroll bar in appearance tab character setup. Fixes #2946 (#3403)
* A lot of unfinished work, trying to figure stuff out but it ain't really working

* The eye colors finally work on the sprite!

* Big refactor for HumanoidProfileEditor, crashes upon making a lobby

* Fixed Lobby crashing

* Moves the eye selection box to a new tab, which fixes selection the box from going off-screen and not expanding the bars

* uncommented something I shouldn't have commented out

* Moved eye colors back to the appearance tab, still some ui glitches

* Made it possible to scroll in the appearance tab

* Added "Eye color:" label

* Migrating some deprecated functions into their replacements

* Merged two private sealed classes into one public class, removing duplication
2021-03-07 20:48:24 +01:00
metalgearsloth 4d064abcd7
Physics (#3485)
* 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

* Fix dupe pulling

* Zumzum's based fix

* Don't run tile friction for non-predicted bodies

* Experimental pulling improvement

* Everything's a poly now

* Optimise AI region debugging a bit

Could still be better but should improve default performance a LOT

* Mover no updater

* Crazy kinematic body idea

* Good collisions

* KinematicController

* Fix aghost

* Throwing refactor

* Pushing cleanup

* Fix throwing and footstep sounds

* Frametime in ICollideBehavior

* Fix stuff

* Actually fix weightlessness

* Optimise collision behaviors a lot

* Make open lockers still collide with walls

* powwweeerrrrr

* Merge master proper

* AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

* AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

* AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

* Ch ch ch changesss

* SHIP IT

* Fix #if DEBUG

* Fix vaulting and item locker collision

* Fix throwing

* Editing yaml by hand what can go wrong

* on

* Last yaml fixes

* Okay now it's fixed

* Linter

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
Co-authored-by: Vera Aguilera Puerto <zddm@outlook.es>
2021-03-08 04:09:59 +11:00
Alex Evgrashin e919a82874
Remove unshaded from window cracks (#3547) 2021-03-07 20:04:00 +11:00
ShadowCommander dfd61d2f11
Update construction tool icons to their new paths (#3540) 2021-03-06 09:49:21 -08:00
metalgearsloth d70fec01cb
Revert "Improves sprite click detection (#3480)" (#3536)
This reverts commit abdee3d4ee.
2021-03-07 03:49:23 +11:00
Paul Ritter d6464b3ba0
fixes alert onclick (#3521)
Co-authored-by: Paul <ritter.paul1+git@googlemail.com>
2021-03-05 12:46:04 +01:00
Daniel Castro Razo abdee3d4ee
Improves sprite click detection (#3480)
* Improves sprite click detection.

* F
2021-03-05 19:33:00 +11:00
Paul Ritter 5c50b1f6ed
Serialization v3 content PR (#3491)
* serv3 in shared pt 1

* beginning of deepclone api

* progress in implementing ideepclone & serv3 in content

* adds target

* its cant hurt you it cant hurt you

* more changes to content.server

* adds dataclasses

* almost there

* renamed & edited entry

* finishes refactoring content to use serv3

* gasmixture runtimes, next: reagentunit

* fucin hell that was an annoying one

* adds flags

* fixes some yaml errors

* removes comment

* fixes generic components for now

* removes todo
actually clones values my god paul
fixes bug involving resolving custom data classes from other proj
renames dataclass
fixes spritecomp
adds WithFormat.Constants support

* adds deepclone to ResistanceSet

* adds a bunch of deepclone implementations
adds a deepclone analyzer (TODO)
adds a deep clone fallback for classes & structs

* fixes a bunch of runtimes

* adds deepclone to entityuid

* adds generator to sln

* gets rid of warnings

* fixes

* argh

* componentdata refactors

* more deepclone impl

* heck me i reworked all of content deepclone

* renames custom dataclasstarget

* misc

* reworks prototypes

* deepclone nuke

* renamed customdataclass attribute

* fixes everything

* misc fixed

* the killcommit

* getting there

* changed yamlfieldattribute namespace

* adds back iselfserialize

* renames everything to data(field/definition)

* ouch

* Fix most errors on content

* Fix more errors in content

* Fix some components

* work on tests

* fixes some customdataclasses

* fuggin shit

* yes

* yeas

* Remove data classes

* Data field naming fixes

* arg

* Git resetti RobustToolbox

* Merge fixes

* General fixes

* Fix startup serialization errors

* Fix DamageContainerPrototype when supported classes or types are null

* Implement construction graph step type serializer

* Fix up construction serialization

* Fix up construction serialization part 2

* Fix null list in technology database component

* Fix body serialization

* Fix entity storage serialization

* Fix actions serialization

* Fix AI serialization

* Fix reaction serialization

* Fix body serialization

* Fix grid atmosphere serialization

* Rename IServ3Manager to ISerializationManager

* Convert every non generic serializer to the new format, general fixes

* Serialization and body system fix

* pushinheritance fix

* Update all prototypes to have a parent and have consistent id/parent properties

* Merge fixes

* smh my head

* cuddling slaps

* Content commit for engine PR

* stuff

* more fixes

* argh

* yes even you are fixed

* changelog fixes

* fixes seeds

* argh

* Test fixes

* Add writing for alert order prototype

* Fix alert order writing

* FIX

* its been alot ok

* Fix the rest of the visualizers

* Fix server alerts component tests

* Fix alert prototype tests not using the read value

* Fix alert prototype tests initializing serialization multiple times

* THIS IS AN AMERICAN CODEBASE GOD BLESS THE USA

* Add ImplicitDataDefinitionForInheritors to IMechanismBehavior
Fixes the behaviors not being found

* Fix NRE in strap component
Good night to the 1 buckle optimization

* Fix clothing component slot flags serialization tag

* Fix body component in all components test

* Merge fixes

* ffs

* Make construction graph prototype use serialization hooks

* human yaml linted

* a

* Do the thing for construction

* stuff

* a

* monke see yaml linter

* LINT HARDER

* Remove redundant todo

* yes

* Add skip hook argument to readers and copiers

* we gamin

* test/datafield fixes

* adds more verbose validation

* moves linter to action

* Improve construction graph step type serializer error message

* Fix ammo box component NRE

* gamin

* some updates to the linter

* yes

* removes that test

* misc fixes

* array fix
priority fix
misc fixes

* adds proper info the validation

* adds alwaysrelevant usa

* Make yaml linter take half as long to run (~50% less)

* Make yaml linter 5 times faster (~80% less execution time)

* based vera being based

* fixes mapsaving

* warning cleanup & moves surpressor

* removes old msbuild targets

* Revert "Make yaml linter 5 times faster (~80% less execution time)"

This reverts commit 3e6091359a26252c3e98828199553de668031c63.

* Add -nowarn to yaml linter run configuration

* Improve yaml linter message feedback

* Make dependencies an argument instead of a property on the serialization manager

* yamllinting slaps

* Clean up type serializers

* Move yaml linter code to its own method

* Fix yaml errors

* Change yaml linter action name and remove -nowarn

* yaml linter please shut

* Git resetti robust toolbox

Co-authored-by: Paul <ritter.paul1+git@googlemail.com>
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
2021-03-05 01:08:38 +01:00
Pieter-Jan Briers e6db24a3f8 Max size for examine tooltips so they word wrap correctly. 2021-03-04 23:33:45 +01:00
Pieter-Jan Briers adf63765f7 Improve storage window layout & add text clipping. 2021-03-04 23:33:35 +01:00
WlarusFromDaSpace 952a8e709a
Fixes a fatal error when opening the PA control computer interface. (#3478)
* Fixes a fatal crash when opening the PA control computer interface.

* Fix to make PA emitters work.

* Turned _pos and _afterUnderscore into local variables.

* Explicit states

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2021-03-04 19:38:43 +11:00
Pieter-Jan Briers 0db42c8018 Fix reset all keybinds button alignment. 2021-03-03 23:10:41 +01:00
Swept eeb5cadaa0
Adds server rules (#3475)
* Initial

* Removes all unneeded stuff

* Rules

* Applied review
2021-03-03 17:56:52 +11:00
tmtmtl30 57616f6270
removes ambience from the lobby (#3428)
* removes ambience from the lobby

* calls EndAmbience in StartAmbience
2021-03-03 14:47:01 +11:00
collinlunn 06f549d282
Piping Unit test fixes (#3471)
* PipeNetDevice on piping prototypes

* client component ignore

* NodeContainer OnRemove bugfix

* Moves some NodeContainer code from OnRemove to Shutdown

* yaml indentation fix
2021-03-02 19:58:19 +01:00
Acruid 91cea56a5a
SoundSystem (#3467)
* Converted some audio calls over to the new system.

* Update Submodule.
2021-03-01 20:42:54 -08:00
Acruid 6c081d9d8d
Shared Containers (#3331)
* 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.
2021-03-01 15:24:46 -08:00
Swept 45a09bc7ea
Nerfs cargos minimum starting balance (#3468)
* e

* Aight

* Done
2021-03-01 12:56:38 -08:00
AJCM-git 26378f3869
Fix stack localization (#3455) 2021-03-01 01:02:03 +01:00
Pieter-Jan Briers f3442845a6 Clear votes on client disconnect.
They would stay stuck open otherwise.
2021-02-28 22:51:06 +01:00
Pieter-Jan Briers 245f276f35 Restart vote improvements, voting localization.
Restart votes now need 80% majority to succeed.
Restart votes now have a 3 minute cooldown on the caller.
Voting stuff has been localized.
2021-02-28 22:11:53 +01:00
AJCM-git 1409f58c1c
Updates chat manager localization (#3432) 2021-02-28 21:16:29 +01:00
Swept 6df41b2fa7
Adds material and singularity cargo crates (#3445)
* Adds various crates

* Removes redundant code from EmitterComponent.cs

* (fixed) emitter

* Hopefully good

* Update meta.json
2021-02-28 11:57:44 -08:00
Pieter-Jan Briers cb8d7730ad Chat now sends formatted messages to allow more complex messages. 2021-02-28 18:51:30 +01:00
Pieter-Jan Briers 1eb0fbd8d0 Revert "Physics (#3452)"
This reverts commit 3e64fd56a1.
2021-02-28 18:49:48 +01:00
metalgearsloth 3e64fd56a1
Physics (#3452)
* 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>
2021-03-01 03:11:29 +11:00
collinlunn 9cefe6b3f3
PipeHeaterComponent (#3443)
* PipeHeaterComponent

Heater rsi

Heater prototype

* Client ignore
2021-02-28 22:05:10 +11:00
Ygg01 df76ceee6c
Fix visualizer issues (#3440) 2021-02-28 22:02:08 +11:00
AJCM-git 4228326826
Fix changelog new out of window (#3438) 2021-02-27 18:33:31 +01:00
Paul b150df48c6 Spawner windows now remember their positions (fixes #622) 2021-02-27 12:28:40 +01:00
Acruid a9a336595a ConstructionMenu now properly unsubscribes from the keybind open event on the ConstructionSystem. This bug was previously causing an invisible disposed window to open back up after round start when pressing G, throwing exceptions and blocking mouse input. 2021-02-27 02:50:02 -08:00
AJCM-git 4cb59a0c5e
Updates blockgame localization (#3430) 2021-02-27 10:25:55 +01:00
Visne 9b94d5c195
Added nullable to most Content.Shared files (#3238)
* 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>
2021-02-27 14:12:09 +11:00
AJCM-git 2f45e5e044
Repairable Component (#3418)
* Adds a repairable component

* Ignores RepairableComponent in the client

* fix localization

* fix localization
2021-02-27 13:56:32 +11:00
Daniel Castro Razo f96839cb4c
Added a margin so the scrollbar doesn't overlap the entity's label in the context menu. (#3426) 2021-02-26 15:59:10 +11:00
Daniel Castro Razo f30a4d8a52
ContextMenu (#3286)
* ContextMenu

* Updating to WPF.

* Updating to WPF.

* Margins
2021-02-26 12:42:16 +11:00
Alex Evgrashin 0fa219365e
Ghosts do booo (spooky) (#3363)
* 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>
2021-02-26 12:31:06 +11:00
AJCM-git d177f0fd07
Adds changelog button to the escape menu (#3421) 2021-02-25 23:44:48 +01:00
Pieter-Jan Briers bd71dfc555 Escape menu: localized. 2021-02-25 21:11:27 +01:00
Pieter-Jan Briers 454465694a Localize options menu. 2021-02-25 21:08:06 +01:00
Swept e9af0d58e7
Cleans up lathe rsis (#3392) 2021-02-25 12:48:35 +01:00
Pieter-Jan Briers 356716ee5c Update NuGet packages. 2021-02-25 12:05:53 +01:00
Pieter-Jan Briers cca23f2812
Changelog. (#3398) 2021-02-25 09:50:45 +01:00
DrSmugleaf fdcbece63d
Refactor stacks to use prototypes (#3387)
* 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>
2021-02-25 16:18:29 +11:00
metalgearsloth 94bdf01ab7
do_after fixes (#3299)
* 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>
2021-02-25 11:32:41 +11:00
AJCM-git fc5d6452cd
Fix behaviorSet prototype error (#3407) 2021-02-25 11:09:27 +11:00
Vera Aguilera Puerto 436d406585
Adds tag support to construction (#3386) 2021-02-24 16:26:56 +01:00
Pieter-Jan Briers 2ec0304072 Fix StackVisualizer mutating. 2021-02-23 23:28:22 +01:00
Swept ec9a31a723
Adds the ability to specify a separate RSI path in StackVisualizer (#3368) 2021-02-23 23:25:44 +01:00
Pieter-Jan Briers 5a7658a13b Update submodule, fix a bunch of warnings. 2021-02-23 22:26:59 +01:00
Pieter-Jan Briers ade8c6115b Ignore aiFaction prototype on client. 2021-02-23 22:10:56 +01:00
Pieter-Jan Briers 9d6c719951 Fix VaporVisualizer throwing due to bad type casts. 2021-02-23 22:10:07 +01:00
metalgearsloth 55456253f0
Fix the game (#3384)
Cleanup some old PRs and make the world green again

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2021-02-23 19:23:51 +11:00
Swept 1e13c3b265
Fixes lathe stuff (#3383) 2021-02-23 18:53:14 +11:00
Fortune117 a80c803a42
fix for sandbox menu not keeping toggle (#3334) 2021-02-23 13:29:26 +11:00
collinlunn 112f7d8346
Pipe visualizers (#3042)
* modifies pipe sprites to look not connected

* pipe connector sprites

* PipeConnectorVisualizer

* Remove pipe visualizer

* Revert "Remove pipe visualizer"

This reverts commit dc8da93f99f20aa55247c6a94d26c7a75a3d1782.

* PipeDirection can be set with the sprite updating correctly

* fixes meta files

* removes unused vent/scrubber directions

* OnConnectedDirectionsNeedsUpdating

* comments + OnConnectedDirectionsNeedsUpdating gets called

* fix connecteddirections bug

* Combines ConnectedDirections sent to visualizer

* fixes unconnected pipe sprites

* Adds PipeConnectorVisualizer to other piping entities

* code cleanup

* Fixed bug with ConnectedDirections not being set correctly

* diff fix

* rotation simplification

* Improves rsi serialization

* enable nullable

* wip

* visualizer cleanup

* nullable cleanup

Co-authored-by: py01 <pyronetics01@gmail.com>
2021-02-23 13:18:30 +11:00
Ygg01 0f54a01d24
Fix bug with animated sprites not being initially animated (#3381)
Sets auto animated of client inventory to true, enables cosmos bedsheets to be
animated when first equipping.

Fixes #1144
2021-02-23 13:05:24 +11:00
DrSmugleaf be1e0abeac Fix BagOpenCloseVisualizer failing with null rsi and redundant sprite component in CigPackBase 2021-02-22 14:39:39 +01:00
Acruid 02a60a2756 Fixes construction menu from throwing exceptions after round start. 2021-02-22 01:12:36 -08:00
Swept 5b75c14ad7
Initial (#3366) 2021-02-22 09:58:46 +01:00
Swept 4a67fc1d22
Fleshes out smoking content (#3295)
* RSIs sorted out

* Bookmark

* Updated packet RSIs for Stacks

* Cigs Packs done

* Cigarette Cartons

* fucking MANUALLY fixed the cigarette inhands, fuck you tgstation

* Pipes work

* Cigars/Cases

* Updates vending machine inventory

* tweaks count

* Adds a cigarette crate

* Fixes RSIs, working on rolling paper

* Adds Tobacco and Cannabis plants

* Cigarettes and Rollies are now craftable

* There

* Fixed crafting recipes

* Reset RobustToolbox

* Netsync'd

* Ready

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
2021-02-22 15:08:17 +11:00
Remie Richards 85916b87b4
Fluent Localisation Fixes (#3344)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2021-02-22 01:07:46 +01:00
Pieter-Jan Briers 63947a6d35
Fixes all the rotation bugs. (#3365) 2021-02-22 00:46:27 +01:00
Pieter-Jan Briers b1bf1c59ed Set OverrideDirection for SpriteView in the storage interface. 2021-02-21 16:11:03 +01:00
tmtmtl30 b314c3f040
Adds a very basic perpetual background ambient hum. (#3150) 2021-02-21 14:02:23 +01:00
Pieter-Jan Briers b898443f28
WPF layout (#3346) 2021-02-21 12:38:56 +01:00
Acruid 008fee4eaf
Construction UI MVP Experiment (#3107)
* 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.
2021-02-20 12:05:59 -08:00
Swept 1b8c07b76f
UtilityAI IgnoredComponents (#3339) 2021-02-20 20:24:54 +01:00
DrSmugleaf 0ae4a6792f
Add health overlay and a command to toggle it (#3278)
* Add health overlay bar and a command to toggle it

* Remove empty line
2021-02-19 19:31:25 +01:00
DrSmugleaf 5667cffe95
Separate ghost warp message into two (#3310)
* Separate ghost warp message into two

* Remove redundant arguments

* Address reviews

* Move properties up
2021-02-19 19:29:34 +01:00
DrSmugleaf 65d1df4f0f
Fix the admin panel not showing the account name (#3322) 2021-02-19 19:27:06 +01:00
Leo 19ca611f5f
Improves kick, teleport and ban menus (#3312) 2021-02-19 19:26:34 +01:00
Acruid d1b5a31397
PauseManager moved to Shared (#3288)
* Namespace changes for moving IPauseManager to shared.

* Namespace changes for moving ITimerManager from Timers to Timing.

* Rebase Fixes.

* Update engine submodule to v0.3.8
2021-02-18 20:45:45 -08:00
komunre 77c8fc5b42
Spikes fix reopened (#3203)
* DoAfter, dead and stun check, DragDropOn

* Not ignored anymore

* Copied comment deleted

* Herbert's an ass

* Woops

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2021-02-18 18:49:50 +11:00
Leo 8640f342b5
Change all XAML to use spacestation14.io namespace (#3277) 2021-02-17 15:22:51 +01:00
Ygg01 55d65889ae
Stacked sprite visualizer (#3096)
* Add Stack Visualizer

* Add cigarette pack resources

Adds transparent layers for visualizing cigarettes

* Add Bag Open/Close Visualizer

So storage opened in inventory can have different icons when opened
or closed.

* Create a component that only enumerates single item

Used for creating stuff like matchbox, or cigarettes. As a bonus.
It will only update stack visualizer for that particullar item.

* Refactoring stuff

* Fix other usage of stack in Resources

* Add docs

* Apply suggestions from code review

Apply metalgearsloth suggestions

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Applied suggestions from metalgearsloth

* Changed SingleItemStorageComponent to StorageCounterComponent

Difference. New component doesn't spawn items, merely counts them.

* Refactored StackVisualizer

* Fix breakage with master

* Update Resources/Prototypes/Entities/Objects/Consumable/fancy.yml

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Update with MGS suggestions

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2021-02-18 00:02:36 +11:00
Swept 83f102ea75
Cleans up Hydroponics content. (#3025)
* Adds to IgnoredComponents.cs

* Jackboots

* Half Done

* Moved to diff PR

* Everything functional

* Fixed Sprays

* Nice

* Fixed

* Update submodule

* Fix tests

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2021-02-17 23:59:15 +11:00
Leo 48eea211bc
Converts AdminMenu to partially use XAML (#3231) 2021-02-17 13:39:31 +01:00
DrSmugleaf c435b5150d
Change character names to use datasets prototypes (#3259)
* Remove old name lists in .txts

* Fix tests

* LATEST MASTER TECHNOLOGY
2021-02-17 20:46:44 +11:00
DrSmugleaf ecb9993d80
Add cvar to disable ooc chat (#3258) 2021-02-16 20:14:32 +01:00
DrSmugleaf 3c54c755ce
Remove some criminal if checks (#3261) 2021-02-16 20:14:21 +01:00
Pieter-Jan Briers cea87d6985
Voting (#3185)
* 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.
2021-02-17 01:07:17 +11:00
DrSmugleaf 78afc2db0f
Add make ghost role verb (#3204) 2021-02-16 09:51:27 +01:00
mirrorcult 1ab8d3e6e9
Properly fix chair collision & disallow pulling objects you're buckled to (#3241)
Co-authored-by: cyclowns <cyclowns@protonmail.ch>
2021-02-16 09:42:03 +01:00
DrSmugleaf 04aa195c91
Add cooldown to shuttle calling (#3225) 2021-02-16 09:31:57 +01:00
DrSmugleaf cf7ac025b4
Fix the admin panel only listing your character name (#3229) 2021-02-16 09:11:15 +01:00
DrSmugleaf 9f408945de
Make pulled and cuffed players unable to move (#3227) 2021-02-16 12:51:52 +11:00
DrSmugleaf 17a224ad2c
Fix being able to teleport with the ghost warp menu while alive (#3246) 2021-02-16 01:55:09 +01:00
DrSmugleaf ab56f7dc92
Add banning to the admin panel (#3191)
* Add banning to the admin panel

* Added response to ban command
2021-02-14 16:05:02 +01:00
Leo a3d0e3f6a7
OOC sent by an admin will have a different color (#3117)
* 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
2021-02-14 15:59:56 +01:00
metalgearsloth a4db94cf03
Maybe fix do_after getting stuck (#3196)
* Maybe fix do_after getting stuck

IDK it's 5AM I tried.

* Update Content.Client/GameObjects/EntitySystems/DoAfter/DoAfterSystem.cs

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
2021-02-14 05:07:03 +11:00
Paul 22066db90f placementghosts now change when you change the targeted recipe 2021-02-13 09:13:00 +01:00
tmtmtl30 258fdc10ea
Airlock / firelock code refactor, pseudo-prediction implementation (#3037)
* splits off airlocks, firelocks

* adds airlock prediction. anims broken though

* fixes animation weirdness

* removes opacity prediction because it looked odd

* Now firelocks don't visually start open. Argh.

* Fixes firelock weirdness, saneifies _state var.

* Documentation changes, code shuffle.

* Lets firelocks crush people.

* Stops open-hand opening/closing firelocks.

* updates serializable, netserializable attributes

* Addresses reviews... hopefully.

* updates submodule?

* nullability

* fuck fuck fuck fuck

* fucking finally
2021-02-12 16:02:14 +01:00
Vera Aguilera Puerto c0f51d8c88 Ignore holiday prototypes on the client. 2021-02-12 10:55:45 +01:00
Vera Aguilera Puerto 4678e44edc Fix warnings 2021-02-12 10:53:02 +01:00
Vera Aguilera Puerto 9ee0ec4106
Holiday System (#3122) 2021-02-12 10:45:22 +01:00
Vera Aguilera Puerto 4c419f85ce
Ghost Roles (#3106)
* 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>
2021-02-12 14:35:56 +11:00
Acruid ca4fd649fe
Massive Namespace Cleanup (#3120)
* 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
2021-02-11 01:13:03 -08:00
metalgearsloth 116fc027a1
addgas and settemp under admeme menu (#3098)
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2021-02-10 13:36:11 +01:00
Leo 9a7e2ec5ff
Toggling all chat options will correctly toggle Dead chat button (#3118) 2021-02-10 11:25:52 +11:00
Vera Aguilera Puerto 9b9fbfdcfe
Replace BreakableConstructionComponent with a destructible threshold behavior (#3111)
* Replace BreakableConstructionComponent with ChangeConstructionNodeBehavior

* Fix ordering of behaviors in MachineFrame
2021-02-09 20:08:06 +01:00
DrSmugleaf 33b5099efc Replace BreakableConstructionComponent with ChangeConstructionNodeBehavior 2021-02-09 19:59:52 +01:00
Vera Aguilera Puerto 9b1142973e
Renames phoron to plasma everywhere in the codebase and replaces sprites. (#3110) 2021-02-09 19:05:19 +01:00
DrSmugleaf 2d06990ee3
Remove breakable component (#3109) 2021-02-09 14:55:54 +01:00
Pieter-Jan Briers c4fe0c904c Merge branch 'master' into expl_int_analyzer 2021-02-08 22:46:28 +01:00
DrSmugleaf c479903538 Update RobustToolbox 2021-02-07 14:56:08 +01:00
DrSmugleaf f63a89f816
Add warning when using the mapping command in debug mode (#3095) 2021-02-07 16:36:34 +11:00
Alex Evgrashin 59e72697cb
Buildable wall light (#2644)
* 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
2021-02-07 00:05:53 +01:00
Pieter-Jan Briers 5cbb3f1222 Fix UI layout bugs with the PA. 2021-02-06 17:40:00 +01:00
DrSmugleaf 8ec4f1fb3d
Fix missing ignored components on the client (#3101) 2021-02-06 13:55:36 +01:00
metalgearsloth 7ed07c0cac
Cuff enhancements (#3087)
* 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>
2021-02-05 17:11:21 +01:00
Paul 856b293d87 Merge branch 'master-upstream' into expl_int_analyzer
# Conflicts:
#	Content.Server/GameObjects/Components/Body/Part/BodyPartComponent.cs
#	Content.Server/GameObjects/Components/Botany/PlantHolderComponent.cs
#	Content.Server/GameObjects/Components/Chemistry/PillComponent.cs
#	Content.Server/GameObjects/Components/Interactable/TilePryingComponent.cs
#	Content.Server/GameObjects/Components/Items/FloorTileItemComponent.cs
#	Content.Server/GameObjects/Components/Items/RCD/RCDAmmoComponent.cs
#	Content.Server/GameObjects/Components/Items/RCD/RCDComponent.cs
#	Content.Server/GameObjects/Components/Medical/HealingComponent.cs
#	Content.Server/GameObjects/Components/Power/WirePlacerComponent.cs
#	Content.Shared/Chemistry/Solution.cs
2021-02-04 17:50:28 +01:00
Paul d5cd82de60 explicit interface go brrrr 2021-02-04 17:44:49 +01:00
Pieter-Jan Briers 3be3b7da64 Fix suspicion timer going negative and counting up.
The sign was never shown but it's still silly.
2021-02-04 15:29:59 +01:00
Vera Aguilera Puerto 655316a67c
Add playback slider to instruments. (#3071) 2021-02-04 13:37:26 +01:00
DrSmugleaf 82a97857ac
Move TagComponent from server to shared (#3076)
* 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>
2021-02-04 21:04:19 +11:00