- 68
- 0
Всем привет. Давно не занимался моддингом и давно не оставлял тут своих тупых вопросов
Очередной вопрос. Я создал несколько видов растений и теперь хочу генерировать их в мире. Собственно с генерацией мне уже помогли, но появилась одна проблема, которая меня очень смущает: когда я генерирую растения в мире появляются далеко не все растения. Я испробовал все, выносил все в один огромный класс-генератор, разделял их на множество классов-генераторов - все равно не работает, хоть ты лопни.
Собственно, сами растения генерирую так (приведу лишь один класс-генератор, сами генерации отличаются только по типам биомов и, что очевидно, генерируюемыми блоками):
Регистрация в init главного класса:
Кстати, когда манипуляции с классами-генераторами ничего не дали попробовал пошвырять регистрации из одного места в другое: после регистрацией блока, в начала init'a, в конце init'a - тоже ничего не дало.
Ткните носом, пожалуйста, понимаю, что ошибка идиотская. Заранее благодарю за помощь :3
Очередной вопрос. Я создал несколько видов растений и теперь хочу генерировать их в мире. Собственно с генерацией мне уже помогли, но появилась одна проблема, которая меня очень смущает: когда я генерирую растения в мире появляются далеко не все растения. Я испробовал все, выносил все в один огромный класс-генератор, разделял их на множество классов-генераторов - все равно не работает, хоть ты лопни.
Собственно, сами растения генерирую так (приведу лишь один класс-генератор, сами генерации отличаются только по типам биомов и, что очевидно, генерируюемыми блоками):
Код:
public class LilyPandaGen implements IWorldGenerator {
@Override
public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) {
switch(world.provider.dimensionId){
case -1:generateNether(world, random, chunkX * 16, chunkZ * 16);break;
case 0:generateSurface(world, random, chunkX * 16, chunkZ * 16);break;
case 1:generateEnd(world, random, chunkX * 16, chunkZ * 16);break;
}
}
private void generateEnd(World world, Random random, int i, int j) {
}
private void generateSurface(World world, Random random, int i, int j) {
i += random.nextInt(16);
j += random.nextInt(16);
[color=#333333]if (world.getBiomeGenForCoords(i, j).biomeID == BiomeGenBase.extremeHills.biomeID || world.getBiomeGenForCoords(i, j).biomeID == BiomeGenBase.extremeHillsEdge.biomeID) {
[color=#333333]for (int k = 1; k < world.getHeight(); ++k) {[/color]
[color=#333333]if (world.getBlockId(i, k - 1, j) == Block.grass.blockID && world.isAirBlock(i, k, j)) {
[color=#333333]world.setBlock(i, k, j, BendingMod.lilyPanda.blockID);[/color]
[color=#333333]}[/color]
}
[color=#333333]}[/color]
[color=#333333]}[/color]
[color=#333333]private void generateNether(World world, Random random, int i, int j) {[/color]
[color=#333333]}[/color]
[color=#333333]}[/color]
[color=#333333]
Код:
[color=#333333] GameRegistry.registerWorldGenerator(new LilyPandaGen());[/color]
[color=#333333]
Ткните носом, пожалуйста, понимаю, что ошибка идиотская. Заранее благодарю за помощь :3