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
IdstringStable unique identifier for this placeable.
CategorystringCategory used for filtering (for example, "building", "crop", "tile").
DisplayNamestringHuman-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
Description
Optional description for tooltips and info labels.
public string? Description { get; init; }
Property Value
DisplayName
Human-readable name shown in UI and tooling.
public string DisplayName { get; init; }
Property Value
IconPath
Optional icon path or resource identifier for UI rendering.
public string? IconPath { get; init; }
Property Value
Id
Stable unique identifier for this placeable.
public string Id { get; init; }
Property Value
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
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; }