Java 如何在minecraft mod中拥有多个矿石?
我试图在我的minecraft mod中有2个矿石在超世界,但只有一个矿石正在生成。此外,我已经成功地添加了一个矿石在超世界和在阴间,但不能得到2在超世界。这是我的密码: 编辑:我自己修复的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;
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,然后将解决方案作为答案发布。