Inventory Engine v4.2
Loading...
Searching...
No Matches
MoreMountains.Tools.MMCooldown Class Reference

A class to handle cooldown related properties and their resource consumption over time Remember to initialize it (once) and update it every frame from another class. More...

Public Types

enum  CooldownStates { Idle , Consuming , Stopped , Refilling }
 all possible states for the object More...

Public Member Functions

delegate void OnStateChangeDelegate (CooldownStates newState)
 A public delegate you can listen to for state changes.
virtual void Initialization ()
 An init method that ensures the object is reset.
virtual void Start ()
 Starts consuming the cooldown object if possible.
virtual bool Ready ()
 Returns true if the cooldown is ready to be consumed, false otherwise.
virtual void Stop ()
 Stops consuming the object.
virtual void Update ()
 Processes the object's state machine.

Public Attributes

bool Unlimited = false
 if this is true, the cooldown won't do anything
float ConsumptionDuration = 2f
 the time it takes, in seconds, to consume the object
float PauseOnEmptyDuration = 1f
 the pause to apply before refilling once the object's been depleted
float RefillDuration = 1f
 the duration of the refill, in seconds, if uninterrupted
bool CanInterruptRefill = true
 whether or not the refill can be interrupted by a new Start instruction
CooldownStates CooldownState = CooldownStates.Idle
 the current state of the object
float CurrentDurationLeft
 the amount of duration left in the object at any given time
OnStateChangeDelegate OnStateChange

Protected Member Functions

virtual void ChangeState (CooldownStates newState)
 Changes the current state of the cooldown and invokes the delegate if needed.

Protected Attributes

float _emptyReachedTimestamp = 0f

Properties

float Progress [get]

Detailed Description

A class to handle cooldown related properties and their resource consumption over time Remember to initialize it (once) and update it every frame from another class.

Member Enumeration Documentation

◆ CooldownStates

all possible states for the object

Enumerator
Idle 
Consuming 
Stopped 
Refilling 

Member Function Documentation

◆ ChangeState()

virtual void MoreMountains.Tools.MMCooldown.ChangeState ( CooldownStates newState)
protectedvirtual

Changes the current state of the cooldown and invokes the delegate if needed.

Parameters
newState

◆ Initialization()

virtual void MoreMountains.Tools.MMCooldown.Initialization ( )
virtual

An init method that ensures the object is reset.

◆ OnStateChangeDelegate()

delegate void MoreMountains.Tools.MMCooldown.OnStateChangeDelegate ( CooldownStates newState)

A public delegate you can listen to for state changes.

How to use :

private void OnCooldownStateChange(MMCooldown.CooldownStates newState) { if (newState == MMCooldown.CooldownStates.Stopped) { // do something } }

private void OnEnable() { Cooldown.OnStateChange += OnCooldownStateChange; }
private void OnDisable() { Cooldown.OnStateChange -= OnCooldownStateChange; }

◆ Ready()

virtual bool MoreMountains.Tools.MMCooldown.Ready ( )
virtual

Returns true if the cooldown is ready to be consumed, false otherwise.

Returns

◆ Start()

virtual void MoreMountains.Tools.MMCooldown.Start ( )
virtual

Starts consuming the cooldown object if possible.

◆ Stop()

virtual void MoreMountains.Tools.MMCooldown.Stop ( )
virtual

Stops consuming the object.

◆ Update()

virtual void MoreMountains.Tools.MMCooldown.Update ( )
virtual

Processes the object's state machine.

Member Data Documentation

◆ _emptyReachedTimestamp

float MoreMountains.Tools.MMCooldown._emptyReachedTimestamp = 0f
protected

◆ CanInterruptRefill

bool MoreMountains.Tools.MMCooldown.CanInterruptRefill = true

whether or not the refill can be interrupted by a new Start instruction

◆ ConsumptionDuration

float MoreMountains.Tools.MMCooldown.ConsumptionDuration = 2f

the time it takes, in seconds, to consume the object

◆ CooldownState

CooldownStates MoreMountains.Tools.MMCooldown.CooldownState = CooldownStates.Idle

the current state of the object

◆ CurrentDurationLeft

float MoreMountains.Tools.MMCooldown.CurrentDurationLeft

the amount of duration left in the object at any given time

◆ OnStateChange

OnStateChangeDelegate MoreMountains.Tools.MMCooldown.OnStateChange

◆ PauseOnEmptyDuration

float MoreMountains.Tools.MMCooldown.PauseOnEmptyDuration = 1f

the pause to apply before refilling once the object's been depleted

◆ RefillDuration

float MoreMountains.Tools.MMCooldown.RefillDuration = 1f

the duration of the refill, in seconds, if uninterrupted

◆ Unlimited

bool MoreMountains.Tools.MMCooldown.Unlimited = false

if this is true, the cooldown won't do anything

Property Documentation

◆ Progress

float MoreMountains.Tools.MMCooldown.Progress
get

The documentation for this class was generated from the following file: