CustomConnectedBlockTemplateAsset class
Пакет: com.hypixel.hytale.server.core.universe.world.connectedblocks
Файл: com/hypixel/hytale/server/core/universe/world/connectedblocks/CustomConnectedBlockTemplateAsset.java
implements: JsonAssetWithMap<String, DefaultAssetMap<String, CustomConnectedBlockTemplateAsset>>
Поля (6)
| Модификаторы | Тип | Имя |
|---|---|---|
|
|
ASSET_STORE |
|
ConnectedBlockShape |
var11 |
|
CustomTemplateConnectedBlockPattern[] |
var12 |
|
Optional |
var17 |
|
BlockPattern |
var18 |
|
BlockPattern.BlockEntry |
var19 |
Методы (7)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
for for(CustomTemplateConnectedBlockPattern var16 : var12) |
|
|
if if(ASSET_STORE == null) |
|
|
if if(var11 != null) |
|
|
if if(var12 != null) |
|
|
if if(var7) |
|
|
if if(var18 == null) |
public |
boolean |
isDontUpdateAfterInitialPlacementboolean isDontUpdateAfterInitialPlacement() |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.universe.world.connectedblocks;
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.map.MapCodec;
class="kw">import com.hypixel.hytale.codec.validation.ValidatorCache;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.BlockType;
class="kw">import com.hypixel.hytale.server.core.prefab.selection.mask.BlockPattern;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore;
class="kw">import java.util.HashMap;
class="kw">import java.util.Map;
class="kw">import java.util.Optional;
class="kw">import java.util.Map.Entry;
class="kw">import java.util.concurrent.ThreadLocalRandom;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3ic;
@Deprecated
class="kw">public class CustomConnectedBlockTemplateAsset class="kw">implements JsonAssetWithMap<String, DefaultAssetMap<String, CustomConnectedBlockTemplateAsset>> {
@Nonnull
class="kw">public class="kw">static class="kw">final AssetBuilderCodec<String, CustomConnectedBlockTemplateAsset> CODEC = AssetBuilderCodec.builder(
CustomConnectedBlockTemplateAsset.class,
CustomConnectedBlockTemplateAsset::new,
Codec.STRING,
(var0, var1) -> var0.id = var1,
var0 -> var0.id,
(var0, var1) -> var0.data = var1,
var0 -> var0.data
)
.append(
new KeyedCodec<>("DontUpdateAfterInitialPlacement", Codec.BOOLEAN, false),
(var0, var1) -> var0.dontUpdateAfterInitialPlacement = var1,
var0 -> var0.dontUpdateAfterInitialPlacement
)
.documentation(
"Default to false. When true, will not update the connected block after initial placement. Neighboring block updates won't affect this block when true."
)
.add()
.<Boolean>append(
new KeyedCodec<>("ConnectsToOtherMaterials", Codec.BOOLEAN, false),
(var0, var1) -> var0.connectsToOtherMaterials = var1,
var0 -> var0.connectsToOtherMaterials
)
.documentation(
"Defaults to true. If true, the material will connect to other materials of different block type sets, if false, the material will only connect to its own block types within the material"
)
.add()
.append(new KeyedCodec<>("DefaultShape", Codec.STRING, false), (var0, var1) -> var0.defaultShapeName = var1, var0 -> var0.defaultShapeName)
.add()
.append(
new KeyedCodec<>("Shapes", new MapCodec<>(ConnectedBlockShape.CODEC, HashMap::new), true),
(var0, var1) -> var0.connectedBlockShapes = var1,
var0 -> var0.connectedBlockShapes
)
.add()
.build();
@Nonnull
class="kw">public class="kw">static class="kw">final ValidatorCache<String> VALIDATOR_CACHE = new ValidatorCache<>(new AssetKeyValidator<>(CustomConnectedBlockTemplateAsset::getAssetStore));
class="kw">private class="kw">static AssetStore<String, CustomConnectedBlockTemplateAsset, DefaultAssetMap<String, CustomConnectedBlockTemplateAsset>> ASSET_STORE;
class="kw">private String id;
class="kw">private AssetExtraInfo.Data data;
class="kw">protected boolean connectsToOtherMaterials = true;
class="kw">private boolean dontUpdateAfterInitialPlacement;
class="kw">private String defaultShapeName;
class="kw">protected Map<String, ConnectedBlockShape> connectedBlockShapes;
class="kw">public CustomConnectedBlockTemplateAsset() {
}
@Nonnull
class="kw">public class="kw">static AssetStore<String, CustomConnectedBlockTemplateAsset, DefaultAssetMap<String, CustomConnectedBlockTemplateAsset>> getAssetStore() {
if (ASSET_STORE == null) {
ASSET_STORE = AssetRegistry.getAssetStore(CustomConnectedBlockTemplateAsset.class);
}
class="kw">return ASSET_STORE;
}
@Nonnull
class="kw">public class="kw">static DefaultAssetMap<String, CustomConnectedBlockTemplateAsset> getAssetMap() {
class="kw">return (DefaultAssetMap<String, CustomConnectedBlockTemplateAsset>)getAssetStore().getAssetMap();
}
@Nonnull
class="kw">public Optional<ConnectedBlocksUtil.ConnectedBlockResult> getConnectedBlockType(
@Nonnull ChunkStore var1,
@Nonnull Vector3ic var2,
@Nonnull CustomTemplateConnectedBlockRuleSet var3,
@Nonnull BlockType var4,
int var5,
@Nonnull Vector3ic var6,
boolean var7,
boolean var8
) {
for (Entry var10 : this.connectedBlockShapes.entrySet()) {
ConnectedBlockShape var11 = var10.getValue();
if (var11 != null) {
CustomTemplateConnectedBlockPattern[] var12 = var11.getPatternsToMatchAnyOf();
if (var12 != null) {
for (CustomTemplateConnectedBlockPattern var16 : var12) {
Optional var17 = var16.getConnectedBlockTypeKey(var10.getKey(), var1, var2, var3, var4, var5, var6, var8);
if (!var17.isEmpty()) {
class="kw">return var17;
}
}
}
}
}
if (var7) {
BlockPattern var18 = var3.getShapeNameToBlockPatternMap().get(this.defaultShapeName);
if (var18 == null) {
class="kw">return Optional.empty();
}
BlockPattern.BlockEntry var19 = var18.nextBlockTypeKey(ThreadLocalRandom.current());
class="kw">return var19 == null ? Optional.empty() : Optional.of(new ConnectedBlocksUtil.ConnectedBlockResult(var19.blockTypeKey(), var5));
} else {
class="kw">return Optional.empty();
}
}
class="kw">public boolean isDontUpdateAfterInitialPlacement() {
class="kw">return this.dontUpdateAfterInitialPlacement;
}
@Nonnull
class="kw">public String getId() {
class="kw">return this.id;
}
}