hohserg написал(а):И не ставят гуи по дефолту в области чата
Dahaka написал(а):И теперь это обычный браунстоун
З.Ы. Твои грибы тоже фпс просаживают, наверное. Попробуй сетнуть квадрат 10 на 10 ими.
Dahaka написал(а):Вдруг какой-нибудь наркоман захочет крашнуть игроков на сервере?
Agravaine написал(а):Ну епт, другие ведь тоже будут смотреть на эти грибошки
Thunder написал(а):Ну всеравно если даже и ошибка сделала так как ты хотел, то лучше разобраться где именно эта ошибка, а то фиг знает, еще что-то вылезет уже не так красиво
public class NewWorldGenMushroom4 implements IWorldGenerator {
@Override
public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) {
switch(world.provider.dimensionId) {
case -1:
break;
case 0:generateSurface(world, random, chunkX *16, chunkZ *16);break;
case 1:
break;
}
}
private void generateSurface(World world, Random random, int x, int z) {
if (world.provider.terrainType == WorldType.FLAT) {
return;
}
//balance(spesial variables)
int randBalanceX = random.nextInt(15);
int randBalanceX1 = random.nextInt(20);
int randBalanceZ = random.nextInt(15);
int randBalanceZ1 = random.nextInt(20);
int ranZ1 = random.nextInt(7);
int ranX1 = random.nextInt(7);
int ranZ2 = random.nextInt(3);
int ranX2 = random.nextInt(3);
int ranY1 = random.nextInt(1);
if (ranZ1 != 0 && ranX1 != 0){
for (int y = 1; y < world.getHeight(); ++y) {
for (int x1 = x; x1 < x + 4; ++x1) {
for (int z1 = z; z1 < z + 4; ++z1) {
if (world.getBiomeGenForCoords(x1, z1) == BiomeGenBase.jungle || world.getBiomeGenForCoords(x1, z1) == BiomeGenBase.jungleHills || world.getBiomeGenForCoords(x1, z1) == BiomeGenBase.jungleEdge) {
if (world.getBlock(x1, y - 1, z1) == Blocks.grass && world.getBlock(x1, y - 1, z1) != Blocks.air) {
if(randBalanceX1 == 4 && randBalanceZ1 >= 18){
world.setBlock(x1 + ranX2, y, z1 + ranZ2, MyBlocks.underMilkwoodMushroom);
if(randBalanceX1 >= 4 && randBalanceZ1 <= 7){
world.setBlock(x1 + ranX2, y, z1 + ranZ2, MyBlocks.masloMushroom);
}
}
}
}
}
}
}
}
}
}
Именно под дерево не нужно, есть же еще и промышленное производство грибов, а вот с биомом хорошая идея, можно сделать что бы в пустыне грибница превращалась в засохшую подобно мёртвому кусту.
if (world.getBlock(x, y - 1, z) == Blocks.grass && world.getBlock(x, y - 1, z) != Blocks.air && world.getBlock(x, y, z - 2) == MyBlocks.underBirchMycelium ) {
if (time2.time == 10){
world.setBlock(x - 1, y, z, MyBlocks.underOsinMycelium);
}
if (time2.time == 20){
world.setBlock(x - 1, y, z - 1, MyBlocks.underOsinMycelium);
}
if (time2.time == 30){
world.setBlock(x - 1, y, z - 1, MyBlocks.underOsinMycelium);
}
if (time2.time == 40){
world.setBlock(x - 1, y, z - 2, MyBlocks.underOsinMycelium);
}
if (time2.time == 50){
world.setBlock(x + 1, y, z - 2, MyBlocks.underBirchMycelium);
}
if (time2.time == 60){
world.setBlock(x + 1, y, z - 1, MyBlocks.underBirchMycelium);
}
if (time2.time == 70){
world.setBlock(x + 1, y, z, MyBlocks.underBirchMycelium);
}
Dahaka написал(а):Чертов гений!
Код:world.getBlock(x, y - 1, z) == Blocks.grass && world.getBlock(x, y - 1, z) != Blocks.air
Замени свой if-if-if на if-elseif-elseif или лучше на switch-case
world.getBlock(x, y - 1, z) == Blocks.grass && world.getBlock(x, y - 1, z) != Blocks.air
Maxik001 написал(а):А разница?
Liahim написал(а):Maxik001 написал(а):А разница?
Не будет кучи лишних проверок...
Если time == 10, оно по определению уже не может быть равно 20... Зачем ещё раз проверять?
Аналогично с блоком травы... Если блок внизу - это трава, то этот блок автоматически не может быть воздухом... Хотя, на самом деле, у тебя второе условие даже и не проверяется... Поэтому пофиг, что ты там напишешь...