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