- Версия(и) Minecraft
- 1.12+
Нечасто, но все же возникают вопросы о том, как создать свой биом в игре в принципе и в 1.12+ в частности, так как там создание биома немножечко отличается даже от 1.11.2. Давайте сегодня раз и навсегда отрубим это дело одним тутором.
Для начала создадим класс BiomeInit - в нем мы создадим переменную типа Biome, зарегистрируем его, и добавим различных параметров.
Итак, теперь нам этот класс с инициализацией нужно подключить к моду. Я не понял куда лучше его вставлять, в ClientProxy или в Server, поэтому решил зарегистрировать в методе preInit главного класса.
Собственно, почти все готово, осталось только создать собственно сам биом.
Ну вот собственно и все, биом готов. Теперь с помощью различных ворлд-генераторов и биомдекораторов можно наш биом разнообразить, но это уже другая история)
Для начала создадим класс BiomeInit - в нем мы создадим переменную типа Biome, зарегистрируем его, и добавим различных параметров.
Java:
public class BiomeInit {
public static final Biome DEADFOREST = new BiomeDeadForest();
/*
Зарегистрируем биом, присвоим ему имя и зададим его типы.
Пусть он будет теплый - это обязательно!.Дальше немного из другого класса, но аналогичного,
добавим еще параметров(или один параметр) Пусть это будут теплые сухие лесные горы :D
Итак с этим конструктором, вроде все ясно.
*/
public static void registerBiomes() {
initBiome(DEADFOREST,"deadforest", BiomeType.WARM, Type.HILLS, Type.FOREST, Type.DRY);
}
/*
Что бы не писать по сто раз одно и тоже, добавим сразу в конструктор нашего биома базовые типы.
*/
public static Biome initBiome(Biome biome, String name, BiomeType biometype, Type... types) {
//Регистрируем биом в классе Biome
biome.setRegistryName(name);
//Регистрируем биом в фордже
ForgeRegistries.BIOMES.register(biome);
//Добавляем биом в биомдикшионари - для того взаимодействия с другими модами
BiomeDictionary.addTypes(biome, types);
//Добавляем биом, спавн биома и тип нашего биома в BiomeManager
//Тут создаем новые начальные параметры - высота биома и тип биома
BiomeManager.addBiome(biometype, new BiomeEntry(biome, 10));
BiomeManager.addSpawnBiome(biome);
BiomeManager.isTypeListModded(biometype);
return biome;
}
}
Собственно, почти все готово, осталось только создать собственно сам биом.
Java:
public class BiomeDeadForest extends Biome {
public BiomeDeadForest() {
//Переопределяем суперметод с установкой различных параметров биома -
/*
setBaseHeight - обычная высота биома
setHeightVariation - +- к обычной высоте
setTemperature - температура
setWaterColor- цвет воды в биоме
*/
super(new BiomeProperties("DEADFOREST").setBaseHeight(0.2F).setHeightVariation(0.05F).setTemperature(0.6F).setWaterColor(658944));
//Устанавливаем поверхностный и подповерхностный блоки - сверху будет земля, снизу будет бедрок
topBlock = Blocks.DIRT.getDefaultState();
fillerBlock = Blocks.BEDROCK.getDefaultState();
//здесь я очищаю лист биома от спавна существ всяких видов - это необязательно
//также вы можете написать this. и нажать Ctrl+Space и выбрать всякую разную всяччину
this.spawnableCaveCreatureList.clear();
this.spawnableCreatureList.clear();
this.spawnableMonsterList.clear();
this.spawnableWaterCreatureList.clear();
}
//Тут мы устанавливаем цвет неба в биоме.
@Override
@SideOnly (Side.CLIENT)
public int getSkyColorByTemp (float temp) {
return 658944 ;
}
}