Files
test/Assets/PerfectWorld/Scripts/Managers/EC_ObjectWork.cs
T
Tungdv 001a16cf32 fix: update namespace.
feat: add new logic EC_World.
2025-10-14 18:34:16 +07:00

68 lines
1.7 KiB
C#

using UnityEngine;
namespace BrewMonster.Scripts
{
public class CECObjectWork
{
// Attributes
protected int m_iWorkID; // Work ID
protected bool m_bFinished; // true, Work is finished
protected uint m_dwMask; // Mask of this work
protected uint m_dwTransMask; // Work transfer masks
protected bool m_bFirstTick;
// Constructor
public CECObjectWork(int iWorkID)
{
m_iWorkID = iWorkID;
m_bFinished = false;
m_dwMask = 0;
m_dwTransMask = 0;
m_bFinished = true;
}
public virtual bool Tick(float dwDeltaTime)
{
if (m_bFirstTick)
{
m_bFirstTick = false;
OnFirstTick();
}
return true;
}
// Reset work
public virtual void Reset()
{
m_bFinished = false;
m_bFirstTick = true;
}
// Work is cancel
public virtual void Cancel() { }
// Can work transfer to another work with specified mask
public virtual bool CanTransferTo(uint dwMask)
{
return (m_dwTransMask & dwMask) != 0;
}
// On work shift to
public virtual void OnWorkShift() { }
// Get work ID
public int GetWorkID() => m_iWorkID;
// Is work finished?
public bool IsFinished() => m_bFinished;
// Get work mask
public uint GetWorkMask() => m_dwMask;
// Get work transfer works
public uint GetTransferMask() => m_dwTransMask;
// On first tick
protected virtual void OnFirstTick() { }
}
}