update game menu
This commit is contained in:
@@ -495,7 +495,7 @@ func _initial_config():
|
||||
if not input_blocker:
|
||||
input_blocker = Control.new()
|
||||
input_blocker.name = "InputBlocker"
|
||||
input_blocker.mouse_filter = Control.MOUSE_FILTER_STOP
|
||||
input_blocker.mouse_filter = Control.MOUSE_FILTER_IGNORE
|
||||
visuals_container.add_child(input_blocker)
|
||||
visuals_container.move_child(input_blocker, 0)
|
||||
|
||||
@@ -751,10 +751,15 @@ func _prepare_book_content():
|
||||
# ==============================================================================
|
||||
# INPUT
|
||||
# ==============================================================================
|
||||
func _inject_event_to_viewport(viewport: SubViewport, polygon: Polygon2D, event: InputEvent) -> void:
|
||||
func _inject_event_to_viewport(viewport: SubViewport, is_left: bool, event: InputEvent) -> bool:
|
||||
var mouse_pos = get_global_mouse_position()
|
||||
var new_mouse_pos = polygon.to_local(mouse_pos)
|
||||
new_mouse_pos.y += target_page_size.y / 2
|
||||
var poly = static_left if is_left else static_right
|
||||
var new_mouse_pos = poly.to_local(mouse_pos)
|
||||
new_mouse_pos.y += target_page_size.y / 2.0
|
||||
|
||||
var rect = Rect2(0, 0, target_page_size.x, target_page_size.y)
|
||||
if not rect.has_point(new_mouse_pos):
|
||||
return false
|
||||
|
||||
var ev = event.duplicate_deep(Resource.DEEP_DUPLICATE_ALL)
|
||||
ev.position = new_mouse_pos
|
||||
@@ -773,7 +778,8 @@ func _inject_event_to_viewport(viewport: SubViewport, polygon: Polygon2D, event:
|
||||
DisplayServer.cursor_set_shape.call_deferred(cursor_shape)
|
||||
else:
|
||||
DisplayServer.cursor_set_shape.call_deferred(DisplayServer.CursorShape.CURSOR_ARROW)
|
||||
|
||||
|
||||
return true
|
||||
|
||||
## Clears the viewport input state. Call this when interaction stops.
|
||||
func _reset_viewport_input_state() -> void:
|
||||
@@ -785,31 +791,31 @@ func _reset_viewport_input_state() -> void:
|
||||
|
||||
|
||||
func _input(event):
|
||||
pass
|
||||
#if not _active_interactive_is_left and not _active_interactive_is_right:
|
||||
#if not _active_viewports_state.is_empty():
|
||||
#_reset_viewport_input_state()
|
||||
#return
|
||||
#
|
||||
#if event is InputEventMouse or event is InputEventMouseMotion:
|
||||
#if _active_interactive_is_left:
|
||||
#_slot_1.physics_object_picking = true
|
||||
#_inject_event_to_viewport(_slot_1, static_left, event)
|
||||
#elif _active_viewports_state.has(_slot_1):
|
||||
#_slot_1.physics_object_picking = false
|
||||
#_slot_1.notify_mouse_exited()
|
||||
#_active_viewports_state.erase(_slot_1)
|
||||
#
|
||||
#if _active_interactive_is_right:
|
||||
#_slot_2.physics_object_picking = true
|
||||
#_inject_event_to_viewport(_slot_2, static_right, event)
|
||||
#elif _active_viewports_state.has(_slot_2):
|
||||
#_slot_2.physics_object_picking = false
|
||||
#_slot_2.notify_mouse_exited()
|
||||
#_active_viewports_state.erase(_slot_2)
|
||||
#
|
||||
#elif event is InputEventKey:
|
||||
#if _active_interactive_is_left: _slot_1.push_input(event.duplicate(true))
|
||||
if Engine.is_editor_hint(): return
|
||||
if not visible or is_animating: return
|
||||
|
||||
var handled = false
|
||||
if event is InputEventMouse or event is InputEventMouseMotion:
|
||||
if is_instance_valid(_slot_1):
|
||||
_slot_1.physics_object_picking = true
|
||||
if _inject_event_to_viewport(_slot_1, true, event):
|
||||
if event is InputEventMouseButton and _slot_1.is_input_handled(): handled = true
|
||||
|
||||
if is_instance_valid(_slot_2):
|
||||
_slot_2.physics_object_picking = true
|
||||
if _inject_event_to_viewport(_slot_2, false, event):
|
||||
if event is InputEventMouseButton and _slot_2.is_input_handled(): handled = true
|
||||
|
||||
elif event is InputEventKey:
|
||||
if is_instance_valid(_slot_1):
|
||||
_slot_1.push_input(event.duplicate(true))
|
||||
if _slot_1.is_input_handled(): handled = true
|
||||
if is_instance_valid(_slot_2):
|
||||
_slot_2.push_input(event.duplicate(true))
|
||||
if _slot_2.is_input_handled(): handled = true
|
||||
|
||||
if handled:
|
||||
get_viewport().set_input_as_handled()
|
||||
|
||||
|
||||
func _unhandled_input(event):
|
||||
@@ -1202,8 +1208,8 @@ func _get_screen_center() -> Vector2:
|
||||
var cam = get_viewport().get_camera_2d()
|
||||
if cam: return cam.get_screen_center_position()
|
||||
|
||||
# If no camera or not using internal, center to viewport rect
|
||||
return get_viewport_rect().size / 2.0
|
||||
# Se non usiamo la camera, torniamo la nostra global_position per non distaccarci dalla UI
|
||||
return global_position
|
||||
|
||||
func _get_compensation_offset(is_closed: bool, is_back: bool) -> Vector2:
|
||||
var target_local_x = 0.0
|
||||
|
||||
@@ -216,7 +216,7 @@ func _load_state_from_cache():
|
||||
timing_peak_lift = _custom_cache.get("t_lift", 0.15)
|
||||
timing_peak_land = _custom_cache.get("t_land", 0.85)
|
||||
anim_duration = _custom_cache.get("dur", 1.0)
|
||||
enable_shadow = _custom_cache.get("shadow", true)
|
||||
enable_shadow = false # Force disable shadow
|
||||
|
||||
|
||||
# ==============================================================================
|
||||
|
||||
Reference in New Issue
Block a user