Minecraft(我的世界)中文论坛

标题: Minecraft MOD制作:从入门到精通——第四章第四节:生成矿藏

作者: DJXGAME    时间: 2012-8-30 12:45
标题: Minecraft MOD制作:从入门到精通——第四章第四节:生成矿藏
本帖最后由 DJXGAME 于 2012-8-30 12:55 编辑

Minecraft MOD制作:从入门到精通
The Dummy's Guide to Modding - From Setup to Advanced!




——全文索引地址——
http://www.mcbbs.net/thread-46190-1-1.html

第四章:您等待已久的一章


我希望您能多加阅读一些Minecraft的代码,虽然对于一个java造诣不精人来说,代码有可能显得凌乱,但是不要灰心丧气。


第四节:生成矿藏




现在您可以能会想如何制作一份矿藏呢?如果您希望制作一份矿藏,请不要为其设置可以进行合成的要素,毕竟矿藏是不能合成出来的

建议您重新为自己的矿物方块设计一套材质,毕竟在许多灰色的石头中间突然挖到一个蓝色大方块很是诡异。您可以根据自己使用photoshop或Gimp的水平进行创作,甚至直接拷贝原版材质并加以修改其中的色调和饱和度也是一个不错的而选择.

还记得我们在教程之前提到的".setHardness(2.5F)"么?在制作矿藏时这一参数也需要考虑在内:0.1F意味着几乎可以瞬间摧毁该方块,而1000.0F则意味着您可以挖到天荒地老。还有一点请注意,此处与您实际进行采矿无任何相关,我们稍后会进行讲解。

我们使用generateSurface()类函数对modloader类函数进行覆盖,当生成世界时就会调用这个类函数,并生成您所添加进类函数的语句。以下代码将用于您的mod_file:



Overriding The ModLoader Method


再次强调,不要做任何修改,因为您的任何改动都会带来不可知的结果。
现在需要再去中添加一个循环语句:
Generation For Loop

名称]含义
for(..) 表示循环,详情请参阅java教程
int i = 0; i < 20; i++默认的循环语句,您只需要关心其中的“20”就可以了,如果您将其设置为1就代表该矿物如同钻石一样珍惜,而将其设置为20则代表如同煤那样广泛分布,您可以将其最大设置为50左右。
int randPosX = chunkX + random.nextInt(16);表示矿藏的确切位置其中变量randPosX用于存储矿藏的X坐标,而矿脉的实际位置则由1到16的一个随机数与区块位置共同决定。不要更改其中的16!
int randPosY = random.nextInt(20);矿脉的y坐标由1到20的一个随机数决定,您可以将20改为任何一个正值,比如矿石就将其设置为16而煤则为128。
int randPosZ = chunkZ + random.nextInt(16);矿脉的Z坐标由变量randPosZ确定,矿脉的实际位置则由1到16的一个随机数与区块位置共同决定。不要更改其中的16!
new WorldGenMinableWorldGenMinable类中添加一个新的实例,该实例主要用于控制生成
(this.yourFirstOre.blockID, 8)控制您所生成矿脉的最大矿石数量,最小值为3亦即每个矿脉只生成1块矿石
.generateWorldGenMinable中调用generate类函数。
(world, random, randPosX, randPosY, randPosZ)''world''为生成世界的名称,可以由delaration类函数提供;''Random''为java的随机场,也由delaration类函数提供;"Random'' X, Y, Z为三个整值变量,用于控制矿脉的位置。

我们接下来设置矿藏的硬度等级,也就是说使用何种镐开采这一种矿藏,以下为典型矿石的硬度等级:黑曜石为3。钻石为2。铁矿石为1。

在您的load()类函数中添加如下代码:


Setting Harvest Level


此时您的矿藏创建之旅就临近尾声,大家请欣赏我创造的超级恶劣材质的矿藏~



P.S:在您重新生成一个世界后(也就是您更改了控制世界生成的变量)如果出现错误,请先检查区块生成是否正确再行检查代码问题。~



d7z65.png (118.59 KB, 下载次数: 56)

d7z65.png

作者: hhyx    时间: 2012-8-30 12:48
好厉害呀 学习学习了@.@
作者: 719823597    时间: 2012-8-30 12:51
哇 姐姐好厉害
作者: geludan    时间: 2012-8-30 12:54
其实整套教程从下软件那里我就停了,因为我不想下东西。。。平时又不做mod。。
作者: DJXGAME    时间: 2012-8-30 12:57
geludan 发表于 2012-8-30 12:54
其实整套教程从下软件那里我就停了,因为我不想下东西。。。平时又不做mod。。

