Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在minecraft mod中拥有多个矿石?_Java_Eclipse_Minecraft - Fatal编程技术网

Java 如何在minecraft mod中拥有多个矿石?

Java 如何在minecraft mod中拥有多个矿石?,java,eclipse,minecraft,Java,Eclipse,Minecraft,我试图在我的minecraft mod中有2个矿石在超世界,但只有一个矿石正在生成。此外,我已经成功地添加了一个矿石在超世界和在阴间,但不能得到2在超世界。这是我的密码: 编辑:我自己修复的 package com.halo.halomod.world.gen; import java.util.Random; import com.halo.halomod.halo; import com.halo.halomod.world.gen.feature.NetherGenMinable;

我试图在我的minecraft mod中有2个矿石在超世界,但只有一个矿石正在生成。此外,我已经成功地添加了一个矿石在超世界和在阴间,但不能得到2在超世界。这是我的密码: 编辑:我自己修复的

package com.halo.halomod.world.gen;

import java.util.Random;

import com.halo.halomod.halo;
import com.halo.halomod.world.gen.feature.NetherGenMinable;

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 haloGenerationClass implements IWorldGenerator {

@Override
public void generate(Random random, int chunkX, int chunkZ, World world,
        IChunkProvider chunkGenerator, IChunkProvider chunkProvider) {
    // TODO Auto-generated method stub

    switch(world.provider.dimensionId) {
    case -1:
        generateInNether(world, random, chunkX*16, chunkZ*16);
        break;
    case 0:
        generateInOverworld(world, random, chunkX*16, chunkZ*16);
        break;
    case 1:
        generationInEnd(world, random, chunkX*16, chunkZ*16);
        break;
}
}

private void generationInEnd(World world, Random random, int x, int z) {
}

private void generateInOverworld(World world, Random random, int x, int z) {
    for(int i = 0; i < 20; i++) { //20 = Rarity
        int chunkX = x + random.nextInt(16);
        int chunkY = random.nextInt(30); //= how high generates
        int chunkz = z + random.nextInt(16);

        (new WorldGenMinable(halo.Titanium_Ore, 8)).generate(world, random, chunkX,   chunkY, chunkz); //8 = number per vein
    }
}

private void generateInNether(World world, Random random, int x, int z) {
    for(int i = 0; i < 20; i++) { //20 = Rarity
        int chunkX = x + random.nextInt(16);
        int chunkY = random.nextInt(250); //= how high generates
        int chunkz = z + random.nextInt(16);

        (new NetherGenMinable(halo.Nether_Titanium_Ore, 8)).generate(world, random,  chunkX, chunkY, chunkz); //8 = number per vein
    }
}
//code not working from here 
private void generateInOverworld1(World world, Random random, int x, int z) {
    for(int i = 0; i < 1000; i++) { //20 = Rarity
        int chunkX = x + random.nextInt(16);
        int chunkY = random.nextInt(250); //= how high generates
        int chunkz = z + random.nextInt(16);

        (new WorldGenMinable(halo.Copper_Ore, 100)).generate(world, random, chunkX, chunkY, chunkz); //8 = number per vein
        }
} // <----- to here
}
package com.halo.halomod.world.gen;
导入java.util.Random;
导入com.halo.halomod.halo;
导入com.halo.halomod.world.gen.feature.NetherGenMinable;
进口net.minecraft.world.world;
导入net.minecraft.world.chunk.IChunkProvider;
导入net.minecraft.world.gen.feature.WorldGenMinable;
导入cpw.mods.fml.common.IWorldGenerator;
公共类haloGenerationClass实现了IWorldGenerator{
@凌驾
public void generate(随机、int chunkX、int chunkZ、世界、,
IChunkProvider chunkGenerator,IChunkProvider chunkProvider){
//TODO自动生成的方法存根
开关(world.provider.dimensionId){
案例1:
generateInNether(世界、随机、chunkX*16、chunkZ*16);
打破
案例0:
generateInOverworld(世界、随机、chunkX*16、chunkZ*16);
打破
案例1:
GenerationEnd(世界、随机、chunkX*16、chunkZ*16);
打破
}
}
私有void生成结束(世界、随机、int x、int z){
}
私有void生成器新世界(世界世界、随机、int x、int z){
对于(inti=0;i<20;i++){//20=稀有性
int chunkX=x+random.nextInt(16);
int chunkY=random.nextInt(30);//=生成的高度
int chunkz=z+random.nextInt(16);
(新WorldGenable(halo.Titanium_Ore,8)).generate(world,random,chunkX,chunkY,chunkz);//8=每脉的数量
}
}
私有void generateInether(世界世界、随机、int x、int z){
对于(inti=0;i<20;i++){//20=稀有性
int chunkX=x+random.nextInt(16);
int chunkY=random.nextInt(250);//=生成的高度
int chunkz=z+random.nextInt(16);
(新NetherGenMinable(halo.Nether_Tianium_Ore,8)).generate(world,random,chunkX,chunkY,chunkz);//8=每脉数
}
}
//代码在这里不起作用
私有void generateInOverworld1(世界世界、随机、int x、int z){
对于(inti=0;i<1000;i++){//20=稀有性
int chunkX=x+random.nextInt(16);
int chunkY=random.nextInt(250);//=生成的高度
int chunkz=z+random.nextInt(16);
(新WorldGenable(halo.Copper_Ore,100)).generate(world,random,chunkX,chunkY,chunkz);//8=每脉的数量
}

}//问题似乎是您忘记实际调用最终生成方法,这意味着它永远不会执行,矿石也永远不会生成


只要在generate方法的switch语句中添加一个调用就可以了。

我自己解决了。我取出了WorldGenerateOverWorld1,只是在另一个WorldGenerateOverWorld下面添加了一个生成。下面是新代码:

private void generateInOverworld(World world, Random random, int x, int z) {
    for(int i = 0; i < 17; i++) { //20 = Rarity
        int chunkX = x + random.nextInt(16);
        int chunkY = random.nextInt(28); //= how high generates
        int chunkz = z + random.nextInt(16);

        (new WorldGenMinable(halo.Titanium_Ore, 6)).generate(world, random, chunkX,  chunkY, chunkz); //8 = number per vein
    }
    for(int i = 0; i < 24; i++) { //20 = Rarity
        int chunkX = x + random.nextInt(16);
        int chunkY = random.nextInt(45); //= how high generates
        int chunkz = z + random.nextInt(16);

        (new WorldGenMinable(halo.Copper_Ore, 7)).generate(world, random, chunkX, chunkY, chunkz); //8 = number per vein
   }
}
private void generateInOverworld(世界世界、随机、int x、int z){
对于(inti=0;i<17;i++){//20=稀有性
int chunkX=x+random.nextInt(16);
int chunkY=random.nextInt(28);//=生成多高
int chunkz=z+random.nextInt(16);
(新WorldGenable(halo.Titanium_Ore,6)).generate(world,random,chunkX,chunkY,chunkz);//8=每脉的数量
}
对于(inti=0;i<24;i++){//20=稀有性
int chunkX=x+random.nextInt(16);
int chunkY=random.nextInt(45);//=生成的高度
int chunkz=z+random.nextInt(16);
(新WorldGenable(halo.Copper_Ore,7)).generate(world,random,chunkX,chunkY,chunkz);//8=每脉的数量
}
}

请定义“代码不工作”@user3478462,然后将解决方案作为答案发布。