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() {
}
}
}