[1.6.4] проблема с генерацией

Проблема состоит в том, что у меня по какой-то неведомой мне причине не генерируются некоторые блоки.
Допустим, у меня в модификации несколько разных руд, так вот, 3 из них - генерируются, всё в порядке(одна из них в аду, всё проверил, всё в порядке), а остальные(ещё около 5) - вообще ноль, я сверял коды генераторов, присваивал большие значения генератору, на случай, если я вдруг их упустил, когда искал, нет, не помогло, их просто нет.

Код:
package assets.testmod.src;
 
import java.util.Random;
 

import net.minecraft.block.Block;
import net.minecraft.world.World;
import net.minecraft.world.chunk.IChunkProvider;
import net.minecraft.world.gen.feature.WorldGenMinable;
import cpw.mods.fml.common.IWorldGenerator;
 
public class CopperOreGenerator 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();
        break;
        case 0:
        generateSurface(world, random, chunkX*16, chunkZ*16);
        break;
        case 1:
        generateEnd();
        break;
        }
    }
 
    public void generateNether() {
        //were not doing ore ore in the nether
        }
 
        public void generateSurface(World world, Random rand, int chunkX, int chunkZ) {
        for (int i = 0; i < 15; i++) {
        int randPosX = chunkX + rand.nextInt(16);
        int randPosY = rand.nextInt(64);
        int randPosZ = chunkZ + rand.nextInt(16);
 
        (new WorldGenMinable(TestMod.copperOre.blockID, 0, 6, Block.stone.blockID)).generate(world, rand,
        randPosX, randPosY, randPosZ);
        }
        }
 
        public void generateEnd() {
        //were not going to generate in the end either
        }
}
Вот, собственно код с рабочей генерацией.


Код:
package assets.testmod.src;
 
import java.util.Random;


import net.minecraft.block.Block;
import net.minecraft.world.World;
import net.minecraft.world.chunk.IChunkProvider;
import net.minecraft.world.gen.feature.WorldGenMinable;
import cpw.mods.fml.common.IWorldGenerator;
 
public class RubinOreGenerator 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();
        break;
        case 0:
        generateSurface(world, random, chunkX*16, chunkZ*16);
        break;
        case 1:
        generateEnd();
        break;
        }
    }
 
    public void generateNether() {
        //were not doing ore ore in the nether
        }
 
        public void generateSurface(World world, Random rand, int chunkX, int chunkZ) {
        for (int i = 0; i < 10; i++) {
        int randPosX = chunkX + rand.nextInt(16);
        int randPosY = rand.nextInt(15);
        int randPosZ = chunkZ + rand.nextInt(16);
 
        (new WorldGenMinable(TestMod.rubinOre.blockID, 0, 2, Block.stone.blockID)).generate(world, rand,
        randPosX, randPosY, randPosZ);
        }
        }
 
        public void generateEnd() {
        //were not going to generate in the end either
        }
}
А вот эта руда - не генерируется

В чём может быть проблема?
 
Да, зарегистрировал, если речь идёт об этом, то:
Код:
        GameRegistry.registerWorldGenerator(new CopperOreGenerator());
        GameRegistry.registerWorldGenerator(new RubinOreGenerator());
 
905
5
Скинь весь код. Вообще весь. Я серьезно недавно нашел старый баг моего CraftManager'а. Ошибка была в блоке, ололол.
 
Так там все генерируемые блоки в один файл генератора нужно писать. Вот мой:
Код:
public class OBlocksGenerator 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();
            break;
            case 0:
            generateSurface(world, random, chunkX*16, chunkZ*16);
            break;
            case 1:
            generateEnd();
            break;
            }
        }

        public void generateNether() {
            }

            public void generateSurface(World world, Random rand, int chunkX, int chunkZ) {
            for (int i = 0; i < 30; i++) {
            int randPosX = chunkX + rand.nextInt(16);
            int randPosY = rand.nextInt(64);
            int randPosZ = chunkZ + rand.nextInt(16);

            (new WorldGenMinable(Blocks.oreAir.blockID, 10)).generate(world, rand, randPosX, randPosY, randPosZ);
            (new WorldGenMinable(Blocks.oreGravityPowder.blockID, 5)).generate(world, rand, randPosX, randPosY, randPosZ);
            (new WorldGenMinable(Blocks.orePolymer.blockID, 10)).generate(world, rand, randPosX, randPosY, randPosZ);
            (new WorldGenMinable(Blocks.oreMatter.blockID, 2)).generate(world, rand, randPosX, randPosY, randPosZ);
            (new WorldGenMinable(Blocks.orePalladium.blockID, 1)).generate(world, rand, randPosX, randPosY, randPosZ);
            }
            }

            public void generateEnd() {
            }
}
 
Я так понимаю, под "весь" подразумевается всё о в данном случае Рубине?

Код:
package assets.testmod.src;
 
import java.util.Random;


import net.minecraft.block.Block;
import net.minecraft.world.World;
import net.minecraft.world.chunk.IChunkProvider;
import net.minecraft.world.gen.feature.WorldGenMinable;
import cpw.mods.fml.common.IWorldGenerator;
 
