StateData class
Пакет: com.hypixel.hytale.server.core.asset.type.blocktype.config
Файл: com/hypixel/hytale/server/core/asset/type/blocktype/config/StateData.java
Поля (6)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
String |
NULL_STATE_ID |
|
String |
var1 |
|
Map |
var2 |
|
Map |
var2 |
|
String |
var5 |
|
int |
var6 |
Методы (6)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
static |
void |
addDefinitionsvoid addDefinitions() |
public |
void |
copyFromvoid copyFrom(@Nullable StateData var1) |
|
|
if if(var0.stateToBlock != null) |
|
|
if if(this.stateToBlock == null) |
|
|
if if(var6 != Integer.MIN_VALUE) |
|
|
if if(var1 != null && this.stateToBlock == null) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.asset.type.blocktype.config;
class="kw">import com.hypixel.hytale.assetstore.AssetExtraInfo;
class="kw">import com.hypixel.hytale.assetstore.codec.ContainedAssetCodec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.codecs.map.MapCodec;
class="kw">import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap;
class="kw">import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
class="kw">import java.util.Collections;
class="kw">import java.util.HashMap;
class="kw">import java.util.Map;
class="kw">import java.util.Set;
class="kw">import java.util.Map.Entry;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class StateData {
class="kw">public class="kw">static class="kw">final String NULL_STATE_ID = "class="kw">default";
class="kw">public class="kw">static class="kw">final BuilderCodec.Builder<StateData> CODEC_BUILDER = BuilderCodec.builder(StateData.class, StateData::new).afterDecode((var0, var1) -> {
if (var0.stateToBlock != null) {
Map var2 = new Object2ObjectOpenHashMap();
for (Entry var4 : var0.stateToBlock.entrySet()) {
var2.put(var4.getValue(), var4.getKey());
}
var0.blockToState = Collections.unmodifiableMap(var2);
}
});
class="kw">public class="kw">static class="kw">final BuilderCodec<StateData> CODEC = CODEC_BUILDER.build();
class="kw">private Map<String, String> stateToBlock;
class="kw">private Map<String, String> blockToState;
class="kw">protected StateData() {
}
@Nullable
class="kw">public String getBlockForState(String var1) {
class="kw">return this.stateToBlock == null ? null : this.stateToBlock.get(var1);
}
@Nullable
class="kw">public String getStateForBlock(String var1) {
class="kw">return this.blockToState == null ? null : this.blockToState.get(var1);
}
@Nullable
class="kw">public Set<String> getStateNames() {
class="kw">return this.stateToBlock == null ? null : this.stateToBlock.keySet();
}
@Nullable
class="kw">public Map<String, Integer> toPacket(@Nonnull BlockType var1) {
if (this.stateToBlock == null) {
class="kw">return null;
}
Map var2 = new Object2IntOpenHashMap();
for (String var4 : this.stateToBlock.keySet()) {
String var5 = var1.getBlockKeyForState(var4);
int var6 = BlockType.getAssetMap().getIndex(var5);
if (var6 != Integer.MIN_VALUE) {
var2.put(var4, var6);
}
}
class="kw">return var2;
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "StateData{stateToBlock='" + this.stateToBlock + "'}";
}
class="kw">public void copyFrom(@Nullable StateData var1) {
if (var1 != null && this.stateToBlock == null) {
this.stateToBlock = var1.stateToBlock;
this.blockToState = var1.blockToState;
}
}
class="kw">static void addDefinitions() {
CODEC_BUILDER.append(
new KeyedCodec<>(
"Definitions",
new MapCodec(
new ContainedAssetCodec<>(BlockType.class, BlockType.CODEC, ContainedAssetCodec.Mode.INJECT_PARENT, StateData::generateBlockKey),
HashMap::new
)
),
(var0, var1) -> var0.stateToBlock = var1,
var0 -> var0.stateToBlock
)
.add();
}
@Nonnull
class="kw">private class="kw">static String generateBlockKey(@Nonnull AssetExtraInfo<String> var0) {
String var1 = var0.getKey();
class="kw">return "*" + var1 + "_" + var0.peekKey('_');
}
}