BannerPatternFormatFix.java
net.minecraft.util.datafix.fixes.BannerPatternFormatFix
信息
- 全限定名:net.minecraft.util.datafix.fixes.BannerPatternFormatFix
- 类型:public class
- 包:net.minecraft.util.datafix.fixes
- 源码路径:src/main/java/net/minecraft/util/datafix/fixes/BannerPatternFormatFix.java
- 起始行号:L11
- 继承:NamedEntityFix
- 职责:
TODO
字段/常量
PATTERN_ID_MAP- 类型:
Map<String,String> - 修饰符:
private static final - 源码定位:
L12 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public BannerPatternFormatFix(Schema outputSchema) @ L56
- 构造器名:BannerPatternFormatFix
- 源码定位:L56
- 修饰符:public
参数:
- outputSchema: Schema
说明:
TODO
方法
下面的方法块按源码顺序生成。
protected Typed<?> fix(Typed<?> entity) @ L60
- 方法名:fix
- 源码定位:L60
- 返回类型:Typed<?>
- 修饰符:protected
参数:
- entity: Typed<?>
说明:
TODO
private static Dynamic<?> fixTag(Dynamic<?> tag) @ L65
- 方法名:fixTag
- 源码定位:L65
- 返回类型:Dynamic<?>
- 修饰符:private static
参数:
- tag: Dynamic<?>
说明:
TODO
private static Dynamic<?> fixLayer(Dynamic<?> dynamic) @ L69
- 方法名:fixLayer
- 源码定位:L69
- 返回类型:Dynamic<?>
- 修饰符:private static
参数:
- dynamic: Dynamic<?>
说明:
TODO
代码
public class BannerPatternFormatFix extends NamedEntityFix {
private static final Map<String, String> PATTERN_ID_MAP = Map.ofEntries(
Map.entry("b", "minecraft:base"),
Map.entry("bl", "minecraft:square_bottom_left"),
Map.entry("br", "minecraft:square_bottom_right"),
Map.entry("tl", "minecraft:square_top_left"),
Map.entry("tr", "minecraft:square_top_right"),
Map.entry("bs", "minecraft:stripe_bottom"),
Map.entry("ts", "minecraft:stripe_top"),
Map.entry("ls", "minecraft:stripe_left"),
Map.entry("rs", "minecraft:stripe_right"),
Map.entry("cs", "minecraft:stripe_center"),
Map.entry("ms", "minecraft:stripe_middle"),
Map.entry("drs", "minecraft:stripe_downright"),
Map.entry("dls", "minecraft:stripe_downleft"),
Map.entry("ss", "minecraft:small_stripes"),
Map.entry("cr", "minecraft:cross"),
Map.entry("sc", "minecraft:straight_cross"),
Map.entry("bt", "minecraft:triangle_bottom"),
Map.entry("tt", "minecraft:triangle_top"),
Map.entry("bts", "minecraft:triangles_bottom"),
Map.entry("tts", "minecraft:triangles_top"),
Map.entry("ld", "minecraft:diagonal_left"),
Map.entry("rd", "minecraft:diagonal_up_right"),
Map.entry("lud", "minecraft:diagonal_up_left"),
Map.entry("rud", "minecraft:diagonal_right"),
Map.entry("mc", "minecraft:circle"),
Map.entry("mr", "minecraft:rhombus"),
Map.entry("vh", "minecraft:half_vertical"),
Map.entry("hh", "minecraft:half_horizontal"),
Map.entry("vhr", "minecraft:half_vertical_right"),
Map.entry("hhb", "minecraft:half_horizontal_bottom"),
Map.entry("bo", "minecraft:border"),
Map.entry("cbo", "minecraft:curly_border"),
Map.entry("gra", "minecraft:gradient"),
Map.entry("gru", "minecraft:gradient_up"),
Map.entry("bri", "minecraft:bricks"),
Map.entry("glb", "minecraft:globe"),
Map.entry("cre", "minecraft:creeper"),
Map.entry("sku", "minecraft:skull"),
Map.entry("flo", "minecraft:flower"),
Map.entry("moj", "minecraft:mojang"),
Map.entry("pig", "minecraft:piglin")
);
public BannerPatternFormatFix(Schema outputSchema) {
super(outputSchema, false, "BannerPatternFormatFix", References.BLOCK_ENTITY, "minecraft:banner");
}
@Override
protected Typed<?> fix(Typed<?> entity) {
return entity.update(DSL.remainderFinder(), BannerPatternFormatFix::fixTag);
}
private static Dynamic<?> fixTag(Dynamic<?> tag) {
return tag.renameAndFixField("Patterns", "patterns", patterns -> patterns.createList(patterns.asStream().map(BannerPatternFormatFix::fixLayer)));
}
private static Dynamic<?> fixLayer(Dynamic<?> dynamic) {
dynamic = dynamic.renameAndFixField(
"Pattern",
"pattern",
pattern -> DataFixUtils.orElse(pattern.asString().map(id -> PATTERN_ID_MAP.getOrDefault(id, id)).map(pattern::createString).result(), pattern)
);
dynamic = dynamic.set("color", dynamic.createString(ExtraDataFixUtils.dyeColorIdToName(dynamic.get("Color").asInt(0))));
return dynamic.remove("Color");
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
ExtraDataFixUtils.dyeColorIdToName()
- 引用位置:
-
- 引用位置:
继承
- 引用位置:
-
- 引用位置:
参数/返回值
- 引用位置: