Table of Contents

Class PlaceableEntry

Namespace
MoonBark.GridPlacement.Core.Catalog
Assembly
MoonBark.GridPlacement.Core.dll

Represents a single placeable item exposed through IPlaceableCatalog and PlaceableSequence. This is a pure C# data type with no engine dependencies.

public record PlaceableEntry : IEquatable<PlaceableEntry>
Inheritance
PlaceableEntry
Implements
Inherited Members

Constructors

PlaceableEntry(string, string, string)

Represents a single placeable item exposed through IPlaceableCatalog and PlaceableSequence. This is a pure C# data type with no engine dependencies.

public PlaceableEntry(string Id, string Category, string DisplayName)

Parameters

Id string

Stable unique identifier for this placeable.

Category string

Category used for filtering (for example, "building", "crop", "tile").

DisplayName string

Human-readable name shown in UI and tooling.

Properties

Category

Category used for filtering (for example, "building", "crop", "tile").

public string Category { get; init; }

Property Value

string

Description

Optional description for tooltips and info labels.

public string? Description { get; init; }

Property Value

string

DisplayName

Human-readable name shown in UI and tooling.

public string DisplayName { get; init; }

Property Value

string

IconPath

Optional icon path or resource identifier for UI rendering.

public string? IconPath { get; init; }

Property Value

string

Id

Stable unique identifier for this placeable.

public string Id { get; init; }

Property Value

string

PlacementRuleIds

IDs of IPlacementRule instances to apply when validating placement of this item. Rules are resolved at runtime from the active rule registry.

public string[] PlacementRuleIds { get; init; }

Property Value

string[]

ScenePath

Optional scene path (res://...) for the visual representation. Used by the Godot layer to instantiate the placeable at placement time.

public string? ScenePath { get; init; }

Property Value

string

SkipBasePlacementRules

When true, this placeable bypasses all base placement rules (collision, terrain, resource, zone). Custom rules listed in PlacementRuleIds are still evaluated. Defaults to false.

public bool SkipBasePlacementRules { get; init; }

Property Value

bool