[1.7] Event for all activated Components (C++)

0

Hi,

Is there an event fired when all Components are activated (after OnActivate()) ? Which will be fired when all Components are created and ready to use ?

As I see GetProvidedServices and GetRequiredServices not work like that.

Or should I create my own system to get be known when all Components will be ready ?

Cheers

asked 6 years ago9 views
6 Answers
0
Accepted Answer

As you named GetRequiredServices I guess you intend to know in a Component if all other required components are just ready to use.

It sound strange that GetRequiredServices doesn't make them Initialize in the right order(maybe order is only preserved for system entity components and normal entity have a simpler implementation?Source code need to be checked).

However a trivial trick is to defer the final initialization appling for the tick bus finalize the initialization during the tick and then disable the tick again.

If you just use tick for your component this trick is far from elegant as you need to branch by a new variable or init a variable you just have to a value that signals you didn't initialized yet.

This also works in lua where you may even tick in a different table where you will then change again the target for the next tick.

answered 6 years ago
0

Hi @REDACTEDUSER

So I am thinking about a new Component Entities.

For the moment as a workaround I delayed all my signals from Logic components to other to give them time to initialize itself.

answered 6 years ago
0

May I ask why you need this info ? Is this per entity or per slice or per level ?

answered 6 years ago
0

Hi @REDACTEDUSER

If that will not work I will try to implement your trivial trict to signal from TickBus to one of my components which will chceck if all my required components are initialized and them execute my logic based on that components.

Ps. Multiplayer sample also have own implementation detecting if required components are initialized in general, not just In Init or Activate...

answered 6 years ago
0

Hi @REDACTEDUSER

answered 6 years ago
0

Hey @jasiuj, just checking in to see it you were able to get your problem solved with everyone's help? Let me know.

answered 6 years ago

Adding new answers, comments, and votes is disabled.