package net.minecraft.world.level.biome;

import net.minecraft.world.entity.EntityTypes;
import net.minecraft.world.entity.EntityInsentient;

import com.bergerkiller.generated.net.minecraft.world.level.biome.BiomeSettingsMobsHandle.SpawnRateHandle;

class BiomeSettingsMobs {

    class BiomeSettingsMobs.SpawnRate {
#select version >=
#case 1.17: public (java.lang.Class<?>) EntityTypes entityClass:type;
#case 1.16: public (java.lang.Class<?>) EntityTypes entityClass:c;
#case 1.13: public (java.lang.Class<?>) EntityTypes entityClass:b;
#case else: public (java.lang.Class<?>) java.lang.Class<? extends EntityInsentient> entityClass:b;
#endselect

#if version >= 1.17
        public final int minSpawnCount:minCount;
        public final int maxSpawnCount:maxCount;
#elseif version >= 1.16
        public final int minSpawnCount:d;
        public final int maxSpawnCount:e;
#else
        public int minSpawnCount:c;
        public int maxSpawnCount:d;
#endif

        public int getWeight() {
#if version >= 1.18
            return instance.getWeight().asInt();
#elseif version >= 1.17
            #require net.minecraft.util.WeightedRandom.WeightedRandomChoice protected int weightWRC:weight;
            return instance#weightWRC;
#else
            #require net.minecraft.util.WeightedRandom.WeightedRandomChoice protected int weightWRC:a;
            return instance#weightWRC;
#endif
        }

#if version >= 1.13
        public (SpawnRateHandle) BiomeSettingsMobs.SpawnRate((java.lang.Class<?>) EntityTypes entityClass, int x, int y, int z);
#else
        public (SpawnRateHandle) BiomeSettingsMobs.SpawnRate((java.lang.Class<?>) java.lang.Class<? extends EntityInsentient> entityClass, int x, int y, int z);
#endif

    }

}
