EntityCatSplitFix.java

net.minecraft.util.datafix.fixes.EntityCatSplitFix

信息

  • 全限定名:net.minecraft.util.datafix.fixes.EntityCatSplitFix
  • 类型:public class
  • 包:net.minecraft.util.datafix.fixes
  • 源码路径:src/main/java/net/minecraft/util/datafix/fixes/EntityCatSplitFix.java
  • 起始行号:L8
  • 继承:SimpleEntityRenameFix
  • 职责:

    TODO

字段/常量

内部类/嵌套类型

构造器

public EntityCatSplitFix(Schema outputSchema, boolean changesType) @ L9

  • 构造器名:EntityCatSplitFix
  • 源码定位:L9
  • 修饰符:public

参数:

  • outputSchema: Schema
  • changesType: boolean

说明:

TODO

方法

下面的方法块按源码顺序生成。

protected Pair<String,Dynamic<?>> getNewNameAndTag(String name, Dynamic<?> tag) @ L13

  • 方法名:getNewNameAndTag
  • 源码定位:L13
  • 返回类型:Pair<String,Dynamic<?>>
  • 修饰符:protected

参数:

  • name: String
  • tag: Dynamic<?>

说明:

TODO

代码

public class EntityCatSplitFix extends SimpleEntityRenameFix {
    public EntityCatSplitFix(Schema outputSchema, boolean changesType) {
        super("EntityCatSplitFix", outputSchema, changesType);
    }
 
    @Override
    protected Pair<String, Dynamic<?>> getNewNameAndTag(String name, Dynamic<?> tag) {
        if (Objects.equals("minecraft:ocelot", name)) {
            int type = tag.get("CatType").asInt(0);
            if (type == 0) {
                String ownerName = tag.get("Owner").asString("");
                String ownerUUID = tag.get("OwnerUUID").asString("");
                if (!ownerName.isEmpty() || !ownerUUID.isEmpty()) {
                    tag.set("Trusting", tag.createBoolean(true));
                }
            } else if (type > 0 && type < 4) {
                tag = tag.set("CatType", tag.createInt(type));
                tag = tag.set("OwnerUUID", tag.createString(tag.get("OwnerUUID").asString("")));
                return Pair.of("minecraft:cat", tag);
            }
        }
 
        return Pair.of(name, tag);
    }
}

引用的其他类