BlockMaskAsset class

Пакет: com.hypixel.hytale.builtin.hytalegenerator.assets.blockmask

Файл: com/hypixel/hytale/builtin/hytalegenerator/assets/blockmask/BlockMaskAsset.java

implements: JsonAssetWithMap<String, DefaultAssetMap<String, BlockMaskAsset>>, Cleanable

Поля (6)

МодификаторыТипИмя
public BlockMaskAsset asset
BlockMaskAsset.Exported var1
MaterialSet var2
MaterialSet var3
BlockMask var4
BlockMaskAsset.Exported var9

Методы (7)

МодификаторыВозвратСигнатура
abstract return new BlockMaskreturn new BlockMask()
public Exportedpublic Exported()
public BlockMask buildBlockMask build(@Nonnull MaterialCache var1)
for for(BlockMaskEntryAsset var8 : this.blockMaskEntries)
for for(BlockMaskEntryAsset var4 : this.blockMaskEntries)
public String getIdString getId()
if if(var9 != null && var9.asset != null)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.hytalegenerator.assets.blockmask;

class="kw">import com.hypixel.hytale.assetstore.AssetExtraInfo;
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.builtin.hytalegenerator.BlockMask;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.LoggerUtil;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.MaterialSet;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.Cleanable;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.blockset.MaterialSetAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.material.MaterialCache;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.codecs.array.ArrayCodec;
class="kw">import java.util.HashMap;
class="kw">import java.util.Map;
class="kw">import javax.annotation.Nonnull;

class="kw">public class BlockMaskAsset class="kw">implements JsonAssetWithMap<String, DefaultAssetMap<String, BlockMaskAsset>>, Cleanable {
   @Nonnull
   class="kw">private class="kw">static class="kw">final Map<String, BlockMaskAsset.Exported> exportedNodes = new HashMap<>();
   @Nonnull
   class="kw">public class="kw">static class="kw">final AssetBuilderCodec<String, BlockMaskAsset> CODEC = AssetBuilderCodec.builder(
         BlockMaskAsset.class,
         BlockMaskAsset::new,
         Codec.STRING,
         (var0, var1) -> var0.id = var1,
         var0 -> var0.id,
         (var0, var1) -> var0.data = var1,
         var0 -> var0.data
      )
      .append(
         new KeyedCodec<>("DontPlace", MaterialSetAsset.CODEC, false),
         (var0, var1) -> var0.dontPlaceMaterialSetAsset = var1,
         var0 -> var0.dontPlaceMaterialSetAsset
      )
      .add()
      .append(
         new KeyedCodec<>("DontReplace", MaterialSetAsset.CODEC, false),
         (var0, var1) -> var0.dontReplaceMaterialSetAsset = var1,
         var0 -> var0.dontReplaceMaterialSetAsset
      )
      .add()
      .append(
         new KeyedCodec<>("Advanced", new ArrayCodec<>(BlockMaskEntryAsset.CODEC, BlockMaskEntryAsset[]::new), false),
         (var0, var1) -> var0.blockMaskEntries = var1,
         var0 -> var0.blockMaskEntries
      )
      .add()
      .append(new KeyedCodec<>("ExportAs", Codec.STRING, false), (var0, var1) -> var0.exportName = var1, var0 -> var0.exportName)
      .add()
      .append(new KeyedCodec<>("Import", Codec.STRING, false), (var0, var1) -> var0.importName = var1, var0 -> var0.importName)
      .add()
      .afterDecode(var0 -> {
         if (var0.exportName != null && !var0.exportName.isEmpty()) {
            if (exportedNodes.containsKey(var0.exportName)) {
               LoggerUtil.getLogger().warning("Duplicate export name for asset: " + var0.exportName);
            }

            BlockMaskAsset.Exported var1 = new BlockMaskAsset.Exported();
            var1.asset = var0;
            exportedNodes.put(var0.exportName, var1);
            LoggerUtil.getLogger().fine("Registered imported node asset with name '" + var0.exportName + "' with asset id '" + var0.id);
         }
      })
      .build();
   class="kw">private String id;
   class="kw">private AssetExtraInfo.Data data;
   class="kw">protected String exportName = "";
   class="kw">protected String importName = "";
   class="kw">private MaterialSetAsset dontPlaceMaterialSetAsset = new MaterialSetAsset();
   class="kw">private MaterialSetAsset dontReplaceMaterialSetAsset = new MaterialSetAsset();
   class="kw">private BlockMaskEntryAsset[] blockMaskEntries = new BlockMaskEntryAsset[0];

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

   class="kw">public BlockMask build(@Nonnull MaterialCache var1) {
      if (this.importName != null && !this.importName.isEmpty()) {
         BlockMaskAsset.Exported var9 = exportedNodes.get(this.importName);
         if (var9 != null && var9.asset != null) {
            class="kw">return var9.asset.build(var1);
         }

         LoggerUtil.getLogger().warning("Imported BlockMask asset with name '" + this.importName + "' not found");
         class="kw">return new BlockMask();
      } else {
         MaterialSet var2 = this.dontPlaceMaterialSetAsset == null ? new MaterialSet() : this.dontPlaceMaterialSetAsset.build(var1);
         MaterialSet var3 = this.dontReplaceMaterialSetAsset == null ? new MaterialSet() : this.dontReplaceMaterialSetAsset.build(var1);
         BlockMask var4 = new BlockMask();
         var4.setSkippedBlocks(var2);
         var4.setDefaultMask(var3);

         for (BlockMaskEntryAsset var8 : this.blockMaskEntries) {
            var4.putBlockMaskEntry(var8.getPropBlockSet(var1), var8.getReplacesBlockSet(var1));
         }

         class="kw">return var4;
      }
   }

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

   @Override
   class="kw">public void cleanUp() {
      this.dontPlaceMaterialSetAsset.cleanUp();
      this.dontReplaceMaterialSetAsset.cleanUp();

      for (BlockMaskEntryAsset var4 : this.blockMaskEntries) {
         var4.cleanUp();
      }
   }

   class="kw">public class="kw">static class Exported {
      class="kw">public BlockMaskAsset asset;

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