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 -> QueryBuilderprocess(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) -> Entityremove_indicator(indicator_entity: Entity) -> voidupdate_indicator_type(indicator_entity: Entity, new_type: IndicatorComponent) -> voidshow_indicator(indicator_entity: Entity) -> voidhide_indicator(indicator_entity: Entity) -> voidget_visible_indicators -> Arrayget_indicators_by_type(indicator_type: IndicatorComponent) -> Arrayclear_all_indicators -> voidset_global_animation_speed(speed: float) -> voidset_global_pulse(enabled: bool) -> voidget_statistics -> Dictionary_world_to_grid(world_pos: Vector2) -> Vector2i- This should be implemented based on grid configuration