From f21ec15560d61fa81c858c515aec2db447f5fa40 Mon Sep 17 00:00:00 2001 From: Michael Bolin Date: Mon, 28 Feb 2022 19:53:52 -0800 Subject: [PATCH] fix: early return for mouse_in_shape --- .../game/core-scripts/esc_item.gd | 36 ++++++++++--------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/addons/escoria-core/game/core-scripts/esc_item.gd b/addons/escoria-core/game/core-scripts/esc_item.gd index ed8dc905..9ff20ec6 100644 --- a/addons/escoria-core/game/core-scripts/esc_item.gd +++ b/addons/escoria-core/game/core-scripts/esc_item.gd @@ -283,22 +283,7 @@ func _unhandled_input(event: InputEvent) -> void: escoria.logger.info("Game state doesn't accept interactions") return var p = get_global_mouse_position() - var mouse_in_shape: bool = false - var colliders = get_world_2d().direct_space_state.intersect_point( - p, - 32, - [], - 2147483647, - true, - true - ) - for _owner in get_shape_owners(): - for _shape_id in range(0, shape_owner_get_shape_count(_owner)): - for _collider in colliders: - if _collider.collider == self and\ - _collider.shape == _shape_id: - mouse_in_shape = true - if mouse_in_shape: + if _is_in_shape(p): if event.doubleclick and event.button_index == BUTTON_LEFT: emit_signal("mouse_double_left_clicked_item", self, event) get_tree().set_input_as_handled() @@ -310,6 +295,25 @@ func _unhandled_input(event: InputEvent) -> void: get_tree().set_input_as_handled() +func _is_in_shape(position: Vector2) -> bool: + var colliders = get_world_2d().direct_space_state.intersect_point( + position, + 32, + [], + 2147483647, + true, + true + ) + for _owner in get_shape_owners(): + for _shape_id in range(0, shape_owner_get_shape_count(_owner)): + for _collider in colliders: + if _collider.collider == self and _collider.shape == _shape_id: + return true + return false + + + + # Return the animation player node func get_animation_player() -> Node: if _animation_player == null: