Генерация "жилой"

1,057
50
234
Добрый день.

Вопрос такой:
Как в данном коде сделать генерацию "жилой"

Код:
public boolean generate(World par1World, Random par2Random, int x, int y, int z)
 {
 for (int j1 = 1; j1 < par1World.getHeight(); ++j1) {
 int i1 = x;
 //int j1 = y + par2Random.nextInt(4);
 int k1 = z;

 if (par1World.getBlock(i1, j1 - 1, k1) == BlocksAddon.EuropaIce && par1World.isAirBlock(i1, j1, k1))
 {
 par1World.setBlock(i1, j1, k1, this.snowGenEuropa);
 }
 }
 return true;
 
 
 }
Пробовал
     (new WorldGenMinable(this.snowGenEuropa, 15, Blocks.air)).generate(par1World, par2Random, x, y, z);
Но тогда генерируется блоки и сверху и снизу.
А мне бы, чтобы генерировалось на одном уровне....
 
Вот сделал это. Генерируется два блока рядом •• :
Код:
package assets.anotherworld;

import java.util.Random;

import net.minecraft.block.Block;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import net.minecraft.world.gen.feature.WorldGenerator;

    public class GenBlockNew extends WorldGenerator
    {
        /** The block ID of the ore to be placed using this generator. */
        private int minableBlockId;
        private int minableBlockMeta = 0;

        /** The number of blocks to generate. */
        private int numberOfBlocks;

        /** The block ID of the block to be replaced with the ore (usually stone) */
        private int blockToReplace;

        public GenBlockNew(int par1, int par2)
        {
            this(par1, par2, Block.stone.blockID);
        }

        public GenBlockNew(int par1, int par2, int par3)
        {
            this.minableBlockId = par1;
            this.numberOfBlocks = par2;
            this.blockToReplace = par3;
        }

        public GenBlockNew(int id, int meta, int number, int target)
        {
            this(id, number, target);
            this.minableBlockMeta = meta;
        }

        public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5)
        {
           
            par1World.setBlock(par3 + 1, par4, par5, this.minableBlockId, minableBlockMeta, 2);
            par1World.setBlock(par3 - 1, par4, par5, this.minableBlockId, minableBlockMeta, 2);
            par1World.setBlock(par3 + 2, par4, par5, this.minableBlockId, minableBlockMeta, 2);
            par1World.setBlock(par3 - 2, par4, par5, this.minableBlockId, minableBlockMeta, 2);
            
            
            return true;
    }
}

Потом вместо (new WorldGenMinable(this.snowGenEuropa, 15, Blocks.air))... пишешь (new GenBlockNew(this.snowGenEuropa, 15, Blocks.air))...
Это всего лишь пример. Делал на 1.6.4
 
Ой. Народ. Очень интересуюсь такой вот генерацией, но так и не разобрался...
Это ведь что-то типа генерации декораций? Каким образом её регистрировать в главном классе, чтоб работала?
 
там вроде, GameRegistry.registerWorldGenerator();
 
Код:
int i1 = x;
 //int j1 = y + par2Random.nextInt(4);
 int k1 = z;
Что еще за дивные манипуляции и зачем?
 
Че? Причем тут gui?
 
эт я понял, а зачем в генератор мира сувать [font=Verdana, Helvetica, Arial, sans-serif]IGuiHandler?[/font]
 
Что-то типа.
Значит есть какой то хендлер,скорее всего интерфейс. Так понятно?
 
Понятно, это и было понятно, не понятно, почему именно gui? что у них общего?
 
аа, ясно, так бы сразу)
 
Про эвентхандлеры почитай в разделе учебник, там есть тема(не про конкретный пример)
 
Назад
Сверху