Anton Tarasenko
2 years ago
2 changed files with 98 additions and 2 deletions
@ -0,0 +1,54 @@ |
|||||||
|
/** |
||||||
|
* Author: dkanus |
||||||
|
* Home repo: https://www.insultplayers.ru/git/AcediaFramework/AcediaCore |
||||||
|
* License: GPL |
||||||
|
* Copyright 2023 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 CommandRegistrationJob extends SchedulerJob; |
||||||
|
|
||||||
|
var private class<Command> nextCommand; |
||||||
|
|
||||||
|
protected function Constructor() { |
||||||
|
nextCommand = _.commands._popPending(); |
||||||
|
} |
||||||
|
|
||||||
|
protected function Finalizer() { |
||||||
|
nextCommand = none; |
||||||
|
} |
||||||
|
|
||||||
|
public function bool IsCompleted() { |
||||||
|
return (nextCommand == none); |
||||||
|
} |
||||||
|
|
||||||
|
public function DoWork(int allottedWorkUnits) { |
||||||
|
local int i, iterationsAmount; |
||||||
|
|
||||||
|
// Expected 300 units per tick, to register 20 commands per tick use about 10 |
||||||
|
iterationsAmount = Max(allottedWorkUnits / 10, 1); |
||||||
|
for (i = 0; i < iterationsAmount; i += 1) { |
||||||
|
_.commands.RegisterCommand(nextCommand); |
||||||
|
nextCommand = _.commands._popPending(); |
||||||
|
if (nextCommand == none) { |
||||||
|
break; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
defaultproperties |
||||||
|
{ |
||||||
|
} |
Loading…
Reference in new issue