Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified Content/Buildables/Hub/Build_STHub.uasset
Binary file not shown.
Binary file modified Content/Buildables/ItemTeleporter/ItemTeleporter_Build.uasset
Binary file not shown.
Binary file removed Content/Widgets/TFIT_ItemTeleporter.uasset
Binary file not shown.
Binary file removed Content/Widgets/TFIT_STHUB.uasset
Binary file not shown.
410 changes: 401 additions & 9 deletions Source/StorageTeleporter/Private/StorageTeleporter.cpp

Large diffs are not rendered by default.

9 changes: 7 additions & 2 deletions Source/StorageTeleporter/Public/StorageTeleporter.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,18 @@
#pragma once

#include "CoreMinimal.h"
#include "Containers/Ticker.h"
#include "Modules/ModuleManager.h"

class FStorageTeleporterModule : public IModuleInterface
{
public:

/** IModuleInterface implementation */
virtual void StartupModule() override;
virtual void ShutdownModule() override;

private:
bool RepairRegistries(float DeltaTime);
void RepairWorld(class UWorld* World);

FTSTicker::FDelegateHandle RegistryRepairTickerHandle;
};
2 changes: 2 additions & 0 deletions Source/StorageTeleporter/StorageTeleporter.Build.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ public StorageTeleporter(ReadOnlyTargetRules Target) : base(Target)
{
"CoreUObject",
"Engine",
"FactoryGame",
"SML",
"Slate",
"SlateCore",
// ... add private dependencies that you statically link with here ...
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#include "Modules/ModuleManager.h"

IMPLEMENT_MODULE(FDefaultModuleImpl, StorageTeleporterEditor)
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
#include "StorageTeleporterEditorRepairLibrary.h"

#include "Engine/Blueprint.h"
#include "Kismet2/BlueprintEditorUtils.h"
#include "Kismet2/KismetEditorUtilities.h"

bool UStorageTeleporterEditorRepairLibrary::SetBlueprintVariableReplicated(
UBlueprint* Blueprint,
FName VariableName,
FString& OutError)
{
OutError.Reset();

if (!Blueprint)
{
OutError = TEXT("Blueprint is null.");
return false;
}

uint64* PropertyFlags = FBlueprintEditorUtils::GetBlueprintVariablePropertyFlags(Blueprint, VariableName);
if (!PropertyFlags)
{
OutError = FString::Printf(TEXT("Variable '%s' was not found in '%s'."), *VariableName.ToString(), *Blueprint->GetPathName());
return false;
}

*PropertyFlags |= CPF_Net;
FBlueprintEditorUtils::MarkBlueprintAsStructurallyModified(Blueprint);
FKismetEditorUtilities::CompileBlueprint(Blueprint);

if (Blueprint->Status == BS_Error)
{
OutError = FString::Printf(TEXT("Blueprint '%s' failed to compile."), *Blueprint->GetPathName());
return false;
}

return true;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#pragma once

#include "CoreMinimal.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#include "StorageTeleporterEditorRepairLibrary.generated.h"

class UBlueprint;

UCLASS()
class STORAGETELEPORTEREDITOR_API UStorageTeleporterEditorRepairLibrary : public UBlueprintFunctionLibrary
{
GENERATED_BODY()

public:
UFUNCTION(BlueprintCallable, Category = "Storage Teleporter|Editor Repair")
static bool SetBlueprintVariableReplicated(UBlueprint* Blueprint, FName VariableName, FString& OutError);
};
23 changes: 23 additions & 0 deletions Source/StorageTeleporterEditor/StorageTeleporterEditor.Build.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
using UnrealBuildTool;

public class StorageTeleporterEditor : ModuleRules
{
public StorageTeleporterEditor(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;

PublicDependencyModuleNames.AddRange(new[]
{
"Core",
"CoreUObject",
"Engine"
});

PrivateDependencyModuleNames.AddRange(new[]
{
"BlueprintGraph",
"Kismet",
"UnrealEd"
});
}
}
14 changes: 13 additions & 1 deletion StorageTeleporter.uplugin
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,18 @@
"MarketplaceURL": "",
"SupportURL": "https://discord.gg/ds696q4",
"CanContainContent": true,
"Modules": [
{
"Name": "StorageTeleporter",
"Type": "Runtime",
"LoadingPhase": "PostDefault"
},
{
"Name": "StorageTeleporterEditor",
"Type": "Editor",
"LoadingPhase": "Default"
}
],
"IsBetaVersion": false,
"IsExperimentalVersion": false,
"Installed": false,
Expand All @@ -26,4 +38,4 @@
"AcceptsAnyRemoteVersion": false,
"GameVersion": ">=491125",
"BuiltInInitialFeatureState": "Active"
}
}