DataFixTypes.java
net.minecraft.util.datafix.DataFixTypes
信息
- 全限定名:net.minecraft.util.datafix.DataFixTypes
- 类型:public enum
- 包:net.minecraft.util.datafix
- 源码路径:src/main/java/net/minecraft/util/datafix/DataFixTypes.java
- 起始行号:L17
- 职责:
TODO
字段/常量
-
LEVEL, LIGHTWEIGHT_LEVEL, PLAYER, CHUNK, HOTBAR, OPTIONS, STRUCTURE, STATS, SAVED_DATA_COMMAND_STORAGE, SAVED_DATA_CUSTOM_BOSS_EVENTS, SAVED_DATA_ENDER_DRAGON_FIGHT, SAVED_DATA_GAME_RULES, SAVED_DATA_TICKETS, SAVED_DATA_MAP_DATA, SAVED_DATA_MAP_INDEX, SAVED_DATA_RAIDS, SAVED_DATA_RANDOM_SEQUENCES, SAVED_DATA_SCHEDULED_EVENTS, SAVED_DATA_SCOREBOARD, SAVED_DATA_STOPWATCHES, SAVED_DATA_STRUCTURE_FEATURE_INDICES, SAVED_DATA_WANDERING_TRADER, SAVED_DATA_WEATHER, SAVED_DATA_WORLD_BORDER, SAVED_DATA_WORLD_CLOCKS, SAVED_DATA_WORLD_GEN_SETTINGS, ADVANCEMENTS, POI_CHUNK, WORLD_GEN_SETTINGS, ENTITY_CHUNK, DEBUG_PROFILE- 类型:
LEVEL(References. - 修饰符:
package-private - 源码定位:
L18 - 说明:
TODO
- 类型:
-
TYPES_FOR_LEVEL_LIST- 类型:
Set<TypeReference> - 修饰符:
public static final - 源码定位:
L50 - 说明:
TODO
- 类型:
-
type- 类型:
TypeReference - 修饰符:
private final - 源码定位:
L51 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
private DataFixTypes(TypeReference type) @ L53
- 构造器名:DataFixTypes
- 源码定位:L53
- 修饰符:private
参数:
- type: TypeReference
说明:
TODO
方法
下面的方法块按源码顺序生成。
private static int currentVersion() @ L57
- 方法名:currentVersion
- 源码定位:L57
- 返回类型:int
- 修饰符:private static
参数:
- 无
说明:
TODO
public <A> Codec<A> wrapCodec(Codec<A> codec, DataFixer dataFixer, int defaultVersion) @ L61
- 方法名:wrapCodec
- 源码定位:L61
- 返回类型: Codec
- 修饰符:public
参数:
说明:
TODO
public <T> Dynamic<T> update(DataFixer fixerUpper, Dynamic<T> input, int fromVersion, int toVersion) @ L83
- 方法名:update
- 源码定位:L83
- 返回类型:
Dynamic - 修饰符:public
参数:
- fixerUpper: DataFixer
- input: Dynamic
- fromVersion: int
- toVersion: int
说明:
TODO
public <T> Dynamic<T> updateToCurrentVersion(DataFixer fixerUpper, Dynamic<T> input, int dataVersion) @ L87
- 方法名:updateToCurrentVersion
- 源码定位:L87
- 返回类型:
Dynamic - 修饰符:public
参数:
- fixerUpper: DataFixer
- input: Dynamic
- dataVersion: int
说明:
TODO
public CompoundTag update(DataFixer fixer, CompoundTag tag, int fromVersion, int toVersion) @ L91
- 方法名:update
- 源码定位:L91
- 返回类型:CompoundTag
- 修饰符:public
参数:
- fixer: DataFixer
- tag: CompoundTag
- fromVersion: int
- toVersion: int
说明:
TODO
public CompoundTag updateToCurrentVersion(DataFixer fixer, CompoundTag tag, int fromVersion) @ L95
- 方法名:updateToCurrentVersion
- 源码定位:L95
- 返回类型:CompoundTag
- 修饰符:public
参数:
- fixer: DataFixer
- tag: CompoundTag
- fromVersion: int
说明:
TODO
代码
public enum DataFixTypes {
LEVEL(References.LEVEL),
LEVEL_SUMMARY(References.LIGHTWEIGHT_LEVEL),
PLAYER(References.PLAYER),
CHUNK(References.CHUNK),
HOTBAR(References.HOTBAR),
OPTIONS(References.OPTIONS),
STRUCTURE(References.STRUCTURE),
STATS(References.STATS),
SAVED_DATA_COMMAND_STORAGE(References.SAVED_DATA_COMMAND_STORAGE),
SAVED_DATA_CUSTOM_BOSS_EVENTS(References.SAVED_DATA_CUSTOM_BOSS_EVENTS),
SAVED_DATA_ENDER_DRAGON_FIGHT(References.SAVED_DATA_ENDER_DRAGON_FIGHT),
SAVED_DATA_GAME_RULES(References.SAVED_DATA_GAME_RULES),
SAVED_DATA_FORCED_CHUNKS(References.SAVED_DATA_TICKETS),
SAVED_DATA_MAP_DATA(References.SAVED_DATA_MAP_DATA),
SAVED_DATA_MAP_INDEX(References.SAVED_DATA_MAP_INDEX),
SAVED_DATA_RAIDS(References.SAVED_DATA_RAIDS),
SAVED_DATA_RANDOM_SEQUENCES(References.SAVED_DATA_RANDOM_SEQUENCES),
SAVED_DATA_SCHEDULED_EVENTS(References.SAVED_DATA_SCHEDULED_EVENTS),
SAVED_DATA_SCOREBOARD(References.SAVED_DATA_SCOREBOARD),
SAVED_DATA_STOPWATCHES(References.SAVED_DATA_STOPWATCHES),
SAVED_DATA_STRUCTURE_FEATURE_INDICES(References.SAVED_DATA_STRUCTURE_FEATURE_INDICES),
SAVED_DATA_WANDERING_TRADER(References.SAVED_DATA_WANDERING_TRADER),
SAVED_DATA_WEATHER(References.SAVED_DATA_WEATHER),
SAVED_DATA_WORLD_BORDER(References.SAVED_DATA_WORLD_BORDER),
SAVED_DATA_WORLD_CLOCKS(References.SAVED_DATA_WORLD_CLOCKS),
SAVED_DATA_WORLD_GEN_SETTINGS(References.SAVED_DATA_WORLD_GEN_SETTINGS),
ADVANCEMENTS(References.ADVANCEMENTS),
POI_CHUNK(References.POI_CHUNK),
WORLD_GEN_SETTINGS(References.WORLD_GEN_SETTINGS),
ENTITY_CHUNK(References.ENTITY_CHUNK),
DEBUG_PROFILE(References.DEBUG_PROFILE);
public static final Set<TypeReference> TYPES_FOR_LEVEL_LIST;
private final TypeReference type;
private DataFixTypes(TypeReference type) {
this.type = type;
}
private static int currentVersion() {
return SharedConstants.getCurrentVersion().dataVersion().version();
}
public <A> Codec<A> wrapCodec(Codec<A> codec, DataFixer dataFixer, int defaultVersion) {
return new Codec<A>() {
{
Objects.requireNonNull(DataFixTypes.this);
}
@Override
public <T> DataResult<T> encode(A input, DynamicOps<T> ops, T prefix) {
return codec.encode(input, ops, prefix)
.flatMap(data -> ops.mergeToMap((T)data, ops.createString("DataVersion"), ops.createInt(DataFixTypes.currentVersion())));
}
@Override
public <T> DataResult<Pair<A, T>> decode(DynamicOps<T> ops, T input) {
int fromVersion = ops.get(input, "DataVersion").flatMap(ops::getNumberValue).map(Number::intValue).result().orElse(defaultVersion);
Dynamic<T> dataWithoutVersion = new Dynamic<>(ops, ops.remove(input, "DataVersion"));
Dynamic<T> fixedData = DataFixTypes.this.updateToCurrentVersion(dataFixer, dataWithoutVersion, fromVersion);
return codec.decode(fixedData);
}
};
}
public <T> Dynamic<T> update(DataFixer fixerUpper, Dynamic<T> input, int fromVersion, int toVersion) {
return fixerUpper.update(this.type, input, fromVersion, toVersion);
}
public <T> Dynamic<T> updateToCurrentVersion(DataFixer fixerUpper, Dynamic<T> input, int dataVersion) {
return this.update(fixerUpper, input, dataVersion, currentVersion());
}
public CompoundTag update(DataFixer fixer, CompoundTag tag, int fromVersion, int toVersion) {
return (CompoundTag)this.update(fixer, new Dynamic<>(NbtOps.INSTANCE, tag), fromVersion, toVersion).getValue();
}
public CompoundTag updateToCurrentVersion(DataFixer fixer, CompoundTag tag, int fromVersion) {
return this.update(fixer, tag, fromVersion, currentVersion());
}
static {
TYPES_FOR_LEVEL_LIST = Set.of(LEVEL_SUMMARY.type);
}
}