diff --git a/Config/DefaultEngine.ini b/Config/DefaultEngine.ini index 27b071eb..8eb63a31 100644 --- a/Config/DefaultEngine.ini +++ b/Config/DefaultEngine.ini @@ -2,6 +2,9 @@ +ActiveClassRedirects=(OldClassName="/Script/Integration.lxLookAtWidget",NewClassName="/Script/Integration.lxLuaWidget") +[/Script/Engine.Engine] +GameViewportClientClassName=/Script/CommonUI.CommonGameViewportClient + [/Script/EngineSettings.GameMapsSettings] GameDefaultMap=/Game/LpxLevel.LpxLevel GlobalDefaultGameMode=/Game/Luprex/lxGameMode.lxGameMode_C @@ -63,6 +66,7 @@ UIScaleCurve=(EditorCurveData=(Keys=((Time=480.000000,Value=0.444000),(Time=720. +Profiles=(Name="Ragdoll",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="PhysicsBody",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Simulating Skeletal Mesh Component. All other channels will be set to default.") +Profiles=(Name="Vehicle",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="Vehicle",CustomResponses=,HelpMessage="Vehicle object that blocks Vehicle, WorldStatic, and WorldDynamic. All other channels will be set to default.") +Profiles=(Name="UI",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldStatic object that overlaps all actors by default. All new custom channels will use its own default response. ") ++Profiles=(Name="CharacterCapsule",CollisionEnabled=QueryOnly,bCanModify=True,ObjectTypeName="Pawn",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore),(Channel="LookAtDetection",Response=ECR_Ignore)),HelpMessage="For CapsuleComponents in Characters") +DefaultChannelResponses=(Channel=ECC_GameTraceChannel1,DefaultResponse=ECR_Block,bTraceType=True,bStaticObject=False,Name="LookAtDetection") -ProfileRedirects=(OldName="BlockingVolume",NewName="InvisibleWall") -ProfileRedirects=(OldName="InterpActor",NewName="IgnoreOnlyPawn") @@ -84,6 +88,3 @@ UIScaleCurve=(EditorCurveData=(Keys=((Time=480.000000,Value=0.444000),(Time=720. +CollisionChannelRedirects=(OldName="PawnMovement",NewName="Pawn") +CollisionChannelRedirects=(OldName="Clickable",NewName="LookAtDetection") -[/Script/Engine.Engine] -GameViewportClientClassName=/Script/CommonUI.CommonGameViewportClient - diff --git a/Content/Characters/Mannequins/Animations/ABP_Manny.uasset b/Content/Characters/Mannequins/Animations/ABP_Manny.uasset index 68b3a41e..4ef68f56 100644 --- a/Content/Characters/Mannequins/Animations/ABP_Manny.uasset +++ b/Content/Characters/Mannequins/Animations/ABP_Manny.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:85d9d36a8595915fd830563e6a69c0421604f987c76016517016660795e7bd5b -size 339474 +oid sha256:98d9b579c4c057c48d424014106f648617e450d10d91f9ebd02936e0835d27e3 +size 340019 diff --git a/Content/Characters/Mannequins/Meshes/SKM_Quinn.uasset b/Content/Characters/Mannequins/Meshes/SKM_Quinn.uasset index 867b511c..26e776dc 100644 --- a/Content/Characters/Mannequins/Meshes/SKM_Quinn.uasset +++ b/Content/Characters/Mannequins/Meshes/SKM_Quinn.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:58da80058c3d84eeb868b04729e4dde0aa93a4354f5118cb42fd5f842c5608a2 -size 37869394 +oid sha256:2b8d57d26a4e4bb4d9f2647b1600693f7adb26ee5d8a513c37a2938c03c2bb55 +size 37867253 diff --git a/Content/Luprex/lxGameMode.uasset b/Content/Luprex/lxGameMode.uasset index 243772ec..4e24d094 100644 --- a/Content/Luprex/lxGameMode.uasset +++ b/Content/Luprex/lxGameMode.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6f465b15991e5dd80c9b723d0e84d3ccd54943c28a87eac3e42bbf748d9fce42 -size 162688 +oid sha256:1550352278c1bd16eb82cb10deefe225bafb9faa749507206f2e183e419022d9 +size 179710 diff --git a/Content/Tangibles/TAN_Character.uasset b/Content/Tangibles/TAN_Character.uasset index 6aad5fa5..dc95e98d 100644 --- a/Content/Tangibles/TAN_Character.uasset +++ b/Content/Tangibles/TAN_Character.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:53c19d3abc7119c55a8126e6f5a6d34e0e6bf969f460333a9db98108f9b104f6 -size 309058 +oid sha256:7debff341e396e5e0ad0f8509412c7665f71a6d35ef1bd2cda6605c2da508d2d +size 309193 diff --git a/Content/Widgets/WB_Root.uasset b/Content/Widgets/WB_Root.uasset index 14fdcc01..d7018a47 100644 --- a/Content/Widgets/WB_Root.uasset +++ b/Content/Widgets/WB_Root.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8a52aed59201b310f6c3daf4bc87d04414b47954e0ef5b0f64d8420bbea225c9 -size 88813 +oid sha256:b2b135100406df2e087ccaee1905ab904f12a3605c637bb2f55b911d735416a0 +size 88765 diff --git a/Source/Integration/BlueprintErrors.cpp b/Source/Integration/BlueprintErrors.cpp index 8e5b3ddf..82e4814d 100644 --- a/Source/Integration/BlueprintErrors.cpp +++ b/Source/Integration/BlueprintErrors.cpp @@ -1,5 +1,6 @@ #include "BlueprintErrors.h" +#include "Blueprint/BlueprintExceptionInfo.h" #include "LuaCall.h" #include "Internationalization/TextFormatter.h" #include "Kismet/KismetSystemLibrary.h" diff --git a/Source/Integration/LuprexGameModeBase.cpp b/Source/Integration/LuprexGameModeBase.cpp index b4e00b1a..30edf526 100644 --- a/Source/Integration/LuprexGameModeBase.cpp +++ b/Source/Integration/LuprexGameModeBase.cpp @@ -31,18 +31,12 @@ ALuprexGameModeBase::ALuprexGameModeBase() //PrimaryActorTick.bCanEverTick = true; // Probably wrong //PrimaryActorTick.bTickEvenWhenPaused = true; // Probably wrong //PrimaryActorTick.TickGroup = TG_PrePhysics; // Probably wrong - SetActorTickEnabled(true); - SetActorTickInterval(0.0f); ResetToInitialState(); - OnWorldPreActorTickHandle = FWorldDelegates::OnWorldPreActorTick.AddUObject(this, &ALuprexGameModeBase::OnWorldPreActorTick); - OnWorldPostActorTickHandle = FWorldDelegates::OnWorldPostActorTick.AddUObject(this, &ALuprexGameModeBase::OnWorldPostActorTick); } ALuprexGameModeBase::~ALuprexGameModeBase() { ResetToInitialState(); - FWorldDelegates::OnWorldPreActorTick.Remove(OnWorldPreActorTickHandle); - FWorldDelegates::OnWorldPostActorTick.Remove(OnWorldPostActorTickHandle); } // This method runs in the background thread, @@ -74,6 +68,7 @@ uint32 ALuprexGameModeBase::Run() { void ALuprexGameModeBase::ResetToInitialState() { Playing = false; + TickEnabled = true; if (TangibleManager != nullptr) { TangibleManager->ConditionalBeginDestroy(); @@ -85,6 +80,12 @@ void ALuprexGameModeBase::ResetToInitialState() AssetLookup = nullptr; } + // Stop the tick functions. + FWorldDelegates::OnWorldPreActorTick.Remove(OnWorldPreActorTickHandle); + FWorldDelegates::OnWorldPostActorTick.Remove(OnWorldPostActorTickHandle); + OnWorldPreActorTickHandle.Reset(); + OnWorldPostActorTickHandle.Reset(); + // Shut down the thread LuprexUpdateTask.Shutdown(); @@ -256,7 +257,7 @@ void ALuprexGameModeBase::ConsoleSendInput(const FString& fs) void ALuprexGameModeBase::OnWorldPreActorTick(UWorld* InWorld, ELevelTick InLevelTick, float deltaseconds) { - if(Playing && (GetWorld() == InWorld) && (InLevelTick == LEVELTICK_All)) + if(Playing && TickEnabled && (GetWorld() == InWorld) && (InLevelTick == LEVELTICK_All)) { LuprexUpdateTask.Wait(); EngineSeconds += deltaseconds; @@ -269,18 +270,12 @@ void ALuprexGameModeBase::OnWorldPreActorTick(UWorld* InWorld, ELevelTick InLeve void ALuprexGameModeBase::OnWorldPostActorTick(UWorld* InWorld, ELevelTick InLevelTick, float deltaseconds) { - if(Playing && (GetWorld() == InWorld) && (InLevelTick == LEVELTICK_All)) + if(Playing && TickEnabled && (GetWorld() == InWorld) && (InLevelTick == LEVELTICK_All)) { LuprexUpdateTask.Trigger(); } } - -void ALuprexGameModeBase::Tick(float deltaseconds) -{ - Super::Tick(deltaseconds); -} - void ALuprexGameModeBase::BeginPlay() { ResetToInitialState(); @@ -341,6 +336,11 @@ void ALuprexGameModeBase::InitializeGlobalState() LuprexUpdateTask.Startup(this); } + if (Playing) { + OnWorldPreActorTickHandle = FWorldDelegates::OnWorldPreActorTick.AddUObject(this, &ALuprexGameModeBase::OnWorldPreActorTick); + OnWorldPostActorTickHandle = FWorldDelegates::OnWorldPostActorTick.AddUObject(this, &ALuprexGameModeBase::OnWorldPostActorTick); + } + // Initialize the asset lookup table. AssetLookup = NewObject(this); AssetLookup->RebuildIndex(); diff --git a/Source/Integration/LuprexGameModeBase.h b/Source/Integration/LuprexGameModeBase.h index 31638987..7dd7f1ca 100644 --- a/Source/Integration/LuprexGameModeBase.h +++ b/Source/Integration/LuprexGameModeBase.h @@ -48,7 +48,6 @@ public: ALuprexGameModeBase(); ~ALuprexGameModeBase(); virtual void BeginPlay() override; - virtual void Tick(float) override; virtual void EndPlay(const EEndPlayReason::Type EndPlayReason); // Delete all the state created in BeginPlay. That @@ -181,6 +180,9 @@ public: // True if 'BeginPlay' has been successfully completed. bool Playing; + // This is always true unless you use the debugger to set it to false. + bool TickEnabled; + // Current Player ID int64 PlayerId; diff --git a/Source/Integration/TriggeredTask.cpp b/Source/Integration/TriggeredTask.cpp index 2d0c82fd..b1d371e1 100644 --- a/Source/Integration/TriggeredTask.cpp +++ b/Source/Integration/TriggeredTask.cpp @@ -26,8 +26,8 @@ void FTriggeredTask::Startup(FRunnable *client) { FScopeLock lock(&Mutex); if (Thread == nullptr) { Client = client; - CallEvent = FPlatformProcess::GetSynchEventFromPool(true); - ReturnEvent = FPlatformProcess::GetSynchEventFromPool(false); + CallEvent = FPlatformProcess::GetSynchEventFromPool(false); + ReturnEvent = FPlatformProcess::GetSynchEventFromPool(true); ReturnEvent->Trigger(); Thread = FRunnableThread::Create(this, TEXT("Worker Thread")); } diff --git a/UnrealEngine.zip b/UnrealEngine.zip index 879c2133..f32033b9 100644 --- a/UnrealEngine.zip +++ b/UnrealEngine.zip @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:dca0b6a7d73a8ea4e789be8dc336ae60ddc18cce8d31a92e09101b4781fb71a8 -size 622629164 +oid sha256:1f2327f5104d4dad26dac639804d4603194b7ae6f57b5df5c348a65d0c3b64c1 +size 655101165 diff --git a/integration/User/jyelon/Saved/Profiling/ChaosVD_0.utrace b/integration/User/jyelon/Saved/Profiling/ChaosVD_0.utrace new file mode 100644 index 00000000..c461f1d1 Binary files /dev/null and b/integration/User/jyelon/Saved/Profiling/ChaosVD_0.utrace differ