我的世界服务器怎么弄无限矿物,minecraft mod教程:在世界上生成矿石:GameRegistry的使用5...

还是很忙。就更新一点简单的东西好了。(但愿这回不是flag,是真的简单

通过前面的教程我们已经学会了如何创建一个有名字、有材质、可以实现自己功能的方块了。大概你已经迫不及待的要去创建自己的mod了。许许多多的mod都是开始于矿物的创建。你一定也想要创建你的矿物方块 。这回我们就来学习如何让你创建的矿石方块在生成世界的时候被生成。(注意:如果你要创建矿物的话最好使用矿物字典来实现多mod兼容,有关矿物字典的东西我以后会去介绍的。)

为了创建矿物,我们需要能够在世界生成的时候执行我们的代码,很幸运的是,forge已经提供给我们一个接口了:

public class TutorialGenerator implements IWorldGenerator {

@Override

public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) {

}

}

1

2

3

4

5

6publicclassTutorialGeneratorimplementsIWorldGenerator{

@Override

publicvoidgenerate(Randomrandom,intchunkX,intchunkZ,Worldworld,IChunkProviderchunkGenerator,IChunkProviderchunkProvider){

}

}

代码来源:minecraft forge wiki

可以看到通过这个接口,我们就有可能在区块被生成的时候被调用,从而修改这个世界。

这个接口的world.provider.dimensionId可以为我们提供当前所在维度的信息:-1 表示地狱

0 表示主世界

1  表示天域(就是末地啦)

当然了,你可能遇到的维度不只是这些,如果其他的mod添加了新的维度的话(比如以太、暮色、星系)你就可能需要处理其他的维度的情况。

在有了这些的情况下,你就有能力在新生成的地图上生成出一切的东西。但是我们不要跑题,我们只是为了生成矿石而已。这个时候minecraft自带的一个矿石的生成器就会帮我们很大的忙

int firstBlockXCoord = i + random.nextInt(16);

int firstBlockYCoord = random.nextInt(64);

int firstBlockZCoord = j + random.nextInt(16);

(new WorldGenMinable(TutorialMain.myFirstBlock.blockID, 13)).generate(world, random, firstBlockXCoord, firstBlockYCoord, firstBlockZCoord);

1

2

3

4

5intfirstBlockXCoord=i+random.nextInt(16);

intfirstBlockYCoord=random.nextInt(64);

intfirstBlockZCoord=j+random.nextInt(16);

(newWorldGenMinable(TutorialMain.myFirstBlock.blockID,13)).generate(world,random,firstBlockXCoord,firstBlockYCoord,firstBlockZCoord);

以上代码也来自minecraft forge wifi

到现在为止我们就可以去让你的矿物生成在世界上新加载的区块了。等等,貌似忘了什么,你们有没有忘记?我们不是说GameRegistry的使用么?我们的标题都丢掉了。

为了让forge加载你的这个世界生成器,你必须要在你的初始化的时候注册它。

GameRegistry.registerWorldGenerator(new WorldGeneratorName());

1GameRegistry.registerWorldGenerator(newWorldGeneratorName());

大概这样就算是彻底的完成了创建矿石的过程呢

×用微信扫描并分享

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值