Made items activate directly when picked up
This commit is contained in:
@@ -1047,6 +1047,8 @@ script = ExtResource("40_w3jkj")
|
|||||||
[connection signal="FilledWateringCan" from="YSorted/Vesna" to="Audio/SFX/FillWater SFX2" method="PlayOneShot"]
|
[connection signal="FilledWateringCan" from="YSorted/Vesna" to="Audio/SFX/FillWater SFX2" method="PlayOneShot"]
|
||||||
[connection signal="WateringField" from="YSorted/Vesna/FarmingControls" to="Audio/SFX/Watering SFX" method="PlayOneShot"]
|
[connection signal="WateringField" from="YSorted/Vesna/FarmingControls" to="Audio/SFX/Watering SFX" method="PlayOneShot"]
|
||||||
[connection signal="InteractedTool" from="YSorted/Brünnen/InteractionArea" to="YSorted/Vesna" method="TryFillWateringCan"]
|
[connection signal="InteractedTool" from="YSorted/Brünnen/InteractionArea" to="YSorted/Vesna" method="TryFillWateringCan"]
|
||||||
|
[connection signal="SuccessfulPickUp" from="YSorted/CanGenericPickup" to="YSorted/Vesna" method="HandlePickUp"]
|
||||||
|
[connection signal="SuccessfulPickUp" from="YSorted/RakeGenericPickup" to="YSorted/Vesna" method="HandlePickUp"]
|
||||||
[connection signal="Interacted" from="YSorted/Farm visuals/Static/EnterHouseInteraction" to="." method="LoadScene"]
|
[connection signal="Interacted" from="YSorted/Farm visuals/Static/EnterHouseInteraction" to="." method="LoadScene"]
|
||||||
[connection signal="FieldCreated" from="YSorted/Farm visuals/FieldParent" to="Audio/SFX/Farming SFX" method="PlayOneShot"]
|
[connection signal="FieldCreated" from="YSorted/Farm visuals/FieldParent" to="Audio/SFX/Farming SFX" method="PlayOneShot"]
|
||||||
[connection signal="mouse_entered" from="YSorted/Farm visuals/FieldParent/Area2D" to="YSorted/Farm visuals/FieldParent" method="MouseEnteredAllowedArea"]
|
[connection signal="mouse_entered" from="YSorted/Farm visuals/FieldParent/Area2D" to="YSorted/Farm visuals/FieldParent" method="MouseEnteredAllowedArea"]
|
||||||
|
|||||||
@@ -27,7 +27,17 @@ public partial class VesnaBehaviour2D : Node
|
|||||||
_inventoryManager.SlotIndexChanged += HandleInventorySelectedSlotIndexChanged;
|
_inventoryManager.SlotIndexChanged += HandleInventorySelectedSlotIndexChanged;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void HandleInventorySelectedSlotIndexChanged(int newIndex)
|
/// <summary>
|
||||||
|
/// Called when picking up an item.
|
||||||
|
/// Makes sure that item animations are also updated when they are occupying a currently empty spot.
|
||||||
|
/// </summary>
|
||||||
|
public void HandlePickUp()
|
||||||
|
{
|
||||||
|
//Calls the same event handler as the inventory to ensure the currently selected item is updated in the animation.
|
||||||
|
HandleInventorySelectedSlotIndexChanged(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void HandleInventorySelectedSlotIndexChanged(int newIndex = 0)
|
||||||
{
|
{
|
||||||
InventorySlot currentSlot = InventoryManager.Instance.GetCurrentSelectedSlot();
|
InventorySlot currentSlot = InventoryManager.Instance.GetCurrentSelectedSlot();
|
||||||
ItemInstance? currentItem = currentSlot.itemInstance;
|
ItemInstance? currentItem = currentSlot.itemInstance;
|
||||||
|
|||||||
@@ -12,6 +12,8 @@ public partial class ItemOnGround2D : Node
|
|||||||
|
|
||||||
private int pickUpCounter = 0;
|
private int pickUpCounter = 0;
|
||||||
|
|
||||||
|
[Signal] public delegate void SuccessfulPickUpEventHandler();
|
||||||
|
|
||||||
private Label _itemLabel => GetNode<Label>("ItemLabel");
|
private Label _itemLabel => GetNode<Label>("ItemLabel");
|
||||||
private Label _pickupErrorLabel => GetNode<Label>("PickupErrorLabel");
|
private Label _pickupErrorLabel => GetNode<Label>("PickupErrorLabel");
|
||||||
private Sprite2D _iconSprite => GetNode<Sprite2D>("Icon");
|
private Sprite2D _iconSprite => GetNode<Sprite2D>("Icon");
|
||||||
@@ -38,6 +40,7 @@ public partial class ItemOnGround2D : Node
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
var result = InventoryManager.Instance.CollectItem(itemInstance.Clone());
|
var result = InventoryManager.Instance.CollectItem(itemInstance.Clone());
|
||||||
|
EmitSignal(SignalName.SuccessfulPickUp);
|
||||||
if (result == InventoryActionResult.Success)
|
if (result == InventoryActionResult.Success)
|
||||||
{
|
{
|
||||||
if (!_infiniteSupply)
|
if (!_infiniteSupply)
|
||||||
|
|||||||
Reference in New Issue
Block a user