minecraft-src/net/minecraft/util/datafix/fixes/EntityMinecartIdentifiersFix.java
2025-07-04 01:41:11 +03:00

31 lines
1 KiB
Java

package net.minecraft.util.datafix.fixes;
import com.mojang.datafixers.DSL;
import com.mojang.datafixers.Typed;
import com.mojang.datafixers.schemas.Schema;
import com.mojang.datafixers.types.Type;
import com.mojang.datafixers.util.Pair;
import net.minecraft.Util;
public class EntityMinecartIdentifiersFix extends EntityRenameFix {
public EntityMinecartIdentifiersFix(Schema outputSchema) {
super("EntityMinecartIdentifiersFix", outputSchema, true);
}
@Override
protected Pair<String, Typed<?>> fix(String entityName, Typed<?> typed) {
if (!entityName.equals("Minecart")) {
return Pair.of(entityName, typed);
} else {
int i = typed.getOrCreate(DSL.remainderFinder()).get("Type").asInt(0);
String string = switch (i) {
case 1 -> "MinecartChest";
case 2 -> "MinecartFurnace";
default -> "MinecartRideable";
};
Type<?> type = (Type<?>)this.getOutputSchema().findChoiceType(References.ENTITY).types().get(string);
return Pair.of(string, Util.writeAndReadTypedOrThrow(typed, type, dynamic -> dynamic.remove("Type")));
}
}
}