- 1,976
- 68
- 220
Доброго времени суток, господа о/
Сколько бы я не пытался, но генерироваться эти чёртовы цветы не хотят, и хоть ты тресни. Пробовал и через генерацию, и через декоратор... Ничего. Подскажите, что не так?
Вообще, вот весь код, который может пригодится в понимании данной проблемы - тык
или, если та не работает - тык - путь /src/main/java/alfheim/common/world/dim/
Очень надеюсь на вашу помощь, ибо каждый день промедления затягивает релиз, а это не очень хорошо, мне ещё баги искать... :angel:
Заранее спасибо :3
Сколько бы я не пытался, но генерироваться эти чёртовы цветы не хотят, и хоть ты тресни. Пробовал и через генерацию, и через декоратор... Ничего. Подскажите, что не так?
Код:
@Override
public void populate(IChunkProvider par1IChunkProvider, int par2, int par3) {
int var4 = par2 * 16;
int var5 = par3 * 16;
BiomeGenAlfheim biome = (BiomeGenAlfheim) this.worldObj.getBiomeGenForCoords(var4 + 16, var5 + 16);
long p1 = this.rand.nextLong() / 2L * 2L + 1L;
long j1 = this.rand.nextLong() / 2L * 2L + 1L;
this.rand.setSeed(this.worldObj.getSeed());
this.rand.setSeed((long)par2 * p1 + (long)par3 * j1 ^ this.worldObj.getSeed());
biome.decorate(worldObj, rand, par2, par3);
}
Код:
@Override
public void decorate(World world, Random rand, int chunkX, int chunkZ) {
//super.decorate(world, rand, chunkX, chunkZ); <- causes Already Decorating!! error
double d0 = plantNoise.func_151601_a((double) (chunkX + 8) / 200.0D, (double) (chunkZ + 8) / 200.0D);
int k;
int l;
int i1;
int j1;
if (d0 < -0.8D) {
this.theBiomeDecorator.flowersPerChunk = 15;
this.theBiomeDecorator.grassPerChunk = 5;
} else {
this.theBiomeDecorator.flowersPerChunk = 4;
this.theBiomeDecorator.grassPerChunk = 10;
genTallFlowers.func_150548_a(2);
for (k = 0; k < 7; ++k) {
l = chunkX + rand.nextInt(16) + 8;
i1 = chunkZ + rand.nextInt(16) + 8;
j1 = rand.nextInt(world.getHeightValue(l, i1) + 32);
genTallFlowers.generate(world, rand, l, j1, i1);
}
}
{ // Botania
// Flowers
int dist = Math.min(8, Math.max(1, ConfigHandler.flowerPatchSize));
for(int i = 0; i < ConfigHandler.flowerQuantity; i++) {
if(rand.nextInt(ConfigHandler.flowerPatchChance) == 0) {
int x = chunkX + rand.nextInt(16) + 8;
int z = chunkZ + rand.nextInt(16) + 8;
int y = world.getTopSolidOrLiquidBlock(x, z);
int color = rand.nextInt(16);
boolean primus = rand.nextInt(380) == 0;
for(int j = 0; j < ConfigHandler.flowerDensity * ConfigHandler.flowerPatchChance; j++) {
int x1 = x + rand.nextInt(dist * 2) - dist;
int y1 = y + rand.nextInt(4) - rand.nextInt(4);
int z1 = z + rand.nextInt(dist * 2) - dist;
if(world.isAirBlock(x1, y1, z1) && world.getBlock(x1, y1 - 1, z1) == AlfheimBlocks.elvenGrass) {
if(primus) {
world.setBlock(x1, y1, z1, ModBlocks.specialFlower, 0, 2);
TileSpecialFlower flower = (TileSpecialFlower) world.getTileEntity(x1, y1, z1);
flower.setSubTile(rand.nextBoolean() ? LibBlockNames.SUBTILE_NIGHTSHADE_PRIME : LibBlockNames.SUBTILE_DAYBLOOM_PRIME);
SubTileDaybloom subtile = (SubTileDaybloom) flower.getSubTile();
subtile.setPrimusPosition();
} else {
world.setBlock(x1, y1, z1, ModBlocks.flower, color, 2);
if(rand.nextDouble() < ConfigHandler.flowerTallChance && ((BlockModFlower) ModBlocks.flower).func_149851_a(world, x1, y1, z1, false))
BlockModFlower.placeDoubleFlower(world, x1, y1, z1, color, 0);
}
}
}
}
}
// Mushrooms
for(int i = 0; i < ConfigHandler.mushroomQuantity; i++) {
int x = chunkX + rand.nextInt(16) + 8;
int z = chunkZ + rand.nextInt(16) + 8;
int y = rand.nextInt(26) + 4;
int color = rand.nextInt(16);
if(world.isAirBlock(x, y, z) && ModBlocks.mushroom.canBlockStay(world, x, y, z))
world.setBlock(x, y, z, ModBlocks.mushroom, color, 2);
}
}
}
Вообще, вот весь код, который может пригодится в понимании данной проблемы - тык
или, если та не работает - тык - путь /src/main/java/alfheim/common/world/dim/
Очень надеюсь на вашу помощь, ибо каждый день промедления затягивает релиз, а это не очень хорошо, мне ещё баги искать... :angel:
Заранее спасибо :3