IPlaceable

AUTO-GENERATED FILE – DO NOT EDIT MANUALLY

This page documents the supported public API surface only. Private, internal, benchmark, test, and implementation-detail types are intentionally omitted.

Declaration

1
public interface IPlaceable

Summary

Common interface for all placeable implementations.

Provides a contract that both engine-agnostic (POCS) and engine-specific implementations must follow, enabling interchangeability while maintaining clean separation between core logic and engine-specific functionality.

Implementation pattern: - Core.Placeable: Pure C# implementation for UI and logic - Godot.GodotPlaceableWrapper: Wraps core + adds Godot-specific methods - Future engines can add their own wrappers

Metadata

Namespace: GridPlacement.Core.Interfaces

Source File: cs/Core/Interfaces/IPlaceable.cs

Assembly: GridPlacement.Core

Type: interface

Properties

Id

1
public abstract string Id { get; }

Unique identifier for the placeable Used as primary key in data structures and lookup operations


Name

1
public abstract string Name { get; }

Human-readable display name Primary label shown in UI components (menus, tooltips, etc.)


Description

1
public abstract string Description { get; }

Detailed description of the placeable Used for UI tooltips, help text, and contextual information


Size

1
public abstract CoreVector2I Size { get; }

Size dimensions in grid units Used for collision detection, placement validation, and UI layout


Category

1
public abstract string Category { get; }

Category identifier for grouping and filtering String-based to allow game-specific categories and runtime customization


CanRotate

1
public abstract bool CanRotate { get; }

Whether this placeable can be rotated during placement Affects UI controls and placement validation


CanMirror

1
public abstract bool CanMirror { get; }

Whether this placeable can be mirrored/flipped during placement Affects UI controls and available placement options


ResourceCost

1
public abstract Dictionary<string, int> ResourceCost { get; }

Resource cost required to place this object Used by UI for cost display and placement validation


Properties

1
public abstract Dictionary<string, object> Properties { get; }

Custom properties for extensibility Allows engine-specific data, mod support, and custom game logic


Variants

1
public abstract IEnumerable<PlaceableVariant> Variants { get; }

Visual variants available for this placeable Multiple visual representations while sharing core gameplay logic


IsValid

1
public abstract bool IsValid { get; }

Whether this placeable is currently valid/available Used by UI to enable/disable interactions and placement


FilePath

1
public abstract string FilePath { get; }

File path to the scene or resource file this placeable represents Engine-agnostic path (e.g., “buildings/house.tscn”) Used by engine-specific layers for scene instantiation