Table of Contents

Namespace MoonBark.GridPlacement.Core.Data.Placement

Classes

CorePlacementRuleData

Core placement rule data without Godot dependencies.

CoreTileData

Pure C# representation of tile custom data properties. Used by Core rules and YAML loaders — no Godot dependencies.

FootprintData

Core footprint data without Godot dependencies. Describes the space occupied by a building or object.

IndicatorCalculationResult

Result of indicator calculation containing placement positions and validity data. This is a pure Core DTO that can be used without Godot dependencies.

PlacementData

Core placement data without Godot dependencies. Contains all information needed for placement calculations.

PlacementRequirements

Placement requirements for a building.

PlacementRuleData

Data structure for placement validation rules Pure C# implementation without Godot dependencies

PreviewCalculationResult

Result of preview calculation containing footprint and visual data. This is a pure Core DTO that can be used without Godot dependencies.

PreviewShapeData

Shape configuration data for preview rendering.

ResourceCost

Resource cost data for building placement.

TileDataCheckRuleCore

Pure C# placement rule that validates tile custom data properties.

Evaluates whether a tile's custom data layers match the expected values. For example: verify a tile has growable == true before allowing crop placement.

This is the Core counterpart to MoonBark.GridPlacement.Godot.Placement.PlacementRules.TileDataCheckRuleDefinition (Godot-side). It contains no Godot dependencies and is fully testable in xunit.

Strict equality rules for comparison:

  • 1 != true — int vs bool always fails
  • 1 != 1.0 — int vs float always fails
  • true != false — same type, different value fails

Structs

OccupantData

Implementation of occupant data for grid positions. Refactored to a readonly struct to prevent GC allocations across frequent grid querying loops.

Interfaces

IResourceProvider

Interface for providing resource information.

Enums

FootprintShapeType

Types of footprint shapes.

PlacementRuleType

Types of placement rules.

PreviewShapeType

Types of preview shapes that can be rendered.