Table of Contents

Interface IPreviewCalculationService

Namespace
MoonBark.GridPlacement.Core.Interfaces.Placement
Assembly
MoonBark.GridPlacement.Core.dll

Core service interface for calculating placement preview data. This interface contains pure business logic without Godot dependencies.

public interface IPreviewCalculationService

Methods

CalculatePreview(FootprintData, CoreVector2I, IGridOccupancy, bool)

Calculates preview data for a building at the given grid position.

PreviewCalculationResult CalculatePreview(FootprintData footprintData, CoreVector2I gridPosition, IGridOccupancy existingOccupancy, bool validityCheck = true)

Parameters

footprintData FootprintData

The footprint data to create preview for

gridPosition CoreVector2I

The grid position for the preview

existingOccupancy IGridOccupancy

Current grid occupancy data

validityCheck bool

Whether to perform placement validity check

Returns

PreviewCalculationResult

Preview calculation result with visual and validity data

CalculateShapeConfiguration(FootprintData)

Calculates shape configuration for a building footprint.

PreviewShapeData CalculateShapeConfiguration(FootprintData footprint)

Parameters

footprint FootprintData

The footprint data

Returns

PreviewShapeData

Shape configuration data

CalculateVisualAppearance(bool, float, CoreColor, CoreColor)

Calculates the visual appearance of the preview based on validity.

PreviewVisualSettings CalculateVisualAppearance(bool isValid, float baseTransparency, CoreColor validColor, CoreColor invalidColor)

Parameters

isValid bool

Whether the placement is valid

baseTransparency float

Base transparency value

validColor CoreColor

CoreColor for valid placement

invalidColor CoreColor

CoreColor for invalid placement

Returns

PreviewVisualSettings

Visual settings for the preview

CheckGridBounds(FootprintData, CoreVector2I, CoreVector2I)

Checks if a building fits within grid bounds at the given position.

bool CheckGridBounds(FootprintData footprintData, CoreVector2I gridPosition, CoreVector2I gridSize)

Parameters

footprintData FootprintData

The footprint data to check

gridPosition CoreVector2I

The grid position

gridSize CoreVector2I

Size of the grid

Returns

bool

True if the building fits within bounds

UpdatePreviewPosition(PreviewCalculationResult, CoreVector2I, IGridOccupancy)

Updates preview data when the grid position changes.

PreviewCalculationResult UpdatePreviewPosition(PreviewCalculationResult previousResult, CoreVector2I newGridPosition, IGridOccupancy existingOccupancy)

Parameters

previousResult PreviewCalculationResult

Previous preview calculation result

newGridPosition CoreVector2I

New grid position

existingOccupancy IGridOccupancy

Current grid occupancy data

Returns

PreviewCalculationResult

Updated preview calculation result