You've already forked Nitro_Render_V3
mirror of
https://github.com/duckietm/Nitro_Render_V3.git
synced 2026-06-19 23:16:20 +00:00
Move to Renderer V2
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
import { Motion } from './Motion';
|
||||
|
||||
export class Queue extends Motion
|
||||
{
|
||||
private _motion: Motion;
|
||||
private _queue: Motion[];
|
||||
|
||||
constructor(...motions: Motion[])
|
||||
{
|
||||
super((motions ? motions[0].target : null));
|
||||
|
||||
this._queue = [];
|
||||
|
||||
for(const motion of motions) this._queue.push(motion);
|
||||
|
||||
this._motion = motions[0];
|
||||
this._complete = !this._motion;
|
||||
}
|
||||
|
||||
public get running(): boolean
|
||||
{
|
||||
return ((this._running && this._motion) ? this._motion.running : false);
|
||||
}
|
||||
|
||||
public start(): void
|
||||
{
|
||||
super.start();
|
||||
|
||||
this._motion.start();
|
||||
}
|
||||
|
||||
public update(k: number): void
|
||||
{
|
||||
super.update(k);
|
||||
|
||||
if(this._motion.running) this._motion.update(k);
|
||||
}
|
||||
|
||||
public stop(): void
|
||||
{
|
||||
super.stop();
|
||||
|
||||
this._motion.stop();
|
||||
}
|
||||
|
||||
public tick(k: number): void
|
||||
{
|
||||
super.tick(k);
|
||||
|
||||
this._motion.tick(k);
|
||||
|
||||
if(this._motion.complete)
|
||||
{
|
||||
this._motion.stop();
|
||||
|
||||
const index = this._queue.indexOf(this._motion);
|
||||
|
||||
if(index < (this._queue.length - 1))
|
||||
{
|
||||
this._motion = this._queue[(index + 1)];
|
||||
this._target = this._motion.target;
|
||||
|
||||
this._motion.start();
|
||||
}
|
||||
else
|
||||
{
|
||||
this._complete = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user