#pragma once
#include "TPRRegisterWindowsHooks.h"
#include "TrainPathingRework.h"
#include "CoreMinimal.h"
#include "FGRailroadSignalBlock.h"
#include "Patching/NativeHookManager.h"
#include "FGRailroadVehicle.h"
#include "FGRailroadSubsystem.h"
#include "FGTrain.h"
#include "FGLocomotive.h"
void TPRRegisterWindowsHooks::RegisterWindowsOnlyHooks()
{
UE_LOG(LogTrainPathingRework, Verbose, TEXT("Registering"));
if (!WITH_EDITOR) {
UE_LOG(LogTrainPathingRework, Verbose, TEXT("Inside if"));
SUBSCRIBE_METHOD(FFGRailroadSignalBlock::BlockEntered, [](auto& scope, const FFGRailroadSignalBlock* self, AFGRailroadVehicle* byVehicle)
{
UE_LOG(LogTrainPathingRework, Verbose, TEXT("Block entered"));
//UWorld* world = GEngine->GameViewport->GetWorld();
//auto railroadSubsystem = GEngine->GetEngineSubsystem<AFGRailroadSubsystem>();
auto railroadSubsystem = AFGRailroadSubsystem::Get(GEngine->GameViewport->GetWorld());
TArray<AFGTrain*> trains;
railroadSubsystem->GetAllTrains(trains);
for (AFGTrain* train : trains)
{
train->GetMultipleUnitMaster()->HonkShort();
}
}
);
SUBSCRIBE_METHOD(AFGTrain::TickSelfDriving, [](auto& scope, const AFGTrain* self, float dt) {
UE_LOG(LogTrainPathingRework, Verbose, TEXT("Self driving tick"));
});
}
}
#pragma once
#include "TPRRegisterWindowsHooks.h"
#include "TrainPathingRework.h"
#include "CoreMinimal.h"
#include "FGRailroadSignalBlock.h"
#include "Patching/NativeHookManager.h"
#include "FGRailroadVehicle.h"
#include "FGRailroadSubsystem.h"
#include "FGTrain.h"
#include "FGLocomotive.h"
void TPRRegisterWindowsHooks::RegisterWindowsOnlyHooks()
{
UE_LOG(LogTrainPathingRework, Verbose, TEXT("Registering"));
if (!WITH_EDITOR) {
UE_LOG(LogTrainPathingRework, Verbose, TEXT("Inside if"));
SUBSCRIBE_METHOD(FFGRailroadSignalBlock::BlockEntered, [](auto& scope, const FFGRailroadSignalBlock* self, AFGRailroadVehicle* byVehicle)
{
UE_LOG(LogTrainPathingRework, Verbose, TEXT("Block entered"));
//UWorld* world = GEngine->GameViewport->GetWorld();
//auto railroadSubsystem = GEngine->GetEngineSubsystem<AFGRailroadSubsystem>();
auto railroadSubsystem = AFGRailroadSubsystem::Get(GEngine->GameViewport->GetWorld());
TArray<AFGTrain*> trains;
railroadSubsystem->GetAllTrains(trains);
for (AFGTrain* train : trains)
{
train->GetMultipleUnitMaster()->HonkShort();
}
}
);
SUBSCRIBE_METHOD(AFGTrain::TickSelfDriving, [](auto& scope, const AFGTrain* self, float dt) {
UE_LOG(LogTrainPathingRework, Verbose, TEXT("Self driving tick"));
});
}
}