Table of Contents

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

mode
targeting_settings
last_mouse_input_status
has_mouse_world

Returns

should_be_visible_for_mode

static func should_be_visible_for_mode(mode: GBEnums.Mode, targeting_settings: GridTargetingSettings) -> bool:

Parameters

mode
targeting_settings

Returns

is_positioner_active

static func is_positioner_active(mode: GBEnums.Mode, targeting_settings: GridTargetingSettings) -> bool:

Parameters

mode
targeting_settings

Returns

is_mouse_follow_allowed

static func is_mouse_follow_allowed(mode: GBEnums.Mode, targeting_settings: GridTargetingSettings, input_ready: bool) -> bool:

Parameters

mode
targeting_settings
input_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_state
targeting_settings
last_mouse_input_status
has_mouse_world

Returns

visibility_on_mouse_event

static func visibility_on_mouse_event(mode: GBEnums.Mode, targeting_settings: GridTargetingSettings, input_allowed: bool):

Parameters

mode
targeting_settings
input_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

mode
targeting_settings
input_ready
last_mouse_input_status
has_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

mode
targeting_settings
current_visible
last_mouse_input_status
has_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

policy
has_cached_mouse_world
mouse_input_enabled
viewport_available

Returns

get_tile_delta_from_key_event

static func get_tile_delta_from_key_event(event: InputEventKey, actions: GBActions) -> Vector2i:

Parameters

event
actions

Returns

get_rotation_direction_from_key_event

static func get_rotation_direction_from_key_event(event: InputEventKey, actions: GBActions) -> int:

Parameters

event
actions

Returns