Grid Placement
Development ⚠️ GridPlacement 6.0 (GECS) is in active development. This is the GDScript ECS architecture.

IndicatorSystem

AUTO-GENERATED (GDScript) API entry

AUTO-GENERATED FILE — DO NOT EDIT MANUALLY

Source: systems/interaction/indicator_system.gd

Version: 6.0

class_name: IndicatorSystem extends: System

Signals

(none)

Exports

  • enable_visual_indicators: bool = true
    • Animation settings
    • Performance settings
    • Private state
  • max_visible_indicators: int = 100
    • Animation settings
    • Performance settings
    • Private state
  • cull_distance: float = 1000.0
    • Animation settings
    • Performance settings
    • Private state
  • global_animation_speed: float = 1.0
    • Performance settings
    • Private state
  • enable_global_pulse: bool = false
    • Performance settings
    • Private state
  • global_pulse_frequency: float = 1.0
    • Performance settings
    • Private state
  • update_frequency: float = 60.0 # Hz
    • Private state
  • batch_size: int = 50
    • Private state

Methods

  • query -> QueryBuilder
  • process(entities: Array, components: Array, delta: float) -> void
    • Event-driven system - only process animations for visible indicators
  • setup -> void
    • Initialize custom renderers
  • cleanup -> void
    • Disconnect from event buses
  • _connect_to_events -> void
  • _disconnect_from_events -> void
  • _on_placement_success(event: PlacementSuccessEvent) -> void
    • Show success indicator at placement position
  • _on_placement_failure(event: PlacementFailureEvent) -> void
    • Show failure indicator
  • _on_manipulation_completed(event: ManipulationEvent) -> void
    • Update indicators after manipulation
  • _on_manipulation_started(event: ManipulationEvent) -> void
    • Show manipulation start indicator
  • _on_target_changed(event: TargetChangedEvent) -> void
    • Update hover/position indicators
  • _on_indicator_update(event: IndicatorUpdateEvent) -> void
    • Handle specific indicator update requests
  • _update_animations_only(entities: Array, indicator_components: Array, delta: float) -> void
  • _create_placement_indicator(entity: Entity, world_pos: Vector2, grid_pos: Vector2i, indicator_type: IndicatorComponent) -> void
    • Emit indicator update event
  • _create_manipulation_indicator(entity: Entity, position: Vector2i, mode: int) -> void
  • _update_indicators_for_entity(entity: Entity) -> void
  • _update_targeting_indicators(grid_pos: Vector2i, world_pos: Vector2) -> void
    • Update hover indicators at target position
  • _handle_indicator_update(event: IndicatorUpdateEvent) -> void
  • _show_indicator(indicator_entity: Entity) -> void
  • _hide_indicator(indicator_entity: Entity) -> void
  • _update_indicator_position(indicator_entity: Entity, world_pos: Vector2, grid_pos: Vector2i) -> void
  • _update_indicator_animation_state(indicator_entity: Entity) -> void
  • _update_indicator_type(indicator_entity: Entity, new_type: int) -> void
  • _process_indicators_batched(entities: Array, indicator_components: Array, delta: float) -> void
  • _process_indicator(entity: Entity, indicator: IndicatorComponent, delta: float) -> void
  • _update_indicator_animation(indicator: IndicatorComponent, delta: float) -> void
  • _update_indicator_visibility(indicator: IndicatorComponent) -> void
  • _apply_visual_effects(indicator: IndicatorComponent) -> void
    • This would integrate with rendering systems
  • _setup_renderers -> void
    • Create renderers for different indicator types
  • _create_placement_renderer -> Callable
  • _create_invalid_placement_renderer -> Callable
  • _create_selected_renderer -> Callable
  • _create_hover_renderer -> Callable
  • _create_collision_renderer -> Callable
  • _create_range_renderer -> Callable
  • _create_path_renderer -> Callable
  • _create_area_renderer -> Callable
  • _render_placement_indicator(entity: Entity, indicator: IndicatorComponent) -> void
  • _render_invalid_placement_indicator(entity: Entity, indicator: IndicatorComponent) -> void
  • _render_selected_indicator(entity: Entity, indicator: IndicatorComponent) -> void
  • _render_hover_indicator(entity: Entity, indicator: IndicatorComponent) -> void
  • _render_collision_indicator(entity: Entity, indicator: IndicatorComponent) -> void
  • _render_range_indicator(entity: Entity, indicator: IndicatorComponent) -> void
  • _render_path_indicator(entity: Entity, indicator: IndicatorComponent) -> void
  • _render_area_indicator(entity: Entity, indicator: IndicatorComponent) -> void
  • _update_visibility_culling(entities: Array, indicator_components: Array) -> void
  • _is_in_view_distance(indicator: IndicatorComponent) -> bool
  • _get_camera -> Camera2D
  • _grid_to_world(grid_pos: Vector2i) -> Vector2
    • This should be implemented based on grid configuration
  • create_indicator(entity: Entity, indicator_type: IndicatorComponent, position: Vector2 = Vector2.ZERO) -> Entity
    • Configure indicator
  • create_indicator_at_grid(entity: Entity, indicator_type: IndicatorComponent, grid_pos: Vector2i) -> Entity
  • remove_indicator(indicator_entity: Entity) -> void
  • update_indicator_type(indicator_entity: Entity, new_type: IndicatorComponent) -> void
  • show_indicator(indicator_entity: Entity) -> void
  • hide_indicator(indicator_entity: Entity) -> void
  • get_visible_indicators -> Array
  • get_indicators_by_type(indicator_type: IndicatorComponent) -> Array
  • clear_all_indicators -> void
  • set_global_animation_speed(speed: float) -> void
  • set_global_pulse(enabled: bool) -> void
  • get_statistics -> Dictionary
  • _world_to_grid(world_pos: Vector2) -> Vector2i
    • This should be implemented based on grid configuration