You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
4.0 KiB
108 lines
4.0 KiB
4 years ago
|
/**
|
||
|
* API that provides time-related methods.
|
||
|
* Copyright 2021 Anton Tarasenko
|
||
|
*------------------------------------------------------------------------------
|
||
|
* This file is part of Acedia.
|
||
|
*
|
||
|
* Acedia is free software: you can redistribute it and/or modify
|
||
|
* it under the terms of the GNU General Public License as published by
|
||
|
* the Free Software Foundation, version 3 of the License, or
|
||
|
* (at your option) any later version.
|
||
|
*
|
||
|
* Acedia is distributed in the hope that it will be useful,
|
||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
* GNU General Public License for more details.
|
||
|
*
|
||
|
* You should have received a copy of the GNU General Public License
|
||
|
* along with Acedia. If not, see <https://www.gnu.org/licenses/>.
|
||
|
*/
|
||
|
class TimeAPI extends AcediaObject;
|
||
|
|
||
|
/**
|
||
|
* Creates new `Timer`. Does not start it.
|
||
|
*
|
||
|
* @param interval Returned `Timer` will be configured to emit
|
||
|
* `OnElapsed()` signals every `interval` seconds.
|
||
|
* @param autoReset `true` will configure caller `Timer` to repeatedly emit
|
||
|
* `OnElapsed()` every `interval` seconds, `false` (default value) will
|
||
|
* make returned `Timer` emit that signal only once.
|
||
|
* @return `Timer`, configured to emit `OnElapsed()` every `interval` seconds.
|
||
|
* Not started. Guaranteed to be not `none`.
|
||
|
*/
|
||
|
public final function Timer NewTimer(
|
||
|
optional float interval,
|
||
|
optional bool autoReset)
|
||
|
{
|
||
|
return Timer(_.memory.Allocate(class'Timer'))
|
||
|
.SetInterval(interval)
|
||
|
.SetAutoReset(autoReset);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Creates and starts new `Timer`.
|
||
|
*
|
||
|
* @param interval Returned `Timer` will be configured to emit
|
||
|
* `OnElapsed()` signals every `interval` seconds.
|
||
|
* @param autoReset Setting this to `true` will configure caller `Timer` to
|
||
|
* repeatedly emit `OnElapsed()` signal every `interval` seconds, `false`
|
||
|
* (default value) will make returned `Timer` emit that signal only once.
|
||
|
* @return `Timer`, configured to emit `OnElapsed()` every `interval` seconds.
|
||
|
* Guaranteed to be not `none`.
|
||
|
*/
|
||
|
public final function Timer StartTimer(float interval, optional bool autoReset)
|
||
|
{
|
||
|
return Timer(_.memory.Allocate(class'Timer'))
|
||
|
.SetInterval(interval)
|
||
|
.SetAutoReset(autoReset)
|
||
|
.Start();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Creates new `RealTimer`. Does not start it.
|
||
|
*
|
||
|
* @param interval Returned `RealTimer` will be configured to emit
|
||
|
* `OnElapsed()` signals every `interval` seconds.
|
||
|
* @param autoReset `true` will configure caller `RealTimer` to repeatedly
|
||
|
* emit `OnElapsed()` every `interval` seconds, `false` (default value)
|
||
|
* will make returned `RealTimer` emit that signal only once.
|
||
|
* @return `RealTimer`, configured to emit `OnElapsed()` every `interval`
|
||
|
* seconds. Not started. Guaranteed to be not `none`.
|
||
|
*/
|
||
|
public final function RealTimer NewRealTimer(
|
||
|
optional float interval,
|
||
|
optional bool autoReset)
|
||
|
{
|
||
|
local RealTimer newTimer;
|
||
|
newTimer = RealTimer(_.memory.Allocate(class'RealTimer'));
|
||
|
newTimer.SetInterval(interval).SetAutoReset(autoReset);
|
||
|
return newTimer;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Creates and starts new `RealTimer`.
|
||
|
*
|
||
|
* @param interval Returned `RealTimer` will be configured to emit
|
||
|
* `OnElapsed()` signals every `interval` seconds.
|
||
|
* @param autoReset Setting this to `true` will configure caller `RealTimer`
|
||
|
* to repeatedly emit `OnElapsed()` signal every `interval` seconds,
|
||
|
* `false` (default value) will make returned `RealTimer` emit that signal
|
||
|
* only once.
|
||
|
* @return `RealTimer`, configured to emit `OnElapsed()` every `interval`
|
||
|
* seconds. Guaranteed to be not `none`.
|
||
|
*/
|
||
|
public final function RealTimer StartRealTimer(
|
||
|
float interval,
|
||
|
optional bool autoReset)
|
||
|
{
|
||
|
local RealTimer newTimer;
|
||
|
newTimer = RealTimer(_.memory.Allocate(class'RealTimer'));
|
||
|
newTimer.SetInterval(interval)
|
||
|
.SetAutoReset(autoReset)
|
||
|
.Start();
|
||
|
return newTimer;
|
||
|
}
|
||
|
|
||
|
defaultproperties
|
||
|
{
|
||
|
}
|