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
2 changes: 1 addition & 1 deletion ProductivityPlugin.uplugin
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"VersionName" : "0.1",
"CreatedBy" : "Michael Allar",
"CreatedByURL" : "http://michaelallar.com",
"EngineVersion" : "4.6.1",
"EngineVersion" : "4.16.0",
"Description" : "Some tools that don't come with UE4",
"Category" : "Tools",
"EnabledByDefault" : true,
Expand Down
6 changes: 5 additions & 1 deletion Source/ProductivityPlugin/Classes/InstancedMeshWrapper.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
#pragma once

#include "ProductivityPluginModule.h"
#include "GameFramework/Actor.h"
#include "Runtime/Engine/Classes/Components/InstancedStaticMeshComponent.h"
#include "InstancedMeshWrapper.generated.h"

/**
Expand All @@ -9,10 +11,12 @@
UCLASS()
class PRODUCTIVITYPLUGIN_API AInstancedMeshWrapper : public AActor
{
GENERATED_UCLASS_BODY()
GENERATED_BODY()

public:

AInstancedMeshWrapper();

UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Meshes")
UInstancedStaticMeshComponent* InstancedMeshes;
};
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,12 @@
UCLASS(config = EditorUserSettings)
class PRODUCTIVITYPLUGIN_API UProductivityPluginEditorSettings : public UObject
{
GENERATED_UCLASS_BODY()
GENERATED_BODY()

public:

UProductivityPluginEditorSettings();

UPROPERTY(config, EditAnywhere, Category = ProductivityOptions)
bool GroupStaticToInstancedResults;

Expand Down
27 changes: 25 additions & 2 deletions Source/ProductivityPlugin/Classes/ProductivityPluginModule.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,11 @@

#pragma once

#include "CoreMinimal.h"
#include "ModuleManager.h"
#include "Engine.h"
#include "Engine/Engine.h"
#include "Runtime/Networking/Public/Interfaces/IPv4/IPv4Endpoint.h"
#include "Runtime/Engine/Public/Tickable.h"
#include "ProductivityTypes.h"

class FProductivityTickObject : FTickableGameObject
Expand Down Expand Up @@ -84,4 +87,24 @@ class FProductivityPluginModule : public IModuleInterface
TQueue<class FSocket*, EQueueMode::Mpsc> PendingClients;
TArray<class FSocket*> Clients;
#endif
};
};



// You should place include statements to your module's private header files here. You only need to
// add includes for headers that are used in most of your module's source files though.

DECLARE_LOG_CATEGORY_EXTERN(LogProductivityPlugin, VeryVerbose, All);

/* Private constants
*****************************************************************************/

/**
* Defines the default IP endpoint for the Slate Remote server running in the Editor.
*/
#define PRODUCTIVITY_SERVER_DEFAULT_EDITOR_ENDPOINT FIPv4Endpoint(FIPv4Address(127, 0, 0, 1), 51234)

