fish-station/Resources/Prototypes
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
..
AccessLevels Saltern mapping updates (#3669) 2021-03-16 16:46:31 +11:00
Actions When the 2021-10-01 12:31:10 +02:00
Alerts Make Saltern driveable (#4257) 2021-07-21 21:15:12 +10:00
Atmospherics Temporarily comments out water vapor gas reaction. 2021-10-14 18:30:07 +02:00
Body Add Overdosing Behaviour to Meth (#4949) 2021-10-20 13:30:55 -07:00
Catalog Add insulated gloves to saltern and a few closets/vending machines. 2021-10-25 16:56:54 +02:00
Damage Added simple grilles with construction, deconstruction and destruction. (#4801) 2021-10-09 10:54:56 +02:00
Datasets Converts all cargo IDs to camelCase and deletes unused/outdated cargo Dataset. 2021-06-11 16:38:02 -07:00
Entities Apc and light construction partial fix (#5030) 2021-10-26 16:15:02 +02:00
EntityLists/Tools Adds some more toollists and debug entities (#3807) 2021-04-10 07:25:12 +00:00
HairStyles SKREEEEEE (#3706) 2021-03-28 17:26:32 +11:00
Hydroponics Massive Food PR (#3436) 2021-05-03 13:17:22 +02:00
NPCs Data-driven NPC behaviors (#3271) 2021-02-19 22:37:17 -08:00
Objectives Traitor (#2566) 2020-12-01 17:05:19 +01:00
Reagents Fix spelling in elements.yml (#4924) 2021-10-17 16:02:04 +02:00
Recipes ConstructionGL2 Part 1: ECSification, events and steps. (#5017) 2021-10-26 16:38:03 +02:00
Roles Various improvements to job greetings. (#4777) 2021-10-06 22:51:11 +11:00
Shaders Viewport improvements (#3765) 2021-04-19 09:52:40 +02:00
SoundCollections Adds linting support to SoundCollectionPrototype, fix linter errors. 2021-10-01 12:40:44 +02:00
Stacks Telecrystals (and a bit more ECS) (#4775) 2021-10-08 12:26:42 +02:00
Tiles Allows placing cables on lattices. (#4984) 2021-10-23 17:32:33 -07:00
ai_factions.yml Data-driven NPC factions (#3249) 2021-02-21 00:27:17 +01:00
bar_signs.yml Adds cyber sylph's 2020-08-23 14:48:20 -07:00
holidays.yml Adds Travis Scott day to list of holidays. (#3236) 2021-02-16 09:41:36 +01:00
hud.yml HUD Themes (#3774) 2021-04-12 00:43:53 +02:00
melee_weapon_animations.yml Re-organizing the prototypes folder (#1384) 2020-07-20 12:26:16 +02:00
status_effects.yml Electrocution. (#4958) 2021-10-25 16:21:56 +02:00
tags.yml Move RCD to ECS (#4742) 2021-10-24 14:34:00 +11:00
tool_qualities.yml Makes tools and welders ECS, add ToolQualityPrototype. (#4741) 2021-10-07 13:01:27 +02:00