Interface IIndicatorCalculationService
- Namespace
- MoonBark.GridPlacement.Core.Interfaces.Placement
- Assembly
- MoonBark.GridPlacement.Core.dll
Core service interface for calculating placement indicators. This interface contains pure business logic without Godot dependencies.
public interface IIndicatorCalculationService
Methods
CalculateIndicatorCount(FootprintData, CoreVector2I, IEnumerable<PlacementRuleData>, IGridOccupancy)
Calculates the number of indicators that would be created without creating them. Useful for performance optimization and UI preview.
int CalculateIndicatorCount(FootprintData footprint, CoreVector2I gridPosition, IEnumerable<PlacementRuleData> rules, IGridOccupancy existingOccupancy)
Parameters
footprintFootprintDataThe footprint data
gridPositionCoreVector2IThe grid position
rulesIEnumerable<PlacementRuleData>List of placement rules to apply
existingOccupancyIGridOccupancyCurrent grid occupancy data
Returns
- int
Number of indicators that would be created
CalculateIndicators(FootprintData, CoreVector2I, IEnumerable<PlacementRuleData>, IGridOccupancy)
Calculates indicator positions and validity for a given footprint.
IndicatorCalculationResult CalculateIndicators(FootprintData footprint, CoreVector2I gridPosition, IEnumerable<PlacementRuleData> rules, IGridOccupancy existingOccupancy)
Parameters
footprintFootprintDataThe footprint data to calculate indicators for
gridPositionCoreVector2IThe grid position where the footprint is placed
rulesIEnumerable<PlacementRuleData>List of placement rules to apply
existingOccupancyIGridOccupancyCurrent grid occupancy data
Returns
- IndicatorCalculationResult
Calculation result with indicator positions and validity
GetFootprintPositions(FootprintData, CoreVector2I)
Gets the footprint positions for a given footprint at a grid position.
List<CoreVector2I> GetFootprintPositions(FootprintData footprint, CoreVector2I gridPosition)
Parameters
footprintFootprintDataThe footprint data
gridPositionCoreVector2IThe grid position
Returns
- List<CoreVector2I>
List of grid positions occupied by the footprint
ValidatePlacement(FootprintData, CoreVector2I, IEnumerable<PlacementRuleData>, IGridOccupancy)
Validates that a footprint can be placed at the given position.
bool ValidatePlacement(FootprintData footprint, CoreVector2I gridPosition, IEnumerable<PlacementRuleData> rules, IGridOccupancy existingOccupancy)
Parameters
footprintFootprintDataThe footprint data to validate
gridPositionCoreVector2IThe grid position to validate
rulesIEnumerable<PlacementRuleData>List of placement rules to apply
existingOccupancyIGridOccupancyCurrent grid occupancy data
Returns
- bool
True if placement is valid