CelticCraft/Plugins/VoxelFree/Source/VoxelGraph/Public/VoxelNodes/VoxelSeedNodes.h

72 lines
No EOL
1.8 KiB
C++

// Copyright 2020 Phyronnaz
#pragma once
#include "CoreMinimal.h"
#include "VoxelNodeHelper.h"
#include "VoxelExposedNodes.h"
#include "VoxelNodeHelperMacros.h"
#include "VoxelSeedNodes.generated.h"
UCLASS(Abstract)
class VOXELGRAPH_API UVoxelSeedNode : public UVoxelNodeHelper
{
GENERATED_BODY()
public:
UVoxelSeedNode();
};
// Seed parameter
UCLASS(DisplayName = "Seed", Category = "Seed")
class VOXELGRAPH_API UVoxelNode_Seed : public UVoxelExposedNode
{
GENERATED_BODY()
GENERATED_VOXELNODE_BODY()
public:
UPROPERTY(EditAnywhere, Category = "Voxel")
int32 DefaultValue = 1443;
UPROPERTY()
FName Name_DEPRECATED = "SeedName";
UVoxelNode_Seed();
//~ Begin UVoxelExposedNode Interface
virtual FName GetParameterPropertyName() const override { return GET_OWN_MEMBER_NAME(DefaultValue); }
//~ End UVoxelExposedNode Interface
//~ Begin UObject Interface
virtual void PostLoad() override;
//~ End UObject Interface
};
// Combine seeds by hashing them
UCLASS(DisplayName = "Hash Seeds", Category = "Seed", meta = (Keywords = "combine add seed"))
class VOXELGRAPH_API UVoxelNode_AddSeeds : public UVoxelSeedNode
{
GENERATED_BODY()
GENERATED_VOXELNODE_BODY()
COMPACT_VOXELNODE("HASH")
UVoxelNode_AddSeeds();
};
// Make several new seeds from a single one
UCLASS(DisplayName = "Make Seeds", Category = "Seed", meta = (Keywords = "make combine add seed"))
class VOXELGRAPH_API UVoxelNode_MakeSeeds : public UVoxelSeedNode
{
GENERATED_BODY()
GENERATED_VOXELNODE_BODY()
public:
UPROPERTY(EditAnywhere, Category = "Voxel", meta = (ClampMin = 2, ClampMax = 32, ReconstructNode))
int32 NumOutputs = 5;
UVoxelNode_MakeSeeds();
//~ Begin UVoxelNode Interface
virtual int32 GetOutputPinsCount() const override { return NumOutputs; }
//~ End UVoxelNode Interface
};