Commit Graph

90 Commits

Author SHA1 Message Date
20kdc
f6d44be34f Activatable UI component (#5184)
* Transfer most Instrument UI logic to a new component, ActivatableUIComponent

* Move more ActivatableUIComponent stuff to ECS

* ActivatableUI component ignore on client

* ActivatableUI: Get rid of component interfaces where possible

* Add in adminOnly attribute for activatable UIs

This is so that porting #4926 to this will be easier

* Transition Solar Control Computer to ActivatableUI

* Move communications console to ActivatableUI

* Move cargo console to ActivatableUI

* Move ID card console to ActivatableUI

* ActivatableUI: Make things more amiable to entity tests adding components weirdly

* ActivatableUI: Use handling or lack thereof of events properly

* ActivatableUI: component dependency issue resolution stuffs

* ActivatableUISystem: Fix #5258

* More fixes because master did stuffo

* Check for HandDeselectedEvent again because otherwise active-hand check doesn't work

* Move just a bit more code into the system, introduce a workaround for #5258

* Purge the player status detection stuff

* Oh and some obsolete stuff too
2021-11-23 19:19:08 +01:00
Acruid
fa0ec5cbd9 AppearanceComponent API Changes (#5446) 2021-11-23 18:22:59 +11:00
Clyybber
6ac2446d26 Remove some warnings (#5391)
* Remove unused Dependency fields

* Remove noop null check
2021-11-18 16:46:35 -07:00
20kdc
8c98038692 fixrotations fixes rotations properly again (#5292) 2021-11-17 12:00:58 +11:00
Vera Aguilera Puerto
8b57bafcd1 StackSystem uses EntityUid for Split and Spawn 2021-11-09 15:35:03 +01:00
Vera Aguilera Puerto
e68fd8668d Fix anchorable InteractUsing not cooperating with the rest of event handlers 2021-11-09 15:10:23 +01:00
Vera Aguilera Puerto
48f8dd2284 ActionBlocker CanInteract uses EntityUid exclusively
ActionBlockerSystem fully uses EntityUid now!
2021-11-09 15:05:49 +01:00
Vera Aguilera Puerto
b6337ffe7a Makes many things use OwnerUid instead of Owner.Uid 2021-11-09 15:05:49 +01:00
Vera Aguilera Puerto
5cec5c421c ActSystem and Destruction Threshold Behaviors use EntityUid. 2021-11-09 12:06:00 +01:00
Vera Aguilera Puerto
222541f1a2 Fix AnchorableSystem resolve warnings 2021-11-09 11:51:24 +01:00
Vera Aguilera Puerto
fe6590bbe6 Makes Anchorable ECS. (#5222) 2021-11-09 18:08:30 +11:00
Vera Aguilera Puerto
e6e15b3728 Replace all ITransformComponent by TransformComponent 2021-11-08 12:37:32 +01:00
Kara D
6bb1e58e77 Fix item construction using nearby anchored items (pipes) 2021-11-03 14:33:00 -07: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
fea41c539e Add RaiseEvent action to CGL. Machines raise a MachineDeconstructedEvent.
The latter is very useful for any special machine cleanup that needs to happen when a machine is deconstructed.
The former will be useful for so many things!
2021-11-01 17:29:09 +01:00
Vera Aguilera Puerto
0f744447d0 Remove unused using statements in construction comp 2021-11-01 17:07:30 +01:00
Vera Aguilera Puerto
182a52914a Fix construction pathfinding crash on machines when going the wrong way. 2021-11-01 16:56:33 +01:00
Vera Aguilera Puerto
f12cec3f98 Fix construction DoAfter results not setting current edge index.
Fixes #5061
2021-10-28 11:21:55 +02:00
Vera Aguilera Puerto
f840db0458 Fix bug which allowed you to build machines for free by taking the board out and putting it in again. 2021-10-28 11:07:33 +02:00
Visne
c67160ae19 Disable warnings that would be refactored anyway (#5047) 2021-10-27 18:10:40 +02:00
Vera Aguilera Puerto
d2ffabdfd4 Fix ChangeEntity collection modified exception. 2021-10-27 01:29:10 +02: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
Vera Aguilera Puerto
ed3bf94a3b Electrocution. (#4958)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2021-10-25 16:21:56 +02:00
Vera Aguilera Puerto
6b73b89617 Anchorable checks for ToolComponent in Valid method. 2021-10-07 22:57:35 +02:00
Vera Aguilera Puerto
365c7da4dc Makes tools and welders ECS, add ToolQualityPrototype. (#4741) 2021-10-07 13:01:27 +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
20kdc
2a8486a384 Pullability partial ECS refactor, monkey-gibbing error fix (#4695)
* Migrate lots of pulling logic out of the components and clean it up

* It's buggy, but move more code out of the pullable component

* Pulling system now throws less errors than it did before the refactor

* Finally finish the big parts of refactoring pullability

* Pulling: Handle disconnect properly if the pull joint has been removed by physics shutdown

* Port 2b68449328 to this branch

* Changes as per PR reviews

* Port e801ffac45 (SharedJointSystem) and fix issues encountered during testing

SharedJointSystem.

Also, MinLength and Stiffness appear to have suddenly gained enough meaning that pulling is broken unless they're set.
2021-10-04 17:10:54 +02: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
Pieter-Jan Briers
3ee36350cb More IoC constructor removal 2021-09-01 13:29:52 +02:00
metalgearsloth
4e46cf7d27 Make content use EntityLookupFlags (#4531)
* Use lookup flags

* Woops
2021-08-29 14:23:11 +10:00
ShadowCommander
20a3991227 Fix deconstruction when on a step in the middle of an edge (#4519) 2021-08-25 13:45:33 +02:00
Galactic Chimp
57016d14b4 removed TryGetSound + made some SoundSpecifier datafields required 2021-07-31 19:52:33 +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
Vera Aguilera Puerto
1033d8bbe5 Use EntitySystem dependencies in a bunch of systems. 2021-07-26 13:01:47 +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
Visne
b7dc3c81ae Remove redundant #nullable enable (#4275) 2021-07-16 17:37:09 -07:00
Galactic Chimp
ce3c59e0e6 replacing sound (collection) names with SoundSpecifier - part 1 2021-07-10 17:35:33 +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
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
Vera Aguilera Puerto
f7b89daa74 Move ComputerUIActivatorSystem to Computer namespace. 2021-06-20 11:42:37 +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