GBDiagnostics

Safe wrapper for getting tile...

sort Weight: 10

Safe wrapper for getting tile position from global position. Handles both TileMapLayer and test objects with duck-typed interface. [param global_position] The world position to convert. [param map] The map object (TileMapLayer or duck-typed equivalent). [return] The tile coordinate as Vector2i, or Vector2i.ZERO if conversion fails.

Version: v5.0.0

STABLE

Inherits: RefCounted
Source: gb_diagnostics.gd
Parsing: AST-based for maximum accuracy with symbol typing


Methods

_is_verbose

Signature: static _is_verbose() -> bool

[return] true if GB_VERBOSE_TESTS is set to “1”, “true”, or “TRUE”.

Returns: bool

Static: true


format_debug

Signature: static format_debug(message: String, suite: String = "", file_path: String = "") -> String

[return] Formatted string, enhanced if verbose mode is on.

Returns: String

Static: true

Parameters:

  • message: String
  • suite: String (optional, default: "")
  • file_path: String (optional, default: "")

format_indicator

Signature: static format_indicator(indicator: Object) -> String

[return] Formatted string like “name@position (extra_info)” or “” if null.

Returns: String

Static: true

Parameters:

  • indicator: Object

format_tile_list

Signature: static format_tile_list(tile_list: Array) -> String

@return String like “[tile1, tile2, …]” or “[]” if null.

Returns: String

Static: true

Parameters:

  • tile_list: Array

format_indicator_list

Signature: static format_indicator_list(prefix: String, indicators: Array, _cls_name: String = "", _file_path: String = "") -> String

[return] Multi-line string with prefix and indented indicator details.

Returns: String

Static: true

Parameters:

  • prefix: String
  • indicators: Array
  • _cls_name: String (optional, default: "")
  • _file_path: String (optional, default: "")

format_stack_summary

Signature: static format_stack_summary(stack: Array, max_entries: int = 6) -> String

This is intentionally lightweight and side-effect free so callers can log it.

Returns: String

Static: true

Parameters:

  • stack: Array
  • max_entries: int (optional, default: 6)

format_node_label

Signature: static format_node_label(obj: Object) -> String

[return] Formatted string like “name(class)” or “” etc.

Returns: String

Static: true

Parameters:

  • obj: Object

format_visibility_context

Signature: static format_visibility_context(node: Node, visual: CanvasItem, vp: Viewport, cam: Camera2D) -> String

[param cam] Active Camera2D (optional)

Returns: String

Static: true

Parameters:

  • node: Node
  • visual: CanvasItem
  • vp: Viewport
  • cam: Camera2D

describe_collision_layers

Signature: static describe_collision_layers(obj: Object) -> Array

[return] Array of active collision layer indices (1-32).

Returns: Array

Static: true

Parameters:

  • obj: Object

format_shape_cast_collisions

Signature: static format_shape_cast_collisions(shape_cast: ShapeCast2D) -> String

[return] Formatted string like “colliding count=X -> collider1, collider2, …”.

Returns: String

Static: true

Parameters:

  • shape_cast: ShapeCast2D

format_canvas_item_state

Signature: static format_canvas_item_state(ci: CanvasItem) -> String

[return] String with key properties for diagnosing visibility without relying solely on .visible.

Returns: String

Static: true

Parameters:

  • ci: CanvasItem

camera_world_bounds

Signature: static camera_world_bounds(cam: Camera2D, vp: Viewport) -> Dictionary

[return] Dictionary with keys: has(bool), center(Vector2), world_min(Vector2), world_max(Vector2), zoom(Vector2)

Returns: Dictionary

Static: true

Parameters:

  • cam: Camera2D
  • vp: Viewport

is_inside_camera_bounds

Signature: static is_inside_camera_bounds(bounds: Dictionary, pos: Vector2) -> bool

[return] true if inside or bounds invalid (fail open for safety)

Returns: bool

Static: true

Parameters:

  • bounds: Dictionary
  • pos: Vector2

is_offscreen

Signature: static is_offscreen(bounds: Dictionary, pos: Vector2) -> bool

Convenience negative predicate for offscreen detection

Returns: bool

Static: true

Parameters:

  • bounds: Dictionary
  • pos: Vector2

format_screen_state

Signature: static format_screen_state(cam: Camera2D, vp: Viewport, positioner_pos: Vector2, has_mouse: bool, mouse_world: Vector2, map: Object) -> String

[return] Formatted string matching prior screen_state log output

Returns: String

Static: true

Parameters:

  • cam: Camera2D
  • vp: Viewport
  • positioner_pos: Vector2
  • has_mouse: bool
  • mouse_world: Vector2
  • map: Object

_safe_get_tile_from_global_position

Signature: static _safe_get_tile_from_global_position(global_position: Vector2, map: Object) -> Vector2i

[return] The tile coordinate as Vector2i, or Vector2i.ZERO if conversion fails.

Returns: Vector2i

Static: true

Parameters:

  • global_position: Vector2
  • map: Object