Class GridPositionerLogic
- Namespace
- GridPlacement.GDScript
- Assembly
- MoonBark.GridPlacement.GDScript.dll
Static utility class for GridPositioner logic (visibility and decision helpers).\n\nThis class contains static functions for computing visibility decisions and diagnostic traces, making them easily unit testable without requiring a full GridPositioner2D instance.\n\nAll functions are pure and depend only on their input parameters.
class GridPositionerLogic extends RefCounted
GridPositionerLogic
Fields
ProjectionMethod
const ProjectionMethod = GBEnums.ProjectionMethod
RecenterDecision
const RecenterDecision = {
Properties
mode_val
var mode_val: String = GBEnums.mode_to_string(mode_state.current) if mode_state != null else "<none>"
last_allowed
var last_allowed: String = str(last_mouse_input_status != null and last_mouse_input_status.allowed)
mouse_enabled
var mouse_enabled: String = str(targeting_settings.enable_mouse_input) if targeting_settings != null else "<n/a>"
computed_should
var computed_should: String = str(should_be_visible(mode_state.current if mode_state else GBEnums.Mode.OFF, targeting_settings, last_mouse_input_status, has_mouse_world))
res
var res = MouseEventVisibilityResult.new()
res
var res = MouseEventVisibilityResult.new()
res
var res = MouseEventVisibilityResult.new()
is_hide_on_handled_active
var is_hide_on_handled_active = targeting_settings != null and targeting_settings.hide_on_handled and targeting_settings.enable_mouse_input
last_mouse_blocked
var last_mouse_blocked = last_mouse_input_status != null and not last_mouse_input_status.allowed
might_be_hidden_by_handled
var might_be_hidden_by_handled = is_hide_on_handled_active and last_mouse_blocked and not current_visible
target_should
var target_should = should_be_visible(mode, targeting_settings, last_mouse_input_status, has_mouse_world)
move
var move = Vector2.ZERO
Methods
proj_method_to_string
static func proj_method_to_string(p_method: GBEnums.ProjectionMethod) -> String:
Parameters
p_method
Returns
should_be_visible
static func should_be_visible(mode: GBEnums.Mode, targeting_settings: GridTargetingSettings, last_mouse_input_status: GBMouseInputStatus, has_mouse_world: bool) -> bool:
Parameters
modetargeting_settingslast_mouse_input_statushas_mouse_world
Returns
should_be_visible_for_mode
static func should_be_visible_for_mode(mode: GBEnums.Mode, targeting_settings: GridTargetingSettings) -> bool:
Parameters
modetargeting_settings
Returns
is_positioner_active
static func is_positioner_active(mode: GBEnums.Mode, targeting_settings: GridTargetingSettings) -> bool:
Parameters
modetargeting_settings
Returns
is_mouse_follow_allowed
static func is_mouse_follow_allowed(mode: GBEnums.Mode, targeting_settings: GridTargetingSettings, input_ready: bool) -> bool:
Parameters
modetargeting_settingsinput_ready
Returns
visibility_decision_trace
static func visibility_decision_trace(mode_state: ModeState, targeting_settings: GridTargetingSettings, last_mouse_input_status: GBMouseInputStatus, has_mouse_world: bool) -> String:
Parameters
mode_statetargeting_settingslast_mouse_input_statushas_mouse_world
Returns
visibility_on_mouse_event
static func visibility_on_mouse_event(mode: GBEnums.Mode, targeting_settings: GridTargetingSettings, input_allowed: bool):
Parameters
modetargeting_settingsinput_allowed
visibility_on_process_tick
static func visibility_on_process_tick(mode: GBEnums.Mode, targeting_settings: GridTargetingSettings, input_ready: bool, last_mouse_input_status: GBMouseInputStatus, has_mouse_world: bool) -> MouseEventVisibilityResult:
Parameters
modetargeting_settingsinput_readylast_mouse_input_statushas_mouse_world
Returns
visibility_reconcile
static func visibility_reconcile(mode: GBEnums.Mode, targeting_settings: GridTargetingSettings, current_visible: bool, last_mouse_input_status: GBMouseInputStatus, has_mouse_world: bool) -> MouseEventVisibilityResult:
Parameters
modetargeting_settingscurrent_visiblelast_mouse_input_statushas_mouse_world
Returns
recenter_on_enable_decision
static func recenter_on_enable_decision(policy: int, has_cached_mouse_world: bool, mouse_input_enabled: bool, viewport_available: bool) -> int:
Parameters
policyhas_cached_mouse_worldmouse_input_enabledviewport_available
Returns
get_tile_delta_from_key_event
static func get_tile_delta_from_key_event(event: InputEventKey, actions: GBActions) -> Vector2i:
Parameters
eventactions
Returns
get_rotation_direction_from_key_event
static func get_rotation_direction_from_key_event(event: InputEventKey, actions: GBActions) -> int:
Parameters
eventactions