Newer
Older
void-pack-super-server / work / decompile-ee3ecae0 / net / minecraft / server / VillagerData.java
package net.minecraft.server;

import com.google.common.collect.ImmutableMap;
import com.mojang.datafixers.Dynamic;
import com.mojang.datafixers.types.DynamicOps;

public class VillagerData {

    private static final int[] a = new int[]{0, 10, 70, 150, 250};
    private final VillagerType b;
    private final VillagerProfession c;
    private final int d;

    public VillagerData(VillagerType villagertype, VillagerProfession villagerprofession, int i) {
        this.b = villagertype;
        this.c = villagerprofession;
        this.d = Math.max(1, i);
    }

    public VillagerData(Dynamic<?> dynamic) {
        this((VillagerType) IRegistry.VILLAGER_TYPE.get(MinecraftKey.a(dynamic.get("type").asString(""))), (VillagerProfession) IRegistry.VILLAGER_PROFESSION.get(MinecraftKey.a(dynamic.get("profession").asString(""))), dynamic.get("level").asInt(1));
    }

    public VillagerType getType() {
        return this.b;
    }

    public VillagerProfession getProfession() {
        return this.c;
    }

    public int getLevel() {
        return this.d;
    }

    public VillagerData withType(VillagerType villagertype) {
        return new VillagerData(villagertype, this.c, this.d);
    }

    public VillagerData withProfession(VillagerProfession villagerprofession) {
        return new VillagerData(this.b, villagerprofession, this.d);
    }

    public VillagerData withLevel(int i) {
        return new VillagerData(this.b, this.c, i);
    }

    public <T> T a(DynamicOps<T> dynamicops) {
        return dynamicops.createMap(ImmutableMap.of(dynamicops.createString("type"), dynamicops.createString(IRegistry.VILLAGER_TYPE.getKey(this.b).toString()), dynamicops.createString("profession"), dynamicops.createString(IRegistry.VILLAGER_PROFESSION.getKey(this.c).toString()), dynamicops.createString("level"), dynamicops.createInt(this.d)));
    }

    public static int c(int i) {
        return d(i) ? VillagerData.a[i] : 0;
    }

    public static boolean d(int i) {
        return i >= 1 && i < 5;
    }
}