PatternedConnectedBlockRuleSetAsset class
Пакет: com.hypixel.hytale.server.core.universe.world.connectedblocks.config
Файл: com/hypixel/hytale/server/core/universe/world/connectedblocks/config/PatternedConnectedBlockRuleSetAsset.java
implements: JsonAssetWithMap<String, DefaultAssetMap<String, PatternedConnectedBlockRuleSetAsset>>
Поля (3)
| Модификаторы | Тип | Имя |
|---|---|---|
|
|
ASSET_STORE |
final |
AssetBuilderCodec<String, PatternedConnectedBlockRuleSetAsset> |
CODEC |
|
ConnectedBlockRuleSetAsset |
var1 |
Методы (9)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
for for(int var4 = 0; var4 < this.patterns.length; var4++) |
static |
DefaultAssetMap<String, PatternedConnectedBlockRuleSetAsset> |
getAssetMapDefaultAssetMap<String, PatternedConnectedBlockRuleSetAsset> getAssetMap() |
static |
AssetStore<String, PatternedConnectedBlockRuleSetAsset, DefaultAssetMap<String, PatternedConnectedBlockRuleSetAsset>> |
getAssetStoreAssetStore<String, PatternedConnectedBlockRuleSetAsset, DefaultAssetMap<String, PatternedConnectedBlockRuleSetAsset>> getAssetStore() |
public |
String |
getIdString getId() |
public |
ConnectedBlockPatternConfig[] |
getPatternsConnectedBlockPatternConfig[] getPatterns() |
public |
Map<String, ConnectedBlockShapeConfig> |
getShapesMap<String, ConnectedBlockShapeConfig> getShapes() |
public |
ConnectedBlockUpdateMode |
getUpdateModeConnectedBlockUpdateMode getUpdateMode() |
|
|
if if(ASSET_STORE == null) |
|
|
if if(this.patterns != null) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.universe.world.connectedblocks.config;
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.codecs.EnumCodec;
class="kw">import com.hypixel.hytale.codec.codecs.array.ArrayCodec;
class="kw">import com.hypixel.hytale.codec.codecs.map.MapCodec;
class="kw">import com.hypixel.hytale.codec.validation.ValidatorCache;
class="kw">import com.hypixel.hytale.codec.validation.Validators;
class="kw">import com.hypixel.hytale.protocol.ConnectedBlockPattern;
class="kw">import com.hypixel.hytale.protocol.ConnectedBlockRuleSetAsset;
class="kw">import com.hypixel.hytale.server.core.universe.world.connectedblocks.ConnectedBlockUpdateMode;
class="kw">import com.hypixel.hytale.server.core.universe.world.connectedblocks.config.shape.ConnectedBlockShapeConfig;
class="kw">import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
class="kw">import java.util.HashMap;
class="kw">import java.util.Map;
class="kw">import java.util.Map.Entry;
class="kw">import javax.annotation.Nonnull;
class="kw">public class PatternedConnectedBlockRuleSetAsset class="kw">implements JsonAssetWithMap<String, DefaultAssetMap<String, PatternedConnectedBlockRuleSetAsset>> {
class="kw">public class="kw">static class="kw">final AssetBuilderCodec<String, PatternedConnectedBlockRuleSetAsset> CODEC = AssetBuilderCodec.builder(
PatternedConnectedBlockRuleSetAsset.class,
PatternedConnectedBlockRuleSetAsset::new,
Codec.STRING,
(var0, var1) -> var0.id = var1,
var0 -> var0.id,
(var0, var1) -> var0.data = var1,
var0 -> var0.data
)
.appendInherited(
new KeyedCodec<>("Patterns", new ArrayCodec<>(ConnectedBlockPatternConfig.CODEC, ConnectedBlockPatternConfig[]::new), true),
(var0, var1) -> var0.patterns = var1,
var0 -> var0.patterns,
(var0, var1) -> var0.patterns = var1.patterns
)
.addValidator(Validators.nonNull())
.add()
.<Map>appendInherited(
new KeyedCodec<>("Shapes", new MapCodec<>(ConnectedBlockShapeConfig.CODEC, HashMap::new), true),
(var0, var1) -> var0.shapes.putAll(var1),
var0 -> var0.shapes,
(var0, var1) -> var0.shapes.putAll(var1.shapes)
)
.addValidator(Validators.nonNull())
.add()
.appendInherited(
new KeyedCodec<>("UpdateMode", new EnumCodec<>(ConnectedBlockUpdateMode.class), false),
(var0, var1) -> var0.updateMode = var1,
var0 -> var0.updateMode,
(var0, var1) -> var0.updateMode = var1.updateMode
)
.add()
.build();
class="kw">public class="kw">static class="kw">final ValidatorCache<String> VALIDATOR_CACHE = new ValidatorCache<>(
new AssetKeyValidator<>(PatternedConnectedBlockRuleSetAsset::getAssetStore)
);
class="kw">private class="kw">static AssetStore<String, PatternedConnectedBlockRuleSetAsset, DefaultAssetMap<String, PatternedConnectedBlockRuleSetAsset>> ASSET_STORE;
class="kw">private ConnectedBlockUpdateMode updateMode = ConnectedBlockUpdateMode.PlaceUpdate;
class="kw">private String id;
class="kw">private AssetExtraInfo.Data data;
class="kw">private ConnectedBlockPatternConfig[] patterns;
class="kw">private class="kw">final Map<String, ConnectedBlockShapeConfig> shapes = new Object2ObjectOpenHashMap();
class="kw">public PatternedConnectedBlockRuleSetAsset() {
}
class="kw">public class="kw">static AssetStore<String, PatternedConnectedBlockRuleSetAsset, DefaultAssetMap<String, PatternedConnectedBlockRuleSetAsset>> getAssetStore() {
if (ASSET_STORE == null) {
ASSET_STORE = AssetRegistry.getAssetStore(PatternedConnectedBlockRuleSetAsset.class);
}
class="kw">return ASSET_STORE;
}
class="kw">public class="kw">static DefaultAssetMap<String, PatternedConnectedBlockRuleSetAsset> getAssetMap() {
class="kw">return (DefaultAssetMap<String, PatternedConnectedBlockRuleSetAsset>)getAssetStore().getAssetMap();
}
class="kw">public String getId() {
class="kw">return this.id;
}
class="kw">public ConnectedBlockPatternConfig[] getPatterns() {
class="kw">return this.patterns;
}
class="kw">public Map<String, ConnectedBlockShapeConfig> getShapes() {
class="kw">return this.shapes;
}
class="kw">public ConnectedBlockUpdateMode getUpdateMode() {
class="kw">return this.updateMode;
}
@Nonnull
class="kw">public ConnectedBlockRuleSetAsset toPacket() {
ConnectedBlockRuleSetAsset var1 = new ConnectedBlockRuleSetAsset();
var1.id = this.id;
var1.updateMode = class="kw">switch (this.updateMode) {
case PlaceUpdate -> com.hypixel.hytale.protocol.ConnectedBlockUpdateMode.PlaceUpdate;
case UpdatePlaceUpdate -> com.hypixel.hytale.protocol.ConnectedBlockUpdateMode.UpdatePlaceUpdate;
case IgnoreUpdates -> com.hypixel.hytale.protocol.ConnectedBlockUpdateMode.IgnoreUpdates;
};
var1.shapes = new HashMap<>(this.shapes.size());
for (Entry var3 : this.shapes.entrySet()) {
var1.shapes.put(var3.getKey(), var3.getValue().toPacket());
}
if (this.patterns != null) {
var1.patterns = new ConnectedBlockPattern[this.patterns.length];
for (int var4 = 0; var4 < this.patterns.length; var4++) {
var1.patterns[var4] = this.patterns[var4].toPacket();
}
}
class="kw">return var1;
}
}