Гениально, потратить часы на то что-б посмотреть как генерируется своя руда.XuPuPG написал(а):Да любой чит декомпильни который как мод идет и посмотри.
Простой цикл for с world.setBlock на весь чанк?XuPuPG написал(а):Ааа...ты имеешь в виду посмотреть сколько руды в чанке сгенерировалось?У меня есть блок который при установке удаляет траву,камень и т.д как раз для таких целей не знаю подойдет тебе такое или нет :/
Фраструм (Вроде так) не пройдёт.Liahim написал(а):Эх... Текстурпак поставь с прозрачными камнем и землёй и не парься )
public static final int FREEZE_RADIUS = 23;
@Override
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase entity, ItemStack stack)
{
this.freezeArea(world, x, y, z);
}
public void freezeArea(World world, int x, int y, int z)
{
if (world.isRemote)
{
return;
}
for (int x1 = x - FREEZE_RADIUS; x1 <= x + FREEZE_RADIUS; x1++)
{
for (int y1 = y - FREEZE_RADIUS; y1 <= y + FREEZE_RADIUS; y1++)
{
for (int z1 = z - FREEZE_RADIUS; z1 <= z + FREEZE_RADIUS; z1++)
{
Block block = world.getBlock(x1, y1, z1);
if (block == Blocks.flowing_water || block == Blocks.flowing_lava)
{
world.setBlock(x1, y1, z1, Blocks.air);
continue;
}
if (block == Blocks.water || block == Blocks.lava)
{
world.setBlock(x1, y1, z1, Blocks.air);
continue;
}
if (block == Blocks.stone)
{
world.setBlock(x1, y1, z1, Blocks.air);
continue;
}
if (block == Blocks.grass)
{
world.setBlock(x1, y1, z1, Blocks.air);
continue;
}
if (block == Blocks.dirt)
{
world.setBlock(x1, y1, z1, Blocks.air);
continue;
}
if (block == Blocks.gravel)
{
world.setBlock(x1, y1, z1, Blocks.air);
continue;
}
if (block == Blocks.iron_ore)
{
world.setBlock(x1, y1, z1, Blocks.air);
continue;
}
if (block == Blocks.coal_ore)
{
world.setBlock(x1, y1, z1, Blocks.air);
continue;
}
if (block == Blocks.diamond_ore)
{
world.setBlock(x1, y1, z1, Blocks.air);
continue;
}
if (block == Blocks.redstone_ore)
{
world.setBlock(x1, y1, z1, Blocks.air);
continue;
}
if (block == Blocks.sand)
{
world.setBlock(x1, y1, z1, Blocks.air);
continue;
}
if (block == Blocks.snow)
{
world.setBlock(x1, y1, z1, Blocks.air);
continue;
}
if (block == Blocks.snow_layer)
{
world.setBlock(x1, y1, z1, Blocks.air);
continue;
}
if (block == Blocks.netherrack)
{
world.setBlock(x1, y1, z1, Blocks.air);
continue;
}
if (block == Blocks.end_stone)
{
world.setBlock(x1, y1, z1, Blocks.air);
continue;
}
}
}
}
}
А зачем ты перечисляешь все эти блоки, когда можно просто if(block != myBlock)?XuPuPG написал(а):Код:public static final int FREEZE_RADIUS = 23; @Override public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase entity, ItemStack stack) { this.freezeArea(world, x, y, z); } public void freezeArea(World world, int x, int y, int z) { if (world.isRemote) { return; } for (int x1 = x - FREEZE_RADIUS; x1 <= x + FREEZE_RADIUS; x1++) { for (int y1 = y - FREEZE_RADIUS; y1 <= y + FREEZE_RADIUS; y1++) { for (int z1 = z - FREEZE_RADIUS; z1 <= z + FREEZE_RADIUS; z1++) { Block block = world.getBlock(x1, y1, z1); if (block == Blocks.flowing_water || block == Blocks.flowing_lava) { world.setBlock(x1, y1, z1, Blocks.air); continue; } if (block == Blocks.water || block == Blocks.lava) { world.setBlock(x1, y1, z1, Blocks.air); continue; } if (block == Blocks.stone) { world.setBlock(x1, y1, z1, Blocks.air); continue; } if (block == Blocks.grass) { world.setBlock(x1, y1, z1, Blocks.air); continue; } if (block == Blocks.dirt) { world.setBlock(x1, y1, z1, Blocks.air); continue; } if (block == Blocks.gravel) { world.setBlock(x1, y1, z1, Blocks.air); continue; } if (block == Blocks.iron_ore) { world.setBlock(x1, y1, z1, Blocks.air); continue; } if (block == Blocks.coal_ore) { world.setBlock(x1, y1, z1, Blocks.air); continue; } if (block == Blocks.diamond_ore) { world.setBlock(x1, y1, z1, Blocks.air); continue; } if (block == Blocks.redstone_ore) { world.setBlock(x1, y1, z1, Blocks.air); continue; } if (block == Blocks.sand) { world.setBlock(x1, y1, z1, Blocks.air); continue; } if (block == Blocks.snow) { world.setBlock(x1, y1, z1, Blocks.air); continue; } if (block == Blocks.snow_layer) { world.setBlock(x1, y1, z1, Blocks.air); continue; } if (block == Blocks.netherrack) { world.setBlock(x1, y1, z1, Blocks.air); continue; } if (block == Blocks.end_stone) { world.setBlock(x1, y1, z1, Blocks.air); continue; } } } } }
Однако топ-велосипед нынче в моде.XuPuPG написал(а):Код:public static final int FREEZE_RADIUS = 23; @Override public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase entity, ItemStack stack) { this.freezeArea(world, x, y, z); } public void freezeArea(World world, int x, int y, int z) { if (world.isRemote) { return; } for (int x1 = x - FREEZE_RADIUS; x1 <= x + FREEZE_RADIUS; x1++) { for (int y1 = y - FREEZE_RADIUS; y1 <= y + FREEZE_RADIUS; y1++) { for (int z1 = z - FREEZE_RADIUS; z1 <= z + FREEZE_RADIUS; z1++) { Block block = world.getBlock(x1, y1, z1); if (block == Blocks.flowing_water || block == Blocks.flowing_lava) { world.setBlock(x1, y1, z1, Blocks.air); continue; } if (block == Blocks.water || block == Blocks.lava) { world.setBlock(x1, y1, z1, Blocks.air); continue; } if (block == Blocks.stone) { world.setBlock(x1, y1, z1, Blocks.air); continue; } if (block == Blocks.grass) { world.setBlock(x1, y1, z1, Blocks.air); continue; } if (block == Blocks.dirt) { world.setBlock(x1, y1, z1, Blocks.air); continue; } if (block == Blocks.gravel) { world.setBlock(x1, y1, z1, Blocks.air); continue; } if (block == Blocks.iron_ore) { world.setBlock(x1, y1, z1, Blocks.air); continue; } if (block == Blocks.coal_ore) { world.setBlock(x1, y1, z1, Blocks.air); continue; } if (block == Blocks.diamond_ore) { world.setBlock(x1, y1, z1, Blocks.air); continue; } if (block == Blocks.redstone_ore) { world.setBlock(x1, y1, z1, Blocks.air); continue; } if (block == Blocks.sand) { world.setBlock(x1, y1, z1, Blocks.air); continue; } if (block == Blocks.snow) { world.setBlock(x1, y1, z1, Blocks.air); continue; } if (block == Blocks.snow_layer) { world.setBlock(x1, y1, z1, Blocks.air); continue; } if (block == Blocks.netherrack) { world.setBlock(x1, y1, z1, Blocks.air); continue; } if (block == Blocks.end_stone) { world.setBlock(x1, y1, z1, Blocks.air); continue; } } } } }
Эм?Oldestkon написал(а):>Вопрос касательно рендера, ответили решением 'в лоб', которое влияет ещё и на логику игры, создавая неимоверные тормоза
>Всерьез оптимизируют, убирая лишние ветвления