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();
               }
            }
         }
      }
   }
}