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