CapersProject/Assets/02.Scripts/Prop/Tycoon/Pump.cs

70 lines
1.9 KiB
C#
Raw Normal View History

2024-11-04 12:22:07 +00:00
using System;
2024-11-07 09:13:54 +00:00
using BlueWater.Uis;
2024-11-04 12:22:07 +00:00
using UnityEngine;
namespace BlueWater.Tycoons
{
[Serializable]
public class Pump : InteractionFurniture
{
[SerializeField]
2024-11-11 09:51:12 +00:00
private float _playerHoldingTime = 1f;
2024-11-04 12:22:07 +00:00
[SerializeField]
private PumpingMessage _pumpingMessageObject;
[SerializeField]
private Vector3 _offset;
[SerializeField, Range(0, 1000)]
private int addedLiquid = 400;
private bool _isPlayerInteracting;
private void Update()
{
if (IsShowing)
{
2024-11-11 09:51:12 +00:00
var holdingGauge = Mathf.Clamp(HoldingElapsedTime / _playerHoldingTime, 0f, 1f);
2024-11-04 12:22:07 +00:00
EventManager.InvokeHoldInteracting(holdingGauge);
}
2024-11-11 09:51:12 +00:00
if (HoldingElapsedTime > _playerHoldingTime)
2024-11-04 12:22:07 +00:00
{
2024-11-11 09:51:12 +00:00
HoldingElapsedTime -= _playerHoldingTime;
2024-11-04 12:22:07 +00:00
EventManager.InvokeAddBarrels(addedLiquid);
var pumpingMessage = Instantiate(_pumpingMessageObject, transform.position + _offset,
2024-11-07 09:13:54 +00:00
Quaternion.identity, TycoonUiManager.Instance.WorldCanvas.transform);
2024-11-04 12:22:07 +00:00
pumpingMessage.Initialize(addedLiquid);
}
if (_isPlayerInteracting)
{
HoldingElapsedTime += Time.deltaTime;
}
else
{
if (HoldingElapsedTime > 0f)
{
HoldingElapsedTime -= Time.deltaTime;
}
}
}
public override void Interaction()
{
_isPlayerInteracting = true;
}
public override void CancelInteraction()
{
_isPlayerInteracting = false;
}
public override bool CanInteraction()
{
return !GameManager.Instance.CurrentTycoonPlayer.TycoonPickupHandler.IsPickedUpAnything();
}
}
}