EntityTickingSystem class
Пакет: com.hypixel.hytale.component.system.tick
Файл: com/hypixel/hytale/component/system/tick/EntityTickingSystem.java
extends: ArchetypeTickingSystem<ECS_TYPE>
Поля (13)
| Модификаторы | Тип | Имя |
|---|---|---|
|
private ArchetypeChunk<ECS_TYPE> |
archetypeChunk |
|
private CommandBuffer<ECS_TYPE> |
commandBuffer |
|
private float |
dt |
|
private Store<ECS_TYPE> |
store |
|
private EntityTickingSystem<ECS_TYPE> |
system |
|
ParallelRangeTask |
var10 |
|
int |
var2 |
|
ParallelRangeTask |
var4 |
|
int |
var5 |
|
int |
var5 |
|
ParallelTask |
var6 |
|
EntityTickingSystem.SystemTaskData |
var7 |
|
int |
var8 |
Методы (17)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
public |
SystemTaskDatapublic SystemTaskData() |
|
public void |
acceptpublic void accept(int var1) |
|
public void |
clearpublic void clear() |
static |
<ECS_TYPE> void |
doTick<ECS_TYPE> void doTick(@Nonnull EntityTickingSystem<ECS_TYPE> var0,
float var1,
@Nonnull ArchetypeChunk<ECS_TYPE> var2,
@Nonnull Store<ECS_TYPE> var3,
@Nonnull CommandBuffer<ECS_TYPE> var4) |
abstract |
|
doTick doTick(this, var1, var2, var3, var4) |
|
|
for for(int var7 = 0; var7 < var5; var7++) |
|
|
for for(int var3 = 0; var3 < var2; var3++) |
abstract |
|
for for(int var9 = var10.size() |
abstract |
|
for for(int var6 = var4.size() |
|
|
if if(var5 != 0) |
|
|
if if(var2 > 0) |
|
public void |
initpublic void init(EntityTickingSystem<ECS_TYPE> var1, float var2, ArchetypeChunk<ECS_TYPE> var3, Store<ECS_TYPE> var4, CommandBuffer<ECS_TYPE> var5) |
|
public static <ECS_TYPE> void |
invokeParallelTaskpublic static <ECS_TYPE> void invokeParallelTask(@Nonnull ParallelTask<EntityTickingSystem.SystemTaskData<ECS_TYPE>> var0, @Nonnull CommandBuffer<ECS_TYPE> var1) |
public |
boolean |
isParallelboolean isParallel(int var1, int var2) |
static |
boolean |
maybeUseParallelboolean maybeUseParallel(int var0, int var1) |
abstract abstract |
void |
tickvoid tick(float var1, int var2, @Nonnull ArchetypeChunk<ECS_TYPE> var3, @Nonnull Store<ECS_TYPE> var4, @Nonnull CommandBuffer<ECS_TYPE> var5) |
static |
boolean |
useParallelboolean useParallel(int var0, int var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.component.system.tick;
class="kw">import com.hypixel.hytale.component.ArchetypeChunk;
class="kw">import com.hypixel.hytale.component.CommandBuffer;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.component.task.ParallelRangeTask;
class="kw">import com.hypixel.hytale.component.task.ParallelTask;
class="kw">import java.util.function.IntConsumer;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class="kw">abstract class EntityTickingSystem<ECS_TYPE> class="kw">extends ArchetypeTickingSystem<ECS_TYPE> {
class="kw">public EntityTickingSystem() {
}
class="kw">protected class="kw">static boolean maybeUseParallel(int var0, int var1) {
class="kw">return false;
}
class="kw">protected class="kw">static boolean useParallel(int var0, int var1) {
class="kw">return var1 > 0 || var0 > ParallelRangeTask.PARALLELISM;
}
class="kw">public boolean isParallel(int var1, int var2) {
class="kw">return false;
}
@Override
class="kw">public void tick(float var1, @Nonnull ArchetypeChunk<ECS_TYPE> var2, @Nonnull Store<ECS_TYPE> var3, @Nonnull CommandBuffer<ECS_TYPE> var4) {
doTick(this, var1, var2, var3, var4);
}
class="kw">public class="kw">abstract void tick(float var1, int var2, @Nonnull ArchetypeChunk<ECS_TYPE> var3, @Nonnull Store<ECS_TYPE> var4, @Nonnull CommandBuffer<ECS_TYPE> var5);
class="kw">public class="kw">static <ECS_TYPE> void doTick(
@Nonnull EntityTickingSystem<ECS_TYPE> var0,
float var1,
@Nonnull ArchetypeChunk<ECS_TYPE> var2,
@Nonnull Store<ECS_TYPE> var3,
@Nonnull CommandBuffer<ECS_TYPE> var4
) {
int var5 = var2.size();
if (var5 != 0) {
ParallelTask var6 = var3.getParallelTask();
if (var0.isParallel(var5, var6.size())) {
ParallelRangeTask var10 = var6.appendTask();
var10.init(0, var5);
int var8 = 0;
for (int var9 = var10.size(); var8 < var9; var8++) {
var10.get(var8).init(var0, var1, var2, var3, var4.fork());
}
} else {
for (int var7 = 0; var7 < var5; var7++) {
var0.tick(var1, var7, var2, var3, var4);
}
}
}
}
class="kw">public class="kw">static class SystemTaskData<ECS_TYPE> class="kw">implements IntConsumer {
@Nullable
class="kw">private EntityTickingSystem<ECS_TYPE> system;
class="kw">private float dt;
@Nullable
class="kw">private ArchetypeChunk<ECS_TYPE> archetypeChunk;
@Nullable
class="kw">private Store<ECS_TYPE> store;
@Nullable
class="kw">private CommandBuffer<ECS_TYPE> commandBuffer;
class="kw">public SystemTaskData() {
}
class="kw">public void init(EntityTickingSystem<ECS_TYPE> var1, float var2, ArchetypeChunk<ECS_TYPE> var3, Store<ECS_TYPE> var4, CommandBuffer<ECS_TYPE> var5) {
this.system = var1;
this.dt = var2;
this.archetypeChunk = var3;
this.store = var4;
this.commandBuffer = var5;
}
@Override
class="kw">public void accept(int var1) {
assert this.commandBuffer.setThread();
this.system.tick(this.dt, var1, this.archetypeChunk, this.store, this.commandBuffer);
}
class="kw">public void clear() {
this.system = null;
this.archetypeChunk = null;
this.store = null;
this.commandBuffer = null;
}
class="kw">public class="kw">static <ECS_TYPE> void invokeParallelTask(
@Nonnull ParallelTask<EntityTickingSystem.SystemTaskData<ECS_TYPE>> var0, @Nonnull CommandBuffer<ECS_TYPE> var1
) {
int var2 = var0.size();
if (var2 > 0) {
var0.doInvoke();
for (int var3 = 0; var3 < var2; var3++) {
ParallelRangeTask var4 = var0.get(var3);
int var5 = 0;
for (int var6 = var4.size(); var5 < var6; var5++) {
EntityTickingSystem.SystemTaskData var7 = var4.get(var5);
var7.commandBuffer.mergeParallel(var1);
var7.clear();
}
}
}
}
}
}