DelayedSystem class

Пакет: com.hypixel.hytale.component.system

Файл: com/hypixel/hytale/component/system/DelayedSystem.java

extends: TickingSystem<ECS_TYPE>

Поля (4)

МодификаторыТипИмя
private float dt
DelayedSystem.Data var1
DelayedSystem.Data var4
float var5

Методы (5)

МодификаторыВозвратСигнатура
private Dataprivate Data()
public Resource<ECS_TYPE> clonepublic Resource<ECS_TYPE> clone()
abstract abstract void delayedTickvoid delayedTick(float var1, int var2, @Nonnull Store<ECS_TYPE> var3)
public float getIntervalSecfloat getIntervalSec()
if if(var4.dt >= this.intervalSec)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.component.system;

class="kw">import com.hypixel.hytale.component.Resource;
class="kw">import com.hypixel.hytale.component.ResourceType;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.component.system.tick.TickingSystem;
class="kw">import javax.annotation.Nonnull;

class="kw">public class="kw">abstract class DelayedSystem<ECS_TYPE> class="kw">extends TickingSystem<ECS_TYPE> {
   @Nonnull
   class="kw">private class="kw">final ResourceType<ECS_TYPE, DelayedSystem.Data<ECS_TYPE>> resourceType = this.registerResource(DelayedSystem.Data.class, DelayedSystem.Data::new);
   class="kw">private class="kw">final float intervalSec;

   class="kw">public DelayedSystem(float var1) {
      this.intervalSec = var1;
   }

   @Nonnull
   class="kw">public ResourceType<ECS_TYPE, DelayedSystem.Data<ECS_TYPE>> getResourceType() {
      class="kw">return this.resourceType;
   }

   class="kw">public float getIntervalSec() {
      class="kw">return this.intervalSec;
   }

   @Override
   class="kw">public void tick(float var1, int var2, @Nonnull Store<ECS_TYPE> var3) {
      DelayedSystem.Data var4 = var3.getResource(this.resourceType);
      var4.dt += var1;
      if (var4.dt >= this.intervalSec) {
         float var5 = var4.dt;
         var4.dt = 0.0F;
         this.delayedTick(var5, var2, var3);
      }
   }

   class="kw">public class="kw">abstract void delayedTick(float var1, int var2, @Nonnull Store<ECS_TYPE> var3);

   class="kw">private class="kw">static class Data<ECS_TYPE> class="kw">implements Resource<ECS_TYPE> {
      class="kw">private float dt;

      class="kw">private Data() {
      }

      @Nonnull
      @Override
      class="kw">public Resource<ECS_TYPE> clone() {
         DelayedSystem.Data var1 = new DelayedSystem.Data<>();
         var1.dt = this.dt;
         class="kw">return var1;
      }
   }
}