GBDiagnostics
Safe wrapper for getting tile...
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
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: Stringsuite: 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 “
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: Stringindicators: 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: Arraymax_entries: int(optional, default:6)
format_node_label
Signature: static format_node_label(obj: Object) -> String
[return] Formatted string like “name(class)” or “
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: Nodevisual: CanvasItemvp: Viewportcam: 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: Camera2Dvp: 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: Dictionarypos: Vector2
is_offscreen
Signature: static is_offscreen(bounds: Dictionary, pos: Vector2) -> bool
Convenience negative predicate for offscreen detection
Returns: bool
Static: true
Parameters:
bounds: Dictionarypos: 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: Camera2Dvp: Viewportpositioner_pos: Vector2has_mouse: boolmouse_world: Vector2map: 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: Vector2map: Object