space-wizards / space-station-14

A multiplayer game about paranoia and chaos on a space station. Remake of the cult-classic Space Station 13.
https://spacestation14.io
MIT License
2.71k stars 3.42k forks source link

High-priority systems to ECS #5438

Closed mirrorcult closed 1 year ago

mirrorcult commented 2 years ago

Description

These are some systems that should be prioritized heavily for conversion to ECS/refactoring, since they interface with lots of other things:

There are probably more that I can't think of but those are big (actions alone is blocking a lot of stuff from potentially being done)

Ygg01 commented 2 years ago

What about hands and containers. Aren't those last few bastions of EC code in content.

ElectroJr commented 2 years ago

Hands definitely need to be ECS-ed.

bastions of EC code in content.

Containers are currently in engine. Even if you move the logic in ContainerManagerComponent/ContainerHelpers into a system, for the most part I don't think it would significantly impact how systems use containers, so probably not as high priority as alerts, actions & hands?

By "not significantly impact how systems use containers" I mean the general structure of: Ensure container on init, then subscribe to ContainerModifiedMessage events to be notified of when an entity was added or removed.

Ygg01 commented 2 years ago

s/Container/Inventory/ or whatever still uses inheritance to share functionality.

mirrorcult commented 2 years ago

inventory and hands, yes. also entitystorage

Ygg01 commented 2 years ago

@ElectroJr are hands partially ECSed? I saw #5634

ElectroJr commented 2 years ago

Well once/if its merged they will be 20% more ECS. There's still a lot of work to do, and hands code is still pretty scuffed. But hopefully that PR will at least reduce the workload for a future refactor.

In reality, that PR started because I wanted to change hands in order to get some basic interactions predicted. I just wanna pick up items w/o the awkward delay. In the process, I just ended up moving quite a few functions to the shared hands system & removing some component messages.

Acruid commented 2 years ago

Another high priority is to migrate everything that still uses Component Messages, and then Interface Events, in that order.

DogZeroX commented 2 years ago

Oldchat.

Macoron commented 2 years ago

I'm starting ECSing EntityStorage. Wish me luck.

vulppine commented 2 years ago

wires is done via #7699

Macoron commented 2 years ago

Sadly EntityStorage slain me. I've done like 20% and stuck with IRL issues. No idea when I'll have time to continue it, so if someone want to try it...

mirrorcult commented 2 years ago

another one down #9291

deltanedas commented 1 year ago

@DrSmugleaf i was refactoring some objective condition stuff and got annoyed now i want to refactor it to be ecs should i:

currently i am focusing on conditions

nvm just going all the way now :trollface:

mirrorcult commented 1 year ago

we did it reddit

VasilisThePikachu commented 1 year ago

image

DogZeroX commented 1 year ago

High-priority systems to FLECS now