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