drag from inventory + fixed some warnings + tractor beam effect on top of rocks

This commit is contained in:
Altaezio
2026-07-02 11:04:01 +02:00
parent 53e86be2ce
commit 45281057f2
3 changed files with 17 additions and 15 deletions

View File

@@ -207,7 +207,7 @@ func change_ambiances_volume(db_change := 0., fade := DEFAULT_FADE_TIME):
# Joue un # Joue un
# - player_name : Nom de la Node dans la scène Godot à jouer # - player_name : Nom de la Node dans la scène Godot à jouer
func play_sfx(sfx_name : String, pitch = 1.): func play_sfx(sfx_name : String, _pitch = 1.):
var player := %Sfx.find_child(sfx_name) as AudioStreamPlayer var player := %Sfx.find_child(sfx_name) as AudioStreamPlayer
if player: if player:
player.play() player.play()

View File

@@ -131,7 +131,6 @@ libraries/ = SubResource("AnimationLibrary_ng3e4")
autoplay = &"default" autoplay = &"default"
[node name="TractorBeam" type="CPUParticles2D" parent="." unique_id=382704689] [node name="TractorBeam" type="CPUParticles2D" parent="." unique_id=382704689]
z_index = -1
position = Vector2(83, 0) position = Vector2(83, 0)
scale = Vector2(0.7, 0.7) scale = Vector2(0.7, 0.7)
emitting = false emitting = false

View File

@@ -149,10 +149,10 @@ func process_player_actions(delta: float):
%ActionProgressBar.value = 0. %ActionProgressBar.value = 0.
if Input.is_action_just_pressed("action"): if Input.is_action_just_pressed("action"):
if inspected is InventoryGuiItemMouseDetector: if can_use_item and not current_selected_item.is_action_need_press_time() and current_selected_item.deactivate_interactable():
GameInfo.game_data.player_data.inventory.set_current_item(inspected.index)
elif can_use_item and not current_selected_item.is_action_need_press_time() and current_selected_item.deactivate_interactable():
player.try_use_item(current_selected_item, player.get_global_mouse_position()) player.try_use_item(current_selected_item, player.get_global_mouse_position())
elif inspected is InventoryGuiItemMouseDetector:
GameInfo.game_data.player_data.inventory.set_current_item(inspected.index)
elif can_interact: elif can_interact:
var interactable = inspected as Interactable var interactable = inspected as Interactable
player.try_interact(interactable) player.try_interact(interactable)
@@ -261,7 +261,7 @@ func update_inspector(current_inspected):
func update_cursor(): func update_cursor():
var cursor := default_cursor var cursor := default_cursor
var hotspot : = Vector2(0.,0.) var hotspot := Vector2(0., 0.)
if not Pause.pause and player and not action_disabled: if not Pause.pause and player and not action_disabled:
if current_selected_item and current_selected_item.get_pointer(): if current_selected_item and current_selected_item.get_pointer():
cursor = current_selected_item.get_pointer() cursor = current_selected_item.get_pointer()
@@ -270,10 +270,10 @@ func update_cursor():
cursor = current_selected_item.get_clicked_pointer() cursor = current_selected_item.get_clicked_pointer()
if current_selected_item.is_pointer_center(): if current_selected_item.is_pointer_center():
hotspot = Vector2(cursor.get_width()/2., cursor.get_height()/2.) hotspot = Vector2(cursor.get_width() / 2., cursor.get_height() / 2.)
elif can_interact: elif can_interact:
cursor = action_cursor cursor = action_cursor
Input.set_custom_mouse_cursor(cursor,0,hotspot) Input.set_custom_mouse_cursor(cursor, Input.CURSOR_ARROW, hotspot)
func stop_inspect(node: Node): func stop_inspect(node: Node):
if not dragging_inspected: if not dragging_inspected:
@@ -294,6 +294,9 @@ func start_dragging():
inspected_inventory_slot = inspected inspected_inventory_slot = inspected
inspected = dropped_item_object inspected = dropped_item_object
player.region.save() player.region.save()
else:
dragging_inspected = false
GameInfo.game_data.player_data.inventory.set_current_item(inspected.index)
else: else:
dragging_inspected = false dragging_inspected = false
if dragging_inspected: if dragging_inspected:
@@ -306,10 +309,10 @@ func stop_dragging():
dragging_inspected = false dragging_inspected = false
if inspected is ItemObject: if inspected is ItemObject:
inspected.object_sprite.tractor_beam.emitting = false inspected.object_sprite.tractor_beam.emitting = false
if ( if inspected_inventory_slot is InventoryGuiItemMouseDetector:
inspected_inventory_slot is InventoryGuiItemMouseDetector if GameInfo.game_data.player_data.inventory.add_item_at(inspected.item, inspected_inventory_slot.index):
and GameInfo.game_data.player_data.inventory.add_item_at(inspected.item, inspected_inventory_slot.index) all_inspected.clear()
): inspected.queue_free()
all_inspected.clear() inspect(inspected_inventory_slot)
inspected.queue_free() else:
inspected = null stop_inspect(inspected)