/**
* Defines the protocol version of the UDP message transport.
*/
#define PRODUCTIVITY_SERVER_PROTOCOL_VERSION 1
4 changes: 3 additions & 1 deletion Source/ProductivityPlugin/Classes/ProductivitySettings.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,12 @@ UCLASS(config=Engine)
class UProductivitySettings
: public UObject
{
GENERATED_UCLASS_BODY()
GENERATED_BODY()

public:

UProductivitySettings();

/** Whether the Productivity Server is enabled. */
UPROPERTY(config, EditAnywhere, Category = Productivity)
bool EnableProductivityServer;
Expand Down
2 changes: 1 addition & 1 deletion Source/ProductivityPlugin/Classes/ProductivityTypes.h
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ struct FAddStaticMeshPayload

struct FProductivityNetworkMessage
{
TEnumAsByte<EProductivityMessageType> Type;
EProductivityMessageType Type;
FAddStaticMeshPayload Payload;

FORCEINLINE friend FArchive& operator<<(FArchive& Ar, FProductivityNetworkMessage& NetworkMessage)
Expand Down
6 changes: 3 additions & 3 deletions Source/ProductivityPlugin/Private/InstancedMeshWrapper.cpp
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#include "ProductivityPluginModulePCH.h"

#include "InstancedMeshWrapper.h"

AInstancedMeshWrapper::AInstancedMeshWrapper(const class FObjectInitializer& PCIP) : Super(PCIP)
AInstancedMeshWrapper::AInstancedMeshWrapper()
{
InstancedMeshes = PCIP.CreateDefaultSubobject<UInstancedStaticMeshComponent>(this, TEXT("InstancedMeshes_0"));
InstancedMeshes = CreateDefaultSubobject<UInstancedStaticMeshComponent>(TEXT("InstancedMeshes_0"));
}
9 changes: 4 additions & 5 deletions Source/ProductivityPlugin/Private/ProductivityClasses.cpp
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved.

#include "ProductivityPluginModulePCH.h"
#include "ProductivitySettings.h"


UProductivitySettings::UProductivitySettings(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
, EnableProductivityServer(true)
{ }
UProductivitySettings::UProductivitySettings(): EnableProductivityServer(true)
{
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include "ProductivityPluginModulePCH.h"

#include "ProductivityPluginCommands.h"
#include "ProductivityPluginEditorSettings.h"

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
#include "ProductivityPluginModulePCH.h"

#include "ProductivityPluginEditorSettings.h"

UProductivityPluginEditorSettings::UProductivityPluginEditorSettings(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
UProductivityPluginEditorSettings::UProductivityPluginEditorSettings()
{
GroupStaticToInstancedResults = false;
}
27 changes: 19 additions & 8 deletions Source/ProductivityPlugin/Private/ProductivityPluginModule.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#include "ProductivityPluginModulePCH.h"

#include "ProductivityPluginModule.h"

#if WITH_EDITOR
#include "ISettingsModule.h"
Expand All @@ -13,9 +14,16 @@
#include "ILayers.h"
#include "LevelEditor.h"
#include "ScopedTransaction.h"
#include "Editor/UnrealEd/Public/Editor.h"
#include "Editor/UnrealEd/Classes/Editor/GroupActor.h"
#include "Editor/UnrealEd/Public/LevelEditorViewport.h"
#include "Engine/Selection.h"

#endif

#include "Networking.h"
#include "ProductivityTypes.h"
#include "Engine/StaticMeshActor.h"

static const FName ProductivityPluginTabName("ProductivityPlugin");

Expand Down Expand Up @@ -191,7 +199,7 @@ void FProductivityPluginModule::StaticToInstancedClicked()
for (AStaticMeshActor* MeshActor : SelectedSMAs)
{
FMeshInfo info;
info.StaticMesh = MeshActor->GetStaticMeshComponent()->StaticMesh;
info.StaticMesh = MeshActor->GetStaticMeshComponent()->GetStaticMesh();
MeshActor->GetStaticMeshComponent()->GetUsedMaterials(info.Materials);

int32 idx = 0;
Expand Down Expand Up @@ -242,7 +250,7 @@ void FProductivityPluginModule::StaticToInstancedClicked()
for (AInstancedMeshWrapper* IMW : SelectedIMWs)
{
int32 InstanceCount = IMW->InstancedMeshes->GetInstanceCount();
UStaticMesh* IMWMesh = IMW->InstancedMeshes->StaticMesh;
UStaticMesh* IMWMesh = IMW->InstancedMeshes->GetStaticMesh();
UE_LOG(LogProductivityPlugin, Verbose, TEXT("IMW Mesh: %s"), *IMWMesh->GetFullName());

bool bGroupResultingMeshes = FProductivityPluginCommandCallbacks::OnToggleStaticToInstancedResultGroupedEnabled();
Expand Down Expand Up @@ -309,8 +317,10 @@ void FProductivityPluginModule::StaticToInstancedClicked()
CollectGarbage(GARBAGE_COLLECTION_KEEPFLAGS);
}
}

#endif


#if WITH_EDITOR

void FProductivityPluginModule::AddMenuExtension(FMenuBuilder& builder)
Expand Down Expand Up @@ -379,18 +389,19 @@ bool FProductivityPluginModule::SupportsProductivityServer() const
return false;
}

bool FProductivityPluginModule::HandleSettingsSaved()
#if WITH_EDITOR
bool FProductivityPluginModule::HandleListenerConnectionAccepted(class FSocket * ClientSocket, const FIPv4Endpoint & ClientEndpoint)
{
PendingClients.Enqueue(ClientSocket);
return true;
}
#endif

#if WITH_EDITOR
bool FProductivityPluginModule::HandleListenerConnectionAccepted(class FSocket* ClientSocket, const FIPv4Endpoint& ClientEndpoint)

bool FProductivityPluginModule::HandleSettingsSaved()
{
PendingClients.Enqueue(ClientSocket);
return true;
}
#endif

void FProductivityPluginModule::Tick(float DeltaTime)
{
Expand Down
33 changes: 0 additions & 33 deletions Source/ProductivityPlugin/Private/ProductivityPluginModulePCH.h

This file was deleted.

17 changes: 16 additions & 1 deletion Source/ProductivityPlugin/Private/ProductivityPluginStyle.cpp
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Some copyright should be here...
#include "ProductivityPluginModulePCH.h"

#include "ProductivityPluginStyle.h"
#include "ProductivityPluginModule.h"
#include "SlateGameResources.h"

TSharedPtr< FSlateStyleSet > FProductivityPluginStyle::StyleInstance = NULL;
Expand Down Expand Up @@ -41,8 +41,23 @@ const FVector2D Icon40x40(40.0f, 40.0f);
TSharedRef< FSlateStyleSet > FProductivityPluginStyle::Create()
{
TSharedRef< FSlateStyleSet > Style = MakeShareable(new FSlateStyleSet("ProductivityPluginStyle"));

Style->SetContentRoot(FPaths::EnginePluginsDir() / TEXT("ProductivityPlugin/Resources"));

const FString EnginePluginPath = Style->RootToContentDir(TEXT("StaticToInstanced"), TEXT(".png"));

if (!FPaths::FileExists(EnginePluginPath))
{
Style->SetContentRoot(FPaths::GamePluginsDir() / TEXT("ProductivityPlugin/Resources"));

const FString GamePluginPath = Style->RootToContentDir(TEXT("StaticToInstanced"), TEXT(".png"));

if (!FPaths::FileExists(GamePluginPath))
{
return Style;
}
}

//Style->Set("ButtonIcon", new IMAGE_BRUSH(TEXT("ButtonIcon"), Icon40x40));
Style->Set("ProductivityPlugin.StaticToInstanced", new IMAGE_BRUSH(TEXT("StaticToInstanced"), Icon40x40));
Style->Set("ProductivityPlugin.StaticToInstanced.Small", new IMAGE_BRUSH(TEXT("StaticToInstanced"), Icon20x20));
Expand Down
3 changes: 2 additions & 1 deletion Source/ProductivityPlugin/Private/ProductivityTypes.cpp
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
#include "ProductivityPluginModulePCH.h"

#include "ProductivityTypes.h"
7 changes: 4 additions & 3 deletions Source/ProductivityPlugin/ProductivityPlugin.Build.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,11 @@

public class ProductivityPlugin : ModuleRules
{
public ProductivityPlugin(TargetInfo Target)
public ProductivityPlugin(ReadOnlyTargetRules Target) : base(Target)
{

PublicIncludePaths.AddRange(
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;

PublicIncludePaths.AddRange(
new string[] {
"ProductivityPlugin/Classes"
// ... add public include paths required here ...
Expand Down