ConditionManager class

Пакет: com.hypixel.hytale.builtin.adventure.worldevents.condition.manager

Файл: com/hypixel/hytale/builtin/adventure/worldevents/condition/manager/ConditionManager.java

implements: Resource<EntityStore>

Поля (17)

МодификаторыТипИмя
break
break
break
break
break
break
ConditionMap.Entry entryx
ConditionMap.Entry entryxx
final ConditionMap<EventCondition.Ticking> ticking
ConditionMap.Entry var11
WorldEventsPlugin var2
ConditionMap.Entry var3
Class var3
ConditionMap.Entry var4
ConditionMap.Entry var4
Class var4
EventCondition.Type var7

Методы (21)

МодификаторыВозвратСигнатура
public void cancelvoid cancel(@Nonnull EventCondition... var1)
for for(EventCondition var6 : var1)
for for(EventCondition var5 : var1)
abstract for for(int var3 = 0; var3 < this.ticking.size()
static ResourceType<EntityStore, ConditionManager> getResourceTypeResourceType<EntityStore, ConditionManager> getResourceType()
public <T extends EcsEvent> void handle<T extends EcsEvent> void handle(@Nonnull World var1, @Nonnull T var2)
public <T extends EcsEvent> void handle<T extends EcsEvent> void handle(@Nonnull World var1, @Nonnull T var2, @Nonnull TrackedComponent var3)
static <T extends EcsEvent> boolean handleEvent<T extends EcsEvent> boolean handleEvent(@Nonnull EventCondition.Event<T> var0, @Nonnull World var1, @Nonnull EcsEvent var2)
static <T extends EcsEvent> boolean handleEvent<T extends EcsEvent> boolean handleEvent(@Nonnull EventCondition.TrackedEvent<T> var0, @Nonnull World var1, @Nonnull EcsEvent var2, @Nonnull TrackedComponent var3)
static boolean handleTickboolean handleTick(@Nonnull EventCondition.Ticking var0, @Nonnull ConditionMap.Entry<?> var1, @Nonnull Store<EntityStore> var2)
if if(var3 != null)
if if(var4 != null)
if if(var1.length != 0)
if if(var7 != null)
if if(entryxx != null)
if if(entryx != null)
if if(var11 != null)
public void submitvoid submit(@Nonnull EventCondition... var1)
switch switch(var6)
switch switch(var5)
public void tickvoid tick(float var1, @Nonnull Store<EntityStore> var2)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.adventure.worldevents.condition.manager;

class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.WorldEventsPlugin;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.component.TrackedComponent;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.condition.EventCondition;
class="kw">import com.hypixel.hytale.common.util.ListUtil;
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.EcsEvent;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.util.List;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.concurrent.NotThreadSafe;

@NotThreadSafe
class="kw">public class ConditionManager class="kw">implements Resource<EntityStore> {
   class="kw">protected class="kw">final ConditionMap<EventCondition.Ticking> ticking = new ConditionMap<>();
   class="kw">protected class="kw">final ConditionMap<EventCondition.Event<?>> events = new ConditionMap<>();
   class="kw">protected class="kw">final ConditionMap<EventCondition.TrackedEvent<?>> trackedEvents = new ConditionMap<>();

   class="kw">public ConditionManager() {
   }

   class="kw">public ConditionManager(@Nonnull ConditionManager var1) {
      this.events.copy(var1.events);
      this.ticking.copy(var1.ticking);
      this.trackedEvents.copy(var1.trackedEvents);
   }

   class="kw">public void tick(float var1, @Nonnull Store<EntityStore> var2) {
      for (int var3 = 0; var3 < this.ticking.size(); var3++) {
         ConditionMap.Entry var4 = this.ticking.get(var3);
         assert var4 != null;
         var4.timer_s += var1;
         if (!(var4.timer_s < var4.conditionType.tickIntervalSeconds())) {
            ListUtil.unstableRemoveIf(var4.conditions, var4, var2, ConditionManager::handleTick);
            var4.timer_s = 0.0F;
         }
      }
   }

   class="kw">public <T class="kw">extends EcsEvent> void handle(@Nonnull World var1, @Nonnull T var2) {
      ConditionMap.Entry var3 = this.events.get(var2.getClass());
      if (var3 != null) {
         ListUtil.unstableRemoveIf((List<EventCondition.Event<T>>)var3.conditions, var1, var2, ConditionManager::handleEvent);
      }
   }

   class="kw">public <T class="kw">extends EcsEvent> void handle(@Nonnull World var1, @Nonnull T var2, @Nonnull TrackedComponent var3) {
      ConditionMap.Entry var4 = this.trackedEvents.get(var2.getClass());
      if (var4 != null) {
         ListUtil.unstableRemoveIf((List<EventCondition.TrackedEvent<T>>)var4.conditions, var1, var2, var3, ConditionManager::handleEvent);
      }
   }

   class="kw">public void submit(@Nonnull EventCondition... var1) {
      if (var1.length != 0) {
         WorldEventsPlugin var2 = WorldEventsPlugin.get();

         for (EventCondition var6 : var1) {
            EventCondition.Type var7 = var2.getConditionType((Class<? class="kw">extends EventCondition>)var6.getClass());
            if (var7 != null) {
               class="kw">switch (var6) {
                  case EventCondition.Ticking var10:
                     this.ticking.ensure(var10.getClass(), var7).add(var10);
                     break;
                  case EventCondition.Event var11:
                     this.events.ensure(var11.eventType(), var7).add(var11);
                     break;
                  case EventCondition.TrackedEvent var12:
                     this.trackedEvents.ensure(var12.eventType(), var7).add(var12);
                     break;
                  class="kw">default:
               }
            }
         }
      }
   }

   class="kw">public void cancel(@Nonnull EventCondition... var1) {
      for (EventCondition var5 : var1) {
         class="kw">switch (var5) {
            case EventCondition.Ticking var8:
               ConditionMap.Entry entryxx = this.ticking.get(var8.getClass());
               if (entryxx != null) {
                  entryxx.remove(var8);
               }
               break;
            case EventCondition.Event var9:
               ConditionMap.Entry entryx = this.events.get(var9.eventType());
               if (entryx != null) {
                  entryx.remove(var9);
               }
               break;
            case EventCondition.TrackedEvent var10:
               ConditionMap.Entry var11 = this.trackedEvents.get(var10.eventType());
               if (var11 != null) {
                  var11.remove(var10);
               }
               break;
            class="kw">default:
         }
      }
   }

   @Nonnull
   @Override
   class="kw">public Resource<EntityStore> clone() {
      class="kw">return new ConditionManager(this);
   }

   class="kw">public class="kw">static ResourceType<EntityStore, ConditionManager> getResourceType() {
      class="kw">return WorldEventsPlugin.get().getConditionManagerResourceType();
   }

   class="kw">protected class="kw">static boolean handleTick(@Nonnull EventCondition.Ticking var0, @Nonnull ConditionMap.Entry<?> var1, @Nonnull Store<EntityStore> var2) {
      var0.tick(var1.timer_s, var2);
      class="kw">return var0.test();
   }

   class="kw">protected class="kw">static <T class="kw">extends EcsEvent> boolean handleEvent(@Nonnull EventCondition.Event<T> var0, @Nonnull World var1, @Nonnull EcsEvent var2) {
      Class var3 = var0.eventType();
      assert var2.getClass() == var3;
      var0.handle(var1, var3.cast(var2));
      class="kw">return var0.test();
   }

   class="kw">protected class="kw">static <T class="kw">extends EcsEvent> boolean handleEvent(
      @Nonnull EventCondition.TrackedEvent<T> var0, @Nonnull World var1, @Nonnull EcsEvent var2, @Nonnull TrackedComponent var3
   ) {
      Class var4 = var0.eventType();
      assert var2.getClass() == var4;
      var0.handle(var1, var4.cast(var2), var3);
      class="kw">return var0.test();
   }
}