卤蛋是个大懒蛋~~~
作者: oomanj    时间: 2012-8-30 12:58
诈尸加分            
作者: 258583540    时间: 2012-8-30 13:03
哇,好厉害啊
作者: 842048265    时间: 2012-8-30 13:08
=,=其实我看不懂~
作者: flansama    时间: 2012-8-30 13:19
JAVA没学懂的路过。。C++也全还回大学了。。
作者: jianghr    时间: 2012-8-30 13:22
本帖最后由 jianghr 于 2012-8-30 13:51 编辑

嗯,围观了一下,感觉新模版还是很不错的,翻译版正在像正规化迈进,话说老帖能改动吗?
说道模版我突然想起最近发现很多wiki词条的历史/History部分开始套用表格模式的history模版了。估计又有很多帖子需要更新。
======
就本文内容而言,矿脉集中MOD和更多矿物MOD就是这个道理吧,不过修改原版矿物就是了。
作者: DJXGAME    时间: 2012-8-30 13:29
jianghr 发表于 2012-8-30 13:22
嗯,围观了一下,感觉新模版还是很不错的,翻译版正在像正规话迈进,话说老帖能改动吗?
说道模版我突然想 ...

卷卷儿果然天资聪慧~~~模板可以多提提意见哈~~~不断完善~
作者: pogox    时间: 2012-8-30 18:56
楼主我要整合包。。。
作者: 819tierqusi    时间: 2012-8-30 19:36
看完了这些教程就可以做一些大众向的MOD了
作者: 路邊電燈泡    时间: 2012-8-30 21:19
估計你弄完全套希望把索引帖弄到Mod版?
反正又是個Mod開發...{:10_521:}
作者: qw4wer    时间: 2012-8-31 00:15
来晚了,已实现{:10_512:}
作者: 萝卜玩mc    时间: 2013-9-10 10:18
DJXGAME 发表于 2012-8-30 12:57
卤蛋是个大懒蛋~~~

超级无敌大懒蛋~
作者: lewis0036    时间: 2013-10-21 00:02
DJXGAME 发表于 2012-8-30 13:29
卷卷儿果然天资聪慧~~~模板可以多提提意见哈~~~不断完善~

有包吗?????????????
作者: codefans    时间: 2013-11-11 22:29
so good  {:10_512:}
作者: 小鹤鹤    时间: 2014-2-15 20:24
服,长见识了
作者: 1316679344    时间: 2014-3-16 12:56
天啊...............看不懂.......................还是去下载别人的mod去吧
作者: jike321    时间: 2014-8-22 11:35
代码写错了
int randPosZ = chunkZ + random.nextInt(16);
应该改成
int randPosZ = chunkZ×16 + random.nextInt(16)-1;
作者: Explorer5    时间: 2015-2-20 17:24
求楼主实例啊!WorldGenMinable的那个this.yourFirstOre.BlockID到底应该输入什么?自己注册的方块放在主类中,怎么导到这个类中来?
作者: 2991998454    时间: 2015-2-26 22:55
flansama 发表于 2012-8-30 13:19
JAVA没学懂的路过。。C++也全还回大学了。。

你学过c++?
作者: 曲奇先生    时间: 2015-3-3 12:56
姐姐有QQ吗
作者: 胡博涵21    时间: 2015-3-8 21:41
坑爹………………1.7.2就全变了…………如果你诈尸能不能告诉我:
1.7.2怎么搞矿脉
1.7.2的剑,继承什么类,以及它有什么设置
作者: Yyf88    时间: 2015-11-14 19:56
flansama 发表于 2012-8-30 13:19
JAVA没学懂的路过。。C++也全还回大学了。。

醉了初中党表示自学c语言完全无压力
作者: Yyf88    时间: 2015-11-14 19:57
楼主我要整合包,有关mc mod的函数
作者: 1159453435    时间: 2016-7-2 19:13
Yyf88 发表于 2015-11-14 19:56
醉了初中党表示自学c语言完全无压力

兄弟是C++。。。
作者: 1159453435    时间: 2016-7-2 19:14
然而还是看不懂。。