Commit Graph

27 Commits

Author SHA1 Message Date
wrexbe
bc68ac96dd Cleanup the namespaces (#8132) 2022-05-13 17:59:03 +10:00
mirrorcult
ec4d4688c7 Seal/abstract/virtual everything (#6739) 2022-02-16 18:23:23 +11:00
metalgearsloth
32a1f6ae93 ECS computers (#6353) 2022-02-03 10:20:17 +11:00
metalgearsloth
42102b17c1 ECS construction machines (#6354) 2022-02-03 10:04:46 +11:00
Vera Aguilera Puerto
c8b65be747 Replace IEntityManager resolves in systems for cached EntityManager 2021-12-08 13:00:43 +01:00
Vera Aguilera Puerto
5cd42c9ad6 Inline UID 2021-12-03 15:53:09 +01:00
Vera Aguilera Puerto
70bbd8c502 Inline Prototype 2021-12-03 11:18:05 +01:00
Vera Aguilera Puerto
5a5006e4cf ConstructionGL2 Part 2: Better guided steps and recipes. (#5103) 2021-11-02 11:24:32 +01:00
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
9c3a603e7e Use ActionBlockerSystem as a dependency on CGSystem 2021-10-27 01:07:19 +11: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
Vera Aguilera Puerto
3b14c21396 Port all construction conditions to the new examine. 2021-10-01 15:27:42 +02:00
Vera Aguilera Puerto
0767bd3777 Popup ECS Refactor (#4692) 2021-09-26 15:18:45 +02:00
Vera Aguilera Puerto
61d8852799 Update StackSystem to use Resolves. (#4664)
* Update StackSystem to use Resolves.

* Compile
2021-09-20 13:39:05 +02:00
Mads Glahder
08cfc3bb46 Fix construction from inside containers (#4595)
* Disallow construction of construction ghosts from inside a container

* Move IsInContainer check to before doing container ensuring

* Move IsInContainer check to HandleStartStructureConstruction to allow building items but not construct structures when inside a cozy locker

* Update Resources/Locale/en-US/construction/construction-system.ftl

Co-authored-by: Vera Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
2021-09-18 10:38:42 +02: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
metalgearsloth
4e46cf7d27 Make content use EntityLookupFlags (#4531)
* Use lookup flags

* Woops
2021-08-29 14:23:11 +10:00
Vera Aguilera Puerto
1033d8bbe5 Use EntitySystem dependencies in a bunch of systems. 2021-07-26 13:01:47 +02:00
Visne
b7dc3c81ae Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Vera Aguilera Puerto
ef958185fb DoAfter can now raise events so you don't need to use async with it (#4253) 2021-07-04 21:32:24 +10:00
Vera Aguilera Puerto
4ce05a9b75 Work around transform anchoring in construction. 2021-06-29 21:23:00 +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
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
DrSmugleaf
f878f353e4 Move some files out of Content.Shared root because I forgot (#4182) 2021-06-13 22:52:40 +10:00
Vera Aguilera Puerto
0093a961bc Refactor stacks to not use method events (#4177) 2021-06-12 11:24:34 +02:00
DrSmugleaf
ff1a2d97ea Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00