GameModeTypes class

Пакет: com.hypixel.hytale.server.core.modules.entity.gamemode

Файл: com/hypixel/hytale/server/core/modules/entity/gamemode/GameModeTypes.java

Поля (17)

МодификаторыТипИмя
GameModeType var1
PersistentGameModeType var2
String var2
GameModeType var2
PersistentGameModeType var2
GameModeType var3
GameModeType var3
GameModeType var3
String var3
Player var4
GameModeTypeEnterEvent var4
GameModeTypeEnterEvent var4
GameModeTypeExitEvent var4
GameModeType var5
PlayerRef var6
CameraManager var7
Player var8

Методы (15)

МодификаторыВозвратСигнатура
abstract throw new IllegalArgumentExceptionthrow new IllegalArgumentException("Unknown GameModeType: " + var0)
static void applyEntervoid applyEnter(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1, @Nonnull GameModeType var2, @Nonnull String var3)
abstract applyEnter applyEnter(var0, var1, var3, var2)
static boolean enterboolean enter(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1, @Nonnull String var2)
static boolean enterOnDeathboolean enterOnDeath(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1, @Nonnull String var2)
static boolean exitboolean exit(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1)
if if(var2 != null)
if if(var3 != null)
if if(var2 == null)
if if(var5 == null)
if if(var6 != null && var7 != null)
if if(var1 == null)
static boolean isInTypeboolean isInType(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1)
static boolean isValidTypeboolean isValidType(@Nullable String var0)
static boolean preventsItemDropsboolean preventsItemDrops(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.modules.entity.gamemode;

class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.server.core.asset.type.gamemode.GameModeType;
class="kw">import com.hypixel.hytale.server.core.entity.entities.Player;
class="kw">import com.hypixel.hytale.server.core.entity.entities.player.CameraManager;
class="kw">import com.hypixel.hytale.server.core.event.events.ecs.GameModeTypeEnterEvent;
class="kw">import com.hypixel.hytale.server.core.event.events.ecs.GameModeTypeExitEvent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.PersistentGameModeType;
class="kw">import com.hypixel.hytale.server.core.modules.entity.damage.DeathComponent;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class="kw">final class GameModeTypes {
   class="kw">private GameModeTypes() {
   }

   class="kw">public class="kw">static boolean isValidType(@Nullable String var0) {
      class="kw">return var0 != null && GameModeType.getAssetMap().getAsset(var0) != null;
   }

   @Nullable
   class="kw">public class="kw">static String getCurrentTypeId(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1) {
      PersistentGameModeType var2 = var1.getComponent(var0, PersistentGameModeType.getComponentType());
      class="kw">return var2 == null ? null : var2.getGameModeTypeId();
   }

   @Nullable
   class="kw">public class="kw">static GameModeType getCurrentType(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1) {
      String var2 = getCurrentTypeId(var0, var1);
      if (var2 != null) {
         GameModeType var3 = GameModeType.getAssetMap().getAsset(var2);
         if (var3 != null) {
            class="kw">return var3;
         }
      }

      Player var4 = var1.getComponent(var0, Player.getComponentType());
      class="kw">return var4 != null && var4.getGameMode() != null ? GameModeType.fromGameMode(var4.getGameMode()) : null;
   }

   class="kw">public class="kw">static boolean preventsItemDrops(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1) {
      GameModeType var2 = getCurrentType(var0, var1);
      class="kw">return var2 != null && Boolean.FALSE.equals(var2.getItemDrops());
   }

   class="kw">public class="kw">static boolean enter(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1, @Nonnull String var2) {
      GameModeType var3 = resolveOrThrow(var2);
      if (isInType(var0, var1)) {
         class="kw">return false;
      }

      if (var1.getArchetype(var0).contains(DeathComponent.getComponentType())) {
         class="kw">return false;
      }

      GameModeTypeEnterEvent var4 = new GameModeTypeEnterEvent(var2);
      var1.invoke(var0, var4);
      if (var4.isCancelled()) {
         class="kw">return false;
      }

      applyEnter(var0, var1, var3, var2);
      class="kw">return true;
   }

   class="kw">public class="kw">static boolean enterOnDeath(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1, @Nonnull String var2) {
      GameModeType var3 = resolveOrThrow(var2);
      if (var2.equals(getCurrentTypeId(var0, var1))) {
         var1.tryRemoveComponent(var0, DeathComponent.getComponentType());
         GameModeTypeState.apply(var0, var3, var1);
         class="kw">return true;
      }

      if (isInType(var0, var1) && !exit(var0, var1)) {
         class="kw">return false;
      }

      GameModeTypeEnterEvent var4 = new GameModeTypeEnterEvent(var2);
      var1.invoke(var0, var4);
      if (var4.isCancelled()) {
         class="kw">return false;
      }

      var1.tryRemoveComponent(var0, DeathComponent.getComponentType());
      applyEnter(var0, var1, var3, var2);
      class="kw">return true;
   }

   class="kw">public class="kw">static boolean exit(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1) {
      PersistentGameModeType var2 = var1.getComponent(var0, PersistentGameModeType.getComponentType());
      if (var2 == null) {
         class="kw">return false;
      }

      String var3 = var2.getGameModeTypeId();
      GameModeTypeExitEvent var4 = new GameModeTypeExitEvent(var3);
      var1.invoke(var0, var4);
      if (var4.isCancelled()) {
         class="kw">return false;
      }

      var1.tryRemoveComponent(var0, PersistentGameModeType.getComponentType());
      GameModeType var5 = GameModeType.getAssetMap().getAsset(var3);
      if (var5 == null) {
         GameModeTypeState.resetToBaseline(var0, var1);
      } else {
         GameModeTypeState.unapply(var0, var5, var1);
      }

      if (var5 == null || var5.getLockedCameraView() != null) {
         PlayerRef var6 = var1.getComponent(var0, PlayerRef.getComponentType());
         CameraManager var7 = var1.getComponent(var0, CameraManager.getComponentType());
         if (var6 != null && var7 != null) {
            var7.resetCamera(var6);
         }
      }

      Player var8 = var1.getComponent(var0, Player.getComponentType());
      if (var8 != null && var8.getGameMode() != null) {
         GameModeTypeState.runInteractionsOnEnter(var0, GameModeType.fromGameMode(var8.getGameMode()).getInteractionsOnEnter(), var1);
      }

      class="kw">return true;
   }

   class="kw">private class="kw">static void applyEnter(
      @Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1, @Nonnull GameModeType var2, @Nonnull String var3
   ) {
      var1.putComponent(var0, PersistentGameModeType.getComponentType(), new PersistentGameModeType(var3));
      GameModeTypeState.apply(var0, var2, var1);
      GameModeTypeState.runInteractionsOnEnter(var0, var2.getInteractionsOnEnter(), var1);
   }

   class="kw">private class="kw">static boolean isInType(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1) {
      class="kw">return var1.getArchetype(var0).contains(PersistentGameModeType.getComponentType());
   }

   @Nonnull
   class="kw">private class="kw">static GameModeType resolveOrThrow(@Nonnull String var0) {
      GameModeType var1 = GameModeType.getAssetMap().getAsset(var0);
      if (var1 == null) {
         throw new IllegalArgumentException("Unknown GameModeType: " + var0);
      } else {
         class="kw">return var1;
      }
   }
}