PortalType class

Пакет: com.hypixel.hytale.server.core.asset.type.portalworld

Файл: com/hypixel/hytale/server/core/asset/type/portalworld/PortalType.java

implements: JsonAssetWithMap<String, DefaultAssetMap<String, PortalType>>

Поля (2)

МодификаторыТипИмя
ASSET_STORE
final AssetBuilderCodec<String, PortalType> CODEC

Методы (12)

МодификаторыВозвратСигнатура
static DefaultAssetMap<String, PortalType> getAssetMapDefaultAssetMap<String, PortalType> getAssetMap()
static AssetStore<String, PortalType, DefaultAssetMap<String, PortalType>> getAssetStoreAssetStore<String, PortalType, DefaultAssetMap<String, PortalType>> getAssetStore()
public Set<String> getCursedItemsSet<String> getCursedItems()
public PortalDescription getDescriptionPortalDescription getDescription()
public Message getDisplayNameMessage getDisplayName()
public String getGameplayConfigIdString getGameplayConfigId()
public String getIdString getId()
public String getInstanceIdString getInstanceId()
public PortalSpawnConfig getSpawnPortalSpawnConfig getSpawn()
if if(ASSET_STORE == null)
public boolean isCloseWhenEmptyboolean isCloseWhenEmpty()
public boolean isVoidInvasionEnabledboolean isVoidInvasionEnabled()

Исходный код

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

class="kw">import com.hypixel.hytale.assetstore.AssetExtraInfo;
class="kw">import com.hypixel.hytale.assetstore.AssetKeyValidator;
class="kw">import com.hypixel.hytale.assetstore.AssetRegistry;
class="kw">import com.hypixel.hytale.assetstore.AssetStore;
class="kw">import com.hypixel.hytale.assetstore.codec.AssetBuilderCodec;
class="kw">import com.hypixel.hytale.assetstore.map.DefaultAssetMap;
class="kw">import com.hypixel.hytale.assetstore.map.JsonAssetWithMap;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.validation.ValidatorCache;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.asset.type.gameplay.GameplayConfig;
class="kw">import java.util.Collections;
class="kw">import java.util.Set;
class="kw">import javax.annotation.Nullable;

class="kw">public class PortalType class="kw">implements JsonAssetWithMap<String, DefaultAssetMap<String, PortalType>> {
   class="kw">public class="kw">static class="kw">final AssetBuilderCodec<String, PortalType> CODEC = AssetBuilderCodec.builder(
         PortalType.class, PortalType::new, Codec.STRING, (var0, var1) -> var0.id = var1, var0 -> var0.id, (var0, var1) -> var0.data = var1, var0 -> var0.data
      )
      .append(new KeyedCodec<>("InstanceId", Codec.STRING), (var0, var1) -> var0.instanceId = var1, var0 -> var0.instanceId)
      .documentation("The instance id (folder name in Assets/Server/Instances) that this instance loads.")
      .add()
      .<PortalDescription>append(new KeyedCodec<>("Description", PortalDescription.CODEC), (var0, var1) -> var0.description = var1, var0 -> var0.description)
      .documentation("The qualitative description of the portal.")
      .add()
      .<String[]>append(
         new KeyedCodec<>("CursedItems", Codec.STRING_ARRAY),
         (var0, var1) -> var0.cursedItems = var1 == null ? Collections.emptySet() : Set.of(var1),
         var0 -> var0.cursedItems.toArray(String[]::new)
      )
      .documentation("Which item drops are cursed when spawned in this portal.")
      .add()
      .<Boolean>append(
         new KeyedCodec<>("VoidInvasionEnabled", Codec.BOOLEAN), (var0, var1) -> var0.voidInvasionEnabled = var1, var0 -> var0.voidInvasionEnabled
      )
      .documentation("Whether the void invasion is enabled for this portal.")
      .add()
      .<String>append(new KeyedCodec<>("GameplayConfig", Codec.STRING), (var0, var1) -> var0.gameplayConfig = var1, var0 -> var0.gameplayConfig)
      .documentation("The ID of the GameplayConfig asset for worlds spawned with this portal type.")
      .add()
      .<PortalSpawnConfig>append(new KeyedCodec<>("Spawn", PortalSpawnConfig.CODEC), (var0, var1) -> var0.spawn = var1, var0 -> var0.spawn)
      .documentation("Configs related to spawning into the portal fragment's instance.")
      .add()
      .<Boolean>append(new KeyedCodec<>("CloseWhenEmpty", Codec.BOOLEAN), (var0, var1) -> var0.closeWhenEmpty = var1, var0 -> var0.closeWhenEmpty)
      .documentation("Whether the portal and the world should be closed when empty.")
      .add()
      .build();
   class="kw">private class="kw">static AssetStore<String, PortalType, DefaultAssetMap<String, PortalType>> ASSET_STORE;
   class="kw">public class="kw">static class="kw">final ValidatorCache<String> VALIDATOR_CACHE = new ValidatorCache<>(new AssetKeyValidator<>(PortalType::getAssetStore));
   class="kw">private AssetExtraInfo.Data data;
   class="kw">private String id;
   class="kw">private String instanceId;
   class="kw">private PortalDescription description;
   class="kw">private String gameplayConfig = "Portal";
   class="kw">private boolean voidInvasionEnabled = false;
   class="kw">private Set<String> cursedItems = Collections.emptySet();
   class="kw">private PortalSpawnConfig spawn = new PortalSpawnConfig();
   class="kw">private boolean closeWhenEmpty = true;

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

   class="kw">public class="kw">static AssetStore<String, PortalType, DefaultAssetMap<String, PortalType>> getAssetStore() {
      if (ASSET_STORE == null) {
         ASSET_STORE = AssetRegistry.getAssetStore(PortalType.class);
      }

      class="kw">return ASSET_STORE;
   }

   class="kw">public class="kw">static DefaultAssetMap<String, PortalType> getAssetMap() {
      class="kw">return (DefaultAssetMap<String, PortalType>)getAssetStore().getAssetMap();
   }

   class="kw">public String getId() {
      class="kw">return this.id;
   }

   class="kw">public String getInstanceId() {
      class="kw">return this.instanceId;
   }

   class="kw">public Message getDisplayName() {
      class="kw">return this.description.getDisplayName();
   }

   class="kw">public PortalDescription getDescription() {
      class="kw">return this.description;
   }

   class="kw">public Set<String> getCursedItems() {
      class="kw">return this.cursedItems;
   }

   class="kw">public String getGameplayConfigId() {
      class="kw">return this.gameplayConfig;
   }

   class="kw">public boolean isVoidInvasionEnabled() {
      class="kw">return this.voidInvasionEnabled;
   }

   class="kw">public PortalSpawnConfig getSpawn() {
      class="kw">return this.spawn;
   }

   @Nullable
   class="kw">public GameplayConfig getGameplayConfig() {
      class="kw">return GameplayConfig.getAssetMap().getAsset(this.gameplayConfig);
   }

   class="kw">public boolean isCloseWhenEmpty() {
      class="kw">return this.closeWhenEmpty;
   }
}