Delta-v/Content.Shared
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
..
AI Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
AME Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
APC Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Access Truncate long name / job titles for IDs (#5009) 2021-10-24 01:28:25 -07:00
ActionBlocker Slipping tweaks + remove EffectBlocker (#4955) 2021-10-25 17:43:49 +11:00
Actions Gets rid of all ComponentManager usages. (#4707) 2021-09-28 13:35:29 +02:00
Acts Slight trigger refactor (#4320) 2021-07-25 12:09:08 +02:00
Administration Admin announcement panel. (#4803) 2021-10-09 10:54:27 +02:00
Alert Status effect refactor (#4868) 2021-10-15 23:45:04 +02:00
Arcade Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Atmos Varied and semi-sprited atmos markers (#4944) 2021-10-19 21:07:47 +02:00
Audio Adds linting support to SoundCollectionPrototype, fix linter errors. 2021-10-01 12:40:44 +02:00
Body Moves HumanoidAppearanceComponent to ECS (#4855) 2021-10-17 00:28:02 +02:00
Botany Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Buckle Slipping tweaks + remove EffectBlocker (#4955) 2021-10-25 17:43:49 +11:00
CCVar Rotate DefaultGrid on round start (#4957) 2021-10-25 15:22:57 +11:00
Cabinet Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Camera Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Cargo Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
CharacterAppearance Moves HumanoidAppearanceComponent to ECS (#4855) 2021-10-17 00:28:02 +02:00
CharacterInfo Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Chat Chat improvements. (#4283) 2021-07-20 10:29:09 +02:00
Chemistry Fix puddle spilling properly (#4812) 2021-10-09 18:33:24 +02:00
Climbing Deprecate a bunch of IActionBlocker (#4852) 2021-10-21 13:03:14 +11:00
Cloning Fix #4070, Visualizer Edition (#4730) 2021-10-02 16:43:47 -07:00
Clothing Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
CombatMode Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Communications Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Computer Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Configurable Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Construction ConstructionGL2 Part 1: ECSification, events and steps. (#5017) 2021-10-26 16:38:03 +02:00
Containers/ItemSlot Remove some functions from HandsComponent (#4937) 2021-10-25 18:06:12 +11:00
Conveyor Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Cooldown Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Coordinates Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Crayon Crayon fix (#4848) 2021-10-12 23:56:35 -07:00
Cuffs Deprecate a bunch of IActionBlocker (#4852) 2021-10-21 13:03:14 +11:00
Damage Armor (#4934) 2021-10-18 16:24:37 -07:00
Dataset Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Directions Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Disposal Make DisposalUnitComponent.TryInsert ECS (#4959) 2021-10-20 21:12:23 +02:00
DoAfter Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Doors Refactor IDoorCheck into entity events (#4366) 2021-08-02 21:57:06 +10:00
DragDrop Improve hands & pulling (#4389) 2021-07-31 03:14:00 +02:00
DrawDepth Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Electrocution Electrocution. (#4958) 2021-10-25 16:21:56 +02:00
Emoting Fix/ECS SharedEmotingComponent. 2021-09-15 16:36:56 +02:00
EntityList Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Entry Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Eui Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Examine Fix examine InDetailsRange for inventory items. (#4865) 2021-10-13 14:04:16 -07:00
Explosion Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Extinguisher Fire extinguisher safety (#4912) 2021-10-25 18:04:24 +11:00
Flash Refactors flashes to ECS, sunglasses protect you from being flashed. (#4579) 2021-09-10 00:20:41 +10:00
Fluids Fire extinguisher safety (#4912) 2021-10-25 18:04:24 +11:00
Foam Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Friction Update CloseTo to CloseToPercent (#4708) 2021-09-29 20:07:01 +10:00
GameTicking Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
GameWindow Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Ghost Deprecate a bunch of IActionBlocker (#4852) 2021-10-21 13:03:14 +11:00
Gravity Remove some more unused fields 2021-10-13 17:38:20 +11:00
HUD Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
HandLabeler Adds hand labelers (#4903) 2021-10-16 13:34:05 -07:00
Hands Remove some functions from HandsComponent (#4937) 2021-10-25 18:06:12 +11:00
Input Add Alt-click functionality (#4497) 2021-08-21 10:20:18 -07:00
Instruments Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Interaction Remove some functions from HandsComponent (#4937) 2021-10-25 18:06:12 +11:00
Inventory Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
IoC Move some files out of Content.Shared root because I forgot (#4182) 2021-06-13 22:52:40 +10:00
Item ECS verbs and update context menu (#4594) 2021-10-04 20:29:03 -07:00
Jittering Electrocution. (#4958) 2021-10-25 16:21:56 +02:00
Kitchen Fix #4070, Visualizer Edition (#4730) 2021-10-02 16:43:47 -07:00
Lathe Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Light ECS verbs and update context menu (#4594) 2021-10-04 20:29:03 -07:00
Localizations Admin shuttle call button (#4859) 2021-10-13 10:15:28 -07:00
MachineLinking machine linking refactor to ecs (#4323) 2021-08-27 17:46:02 +02:00
Maps Fix construction to some extent on rotated grids (#5024) 2021-10-25 16:14:21 +02:00
Markers Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Materials Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Maths Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
MedicalScanner ECS verbs and update context menu (#4594) 2021-10-04 20:29:03 -07:00
Mining Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
MobState Prevent emoting while dead 2021-10-24 17:16:47 +11:00
Module Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Morgue Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Movement Update content for physics query namespace change (#4701) 2021-10-10 14:18:19 +11:00
NodeContainer Pow3r: stage 1 (#4208) 2021-07-04 18:11:52 +02:00
Nutrition Status effect refactor (#4868) 2021-10-15 23:45:04 +02:00
Objectives Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
PDA Moving PDA to ECS (#4538) 2021-10-03 15:05:52 +11:00
Paper Paper Visualizer (#4811) 2021-10-09 15:48:53 +02:00
Physics Improve hands & pulling (#4389) 2021-07-31 03:14:00 +02:00
Placeable PlaceableSurfaceSystem uses resolves. 2021-10-06 11:40:05 +02:00
Pointing/Components Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Popups Remove obsolete "GetFilterFromEntity" method from PopupSystem. 2021-10-03 16:19:07 +02:00
Power Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
PowerCell Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Preferences Restrict character names to alphanumerics via cvar (#4947) 2021-10-21 12:52:26 +02:00
Projectiles Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Prototypes Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Pulling Remove some more unused fields 2021-10-13 17:38:20 +11:00
Radiation Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Random/Helpers Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Recycling Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Research Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Roles Various improvements to job greetings. (#4777) 2021-10-06 22:51:11 +11:00
Rotatable ECS verbs and update context menu (#4594) 2021-10-04 20:29:03 -07:00
Rotation Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Rounding Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
SMES Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Sandbox Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Security Add security barriers (#4458) 2021-08-23 02:32:24 +10:00
Shuttles Enable shuttle rotation (#4798) 2021-10-09 01:55:10 +02:00
Singularity Singularity fixes (#4383) 2021-08-23 00:54:03 +10:00
Slippery Slipping tweaks + remove EffectBlocker (#4955) 2021-10-25 17:43:49 +11:00
Smoking Refactors smoking to ECS, smoking actually makes you inhale reagents. (#4678) 2021-09-26 15:19:00 +02:00
Solar Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Sound SoundSpecifier read as ValueDataNode can ONLY deserialize ResourcePath 2021-10-07 13:22:01 +02:00
Spawning Update content for physics query namespace change (#4701) 2021-10-10 14:18:19 +11:00
Speech Deprecate a bunch of IActionBlocker (#4852) 2021-10-21 13:03:14 +11:00
Stacks Add linter support to StackPrototype, fix linter errors. 2021-09-27 13:08:18 +02:00
Standing Slipping tweaks + remove EffectBlocker (#4955) 2021-10-25 17:43:49 +11:00
StationEvents Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
StatusEffect Add-d-ds s-s-stut-ttering t-to the g-gam-me (#4901) 2021-10-17 01:23:31 +02:00
Storage Cigarette ecs (#4495) 2021-09-04 10:42:32 -07:00
Strip/Components Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Stunnable Status effect refactor (#4868) 2021-10-15 23:45:04 +02:00
SubFloor Turn off collision for all subfloor objects (#4813) 2021-10-10 13:17:07 +11:00
Suspicion Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Tabletop Status effect refactor (#4868) 2021-10-15 23:45:04 +02:00
Tag Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Targeting Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Temperature Refactor Flammable to be ECS. (#4671) 2021-09-22 11:05:33 +02:00
Throwing Fix ThrownItemComponent's Thrower not being synced with the client. 2021-10-12 21:58:11 +02:00
Timing Remove some functions from HandsComponent (#4937) 2021-10-25 18:06:12 +11:00
Toilet Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Tools Makes tools and welders ECS, add ToolQualityPrototype. (#4741) 2021-10-07 13:01:27 +02:00
Traitor/Uplink Telecrystals (and a bit more ECS) (#4775) 2021-10-08 12:26:42 +02:00
Transform Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Trigger Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Vapor Solution refactor (#4407) 2021-09-06 23:49:44 +10:00
VendingMachines Removes vending inventory desc and adds missing vending machine descriptions (#4493) 2021-08-20 05:23:02 +00:00
Verbs Adds stack splitting (#4981) 2021-10-25 16:36:04 +02:00
Voting Vote type delay, code comments. 2021-07-21 19:03:10 +02:00
Wall Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Weapons Electrocution. (#4958) 2021-10-25 16:21:56 +02:00
Whitelist Fix EntityWhitelist not taking into account ignored components 2021-07-24 15:46:44 -07:00
Window Respriting the codebase (#4820) 2021-10-15 11:58:40 +02:00
Wires Changes most uses of Color.Green to Color.LimeGreen for better visuals (#4666) 2021-09-20 21:50:02 -07:00
Content.Shared.csproj Remove OutputPath overrides for shared. 2021-08-30 01:38:29 +02:00
Content.Shared.csproj.DotSettings Moved interaction interfaces from Server to Shared. 2020-07-18 22:51:56 -07:00
app.config Updates submodule (#56) 2018-04-12 23:56:43 +02:00