public class RubinOreGenerator 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();
        break;
        case 0:
        generateSurface(world, random, chunkX*16, chunkZ*16);
        break;
        case 1:
        generateEnd();
        break;
        }
    }
 
    public void generateNether() {
        //were not doing ore ore in the nether
        }
 
        public void generateSurface(World world, Random rand, int chunkX, int chunkZ) {
        for (int i = 0; i < 10; i++) {
        int randPosX = chunkX + rand.nextInt(16);
        int randPosY = rand.nextInt(15);
        int randPosZ = chunkZ + rand.nextInt(16);
 
        (new WorldGenMinable(TestMod.rubinOre.blockID, 0, 2, Block.stone.blockID)).generate(world, rand,
        randPosX, randPosY, randPosZ);
        }
        }
 
        public void generateEnd() {
        //were not going to generate in the end either
        }
}
Генератор

Код:
package assets.testmod.src.block;

import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import assets.testmod.src.ModInfo;
import assets.testmod.src.TestMod;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

public class RubinOre extends Block 
{
    public RubinOre(int par1) 
    {
        super(par1, Material.rock);         
        this.setCreativeTab(CreativeTabs.tabBlock);
        this.setHardness(3.0F);
        this.setResistance(3.0F);
        this.setStepSound(soundStoneFootstep);
    }
    
    @SideOnly(Side.CLIENT)
    public void registerIcons(IconRegister ir)
    {
        this.blockIcon = ir.registerIcon(ModInfo.MODID + ":rubinOre");
    }
    public int idDropped(int par1, Random par2Random, int par3)
    {
        return TestMod.RubinDust.itemID;
    }
}
Руда

Код:
    GameRegistry.registerWorldGenerator(new RubinOreGenerator());
регистрация генерации

Код:
public static final Block rubinOre = new RubinOre(3002).setUnlocalizedName("Rubin ore");
Руда
 
Код:
.setUnlocalizedname("Rubin Ore");
Лолчто? Надо писать как в начале строчки: rubinOre. Он используется, если ты не задал имя. А еще при локализации.
А про остальное я имел ввиду абсолютно все блоки, которые ты генерируешь надо писать в один файл генератора.
 
905
5
Ололол, а где регистрация блока?
 
Vova_master написал(а):
Так там все генерируемые блоки в один файл генератора нужно писать. Вот мой:

А если мне, например нужно что бы у некоторых генерация была не выше 15, аналогично алмазам, а у других на 64, как это в 1 файле генератора реализовать?
 
inferno_alien написал(а):
Vova_master написал(а):
Так там все генерируемые блоки в один файл генератора нужно писать. Вот мой:

А если мне, например нужно что бы у некоторых генерация была не выше 15, аналогично алмазам, а у других на 64, как это в 1 файле генератора реализовать?
Легко и просто. В учебнике все есть
 
laz2727 написал(а):
Ололол, а где регистрация блока?

Эта?

Код:
        GameRegistry.registerBlock(rubinOre);
        LanguageRegistry.addName(rubinOre, "Rubin ore");
[merge_posts_bbcode]Добавлено: 20.04.2014 13:07:26[/merge_posts_bbcode]

И всё же, у меня на каждый блок своя генерация, возможно это не самый верный и умный путь(считай ньюби, за рамки учебника пока не выходил), тем не менее 3 руды-то у меня генерируются, здесь что-то другое)
 
905
5
Нашел, ололо. А ты знаешь, что даже у алмазов вес генерации - 7? Рандом тупо не может найти, куда поставить блок - вероятность никакая. Твой генератор выдает блок примерно раз в 7 регионов - MCEdit так говорит.
 
laz2727 написал(а):
Нашел, ололо. А ты знаешь, что даже у алмазов вес генерации - 7? Рандом тупо не может найти, куда поставить блок - вероятность никакая. Твой генератор выдает блок примерно раз в 7 регионов - MCEdit так говорит
А можно указать где конкретно этот параметр, и вообще по-подробнее, в учебнике вроде как об этом не говорилось, а узнать хотелось бы)
 

necauqua

когда-то был anti344
Администратор
1,216
27
172
Vova_master написал(а):
Так там все генерируемые блоки в один файл генератора нужно писать.
*Устало вздыхает* Можно, но необязательно. Нужно в правила еще один пункт запилить, что-то вроде "не учить тех, кто не знают, что они делают(или знают, но просят помощи) именно своему стилю/образу/еще чему-то написания модов"
 
905
5
Код:
new WorldGenMinable(TestMod.rubinOre.blockID, 0, 2, Block.stone.blockID)
                                                 ^
 
anti344 написал(а):
Vova_master написал(а):
Так там все генерируемые блоки в один файл генератора нужно писать.
*Устало вздыхает* Можно, но необязательно. Нужно в правила еще один пункт запилить, что-то вроде "не учить тех, кто не знают, что они делают(или знают, но просят помощи) именно своему стилю/образу/еще чему-то написания модов"
Да ну вас, злые вы...:'(
 

timaxa007

Модератор
5,831
409
672
inferno_alien, был-ли дан ответ на твой вопрос в этой теме?
 
Сверху