Skip to content

Commit 00d16fa

Browse files
committed
fix: trigger subsystem connect/disconnect
1 parent 16e45dc commit 00d16fa

File tree

3 files changed

+21
-0
lines changed

3 files changed

+21
-0
lines changed

Source/Ecsact/Public/EcsactUnreal/EcsactAsyncRunner.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#include "EcsactUnreal/Ecsact.h"
33
#include <span>
44
#include "EcsactUnreal/EcsactUnrealExecutionOptions.h"
5+
#include "EcsactUnreal/EcsactRunnerSubsystem.h"
56
#include "EcsactUnreal/EcsactUnrealEventsCollector.h"
67
#include "ecsact/runtime/async.h"
78
#include "ecsact/runtime/common.h"
@@ -71,15 +72,29 @@ auto UEcsactAsyncRunner::Disconnect() -> void {
7172
}
7273

7374
auto UEcsactAsyncRunner::TriggerGenericConnectCallbacks() -> void {
75+
UE_LOG(LogTemp, Log, TEXT("TriggerGenericConnectCallbacks()"));
7476
for(auto& cb : GenericConnectCallbacks) {
7577
cb.ExecuteIfBound();
7678
}
79+
80+
for(auto subsystem : GetRunnerSubsystems()) {
81+
if(subsystem) {
82+
subsystem->AsyncConnected();
83+
}
84+
}
7785
}
7886

7987
auto UEcsactAsyncRunner::TriggerGenericDisconnectCallbacks() -> void {
88+
UE_LOG(LogTemp, Log, TEXT("TriggerGenericDisconnectCallbacks()"));
8089
for(auto& cb : GenericDisconnectCallbacks) {
8190
cb.ExecuteIfBound();
8291
}
92+
93+
for(auto subsystem : GetRunnerSubsystems()) {
94+
if(subsystem) {
95+
subsystem->AsyncDisconnected();
96+
}
97+
}
8398
}
8499

85100
auto UEcsactAsyncRunner::OnAsyncErrorRaw(

Source/Ecsact/Public/EcsactUnreal/EcsactRunner.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@ UEcsactRunner::UEcsactRunner() : EventsCollector{} {
2525
EventsCollector.entity_destroyed_callback = ThisClass::OnEntityDestroyedRaw;
2626
}
2727

28+
auto UEcsactRunner::GetRunnerSubsystems()
29+
-> TArray<class UEcsactRunnerSubsystem*> {
30+
return RunnerSubsystems;
31+
}
32+
2833
auto UEcsactRunner::StreamImpl(
2934
ecsact_entity_id Entity,
3035
ecsact_component_id ComponentId,

Source/Ecsact/Public/EcsactUnreal/EcsactRunner.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ class ECSACT_API UEcsactRunner : public UObject, public FTickableGameObject {
6161
class UEcsactUnrealExecutionOptions* ExecutionOptions;
6262

6363
auto GetEventsCollector() -> ecsact_execution_events_collector*;
64+
auto GetRunnerSubsystems() -> TArray<class UEcsactRunnerSubsystem*>;
6465

6566
protected:
6667
virtual auto InitRunnerSubsystems() -> void;

0 commit comments

Comments
 (0)