Minecraft 板


LINE

因为在弄自动洒骨粉的mod所以我想知道这个树苗是有机会成长成功是怎麽判断的 [於是我去看了程式码,其实打这篇在边看边打] [因为之前是看1.4.7,这篇是1.5.1-7.7.1.673] [有兴趣的人可以去http://jd.minecraftforge.net/ 看程式码] [这篇打的顺序不是由上往下 最後才会把结论打在前面] [树木成长基本上是没啥变化 有变化是骨粉的部分] ┌─┬───┬───────────────────┐ │ │树 苗│45%机率成功,成功两次以上才会嚐试长大 │ │ ├───┼───────────────────┤ │骨│香 菇│40%机率嚐试长大 │ │ ├───┴───┬───────────────┤ │ │西瓜茎、南瓜茎│成长度范围:0 ~ 7 │ │ │小 麦、萝 卜│没完整成长才会使用 │ │ │马铃薯 │成长度增加:2 ~ 5 │ │ ├───┬───┴───────────────┤ │ │ │成长度范围:0 ~ 2 │ │ │可可豆│没完整成长才会使用 │ │粉│ │成长度增加:1 │ │ ├───┼───────────────────┤ │ │草 砖│产生草(90%),黄花(6.67%),红花(3.33%) │ └─┴───┴───────────────────┘ 一、首先一切都从骨粉开始 ItemDye.onItemUse 使用物品 ItemDye.applyBonemeal 如果是骨粉的时候呼叫这个 如果目标是树苗 45%机率会呼叫(失败骨粉也会减少) BlockSapling.func_96477_c 如果没洒过(0x8 bit是0) 这次是第一次施肥 他会纪录施肥一次(0x8 bit 设成1) 如果有施肥过(0x8 bit非0是1) 这时候才会成长呼叫(有可能长失败) BlockSapling.growTree 来嚐试树的生成(後述) 如果目标是香菇 有40%会呼叫(失败骨粉也会减少) BlockMushroom.fertilizeMushroom 来嚐试巨大香菇的生成(後述) 如果目标是西瓜茎南瓜瓜茎(如果成长度已满7不会使用) 会直接呼叫 BlockStem.fertilizeStem 成长度(0~7)会加上 2~5 如果目标是小麦马铃薯萝卜(如果成长度已满7不会使用) 会直接呼叫 BlockCrops.fertilize 成长度(0~7)会加上 2~5 如果目标是可可豆(如果成长度已满2不会使用) 成长度(0~2)会加上 1 如果目标是草砖(这部分没变) 会在附近的草砖上生成花草 (因为是不断随机移动挑位置,而且嚐试很多次,这部份就不重要了) ┌ 1/3 生成红花 3.33% ┌ 1/10 生成花│ │ └ 2/3 生成黄花 6.67% └ 9/10 生成草 90% 二、巨大香菇跟树木的成长 成长检查分成两部分:(1)判断能不能生成 (2)生成树木 判断能不能生成的范围跟生成树木的范围是不同的 这里主要是着重判断范围 所有检查都会先把树苗移除再来检查 失败再把树苗放回去 巨大香菇 WorldGenBigMushroom(0); WorldGenBigMushroom(1); 检查范围内只能有空气、树叶 生成的时候只会生成在空气、透明方块 -3-2-1 0+1+2+3 不透明方块会被吃掉(黑色框框部分) +7□□□□□□□ ↑(看这次选) -3-2-1 0+1+2+3 -3-2-1 0+1+2+3 +6□□□□□□□ ↑│(哪种高度) +6■■■■■■■+6■■■■■■■ +5□□□□□□□↑││三种高度的 +5■■□□□■■+5□□□□□□□ +4□□□□□□□│││的检查范围 +4■□■□■□■+4■■■□■■■ +3 │││分别是 +3 □ □ +3 +2 │││(1)蓝 +2 □ □ +2 +1 │││(2)蓝+青 +1 +1 0 ↓↓↓(3)蓝+青+紫 0 0 -1 如果黑色框框部分已经有不透明方块 ↑此处只能是泥土、草砖、菌土 则不会生成香菇砖,之後的树木成长同不重复 只要蓝色区域有的话就有可能生成最矮的巨大香菇(此部份一定都不能有东西) 针叶树 WorldGenTaiga2(); 检查范围内只能有空气、树叶 ←───→ 树叶区宽度 ←─────→ 5x5 7x7随机 先生成树叶 -3-2-1 0+1+2+3 只会生成在空气、透明方块 +9□□□□□ ↑ 不过针叶树树叶只会在检查范围内生成 +8□□□□□ ↑│有树叶区 +7□□□□□ ↑││高度从 然後在中心生成原木 +6□□□□□ ↑│││+6~+9 只会生成在空气、树叶 +5□□□□□ ││││到 +4□□□□□ ││││+1~+2 +3□□□□□ ││││ +2□□□□□ ↓↓↓↓ +1□□□□ ↑只有树干区(只检查树干) 0 ↓高度是1~2随机 -1 ↑此处只能是泥土、草砖 只要蓝色区域有的话就有可能生成最小的针叶树(此部份一定都不能有东西) 白皮树、黄皮树、丛林树 WorldGenForest(); WorldGenTrees(true); this(true, 4, 0, 0, false); WorldGenTrees(true, 4 + par5Random.nextInt(7), 3, 3, false); 由於这类树的检查范围是依据树高 所以先从树木形状跟检查范围(以特定高度为例子) -2-1 0+1+2 +7■■■■■ ↑总↑顶端 检查范围内 +6□□□ │检│三格高 白皮树:只能有空气、树叶 +5□□□ │查↓检查5x5 黄皮树、丛林树: +4□□□□□ │范↑中间 只能有空气、树叶、草砖、泥土、原木 +3□□□□□ │围│区域 +2 │ │检查3x3 先生成树叶 只会生成在空气、透明方块 +1 │ ↓ 然後在中心生成原木只会生成在空气、树叶 0 ↓ ←底层检查1x1 -1 ↑此处只能是泥土、草砖 因此以下区域符合条件的时候最少可以生成一种高度的树 -2-1 0+1+2 □□□ ↑最大 白皮树是+8 □□□ │检查 黄皮树是+7 .......... │范围 丛林树是+13 +6 □□□ │ +5 □□□ │↑ +4 □□□ ││最小 白皮树是+6 +3 □□□ ││检查 黄皮树丛林树是+5 +2 □□□ ││范围 +1 □□□ ││ 0 ↓↓ 不管怎样中心区域(3x3)从+1到最大检查范围(+8/+7/+13) 不可以有东西(扣除例外) 外圈区域(5x5外圈)从最小树高-2(+4/+3/+3)到最大检查范围之中 最少要有连续三层有都没有东西,树苗才有可能生成 丛林巨木 WorldGenHugeTrees(true, 10 + par5Random.nextInt(20), 3, 3); 由於树干是2x2 检查中心是以西北方的那一块 北 负向 西 ■□ 东 负向 □□ 正向 南 正向 检查范围如下 -2-1 0+1+2 检查范围内 +32□□□□□ ↑最高检查范围 只能有空气、树叶、草砖、泥土、原木、树苗 .......... │最多+32 +11□□□□□ │↑ 先生成侧枝 .......... ││最小检查范围 从顶端往下每2~5高度到一半高度 +3□□□□□ ││最多+11 随机往某个方向生成侧枝(含少数原木) +2□□□□□ ││ 树叶只会生成在空气、透明方块 +1□□□□□ ↓↓ 然後在中心2x2生成主干原木 0 □※※ ←底层检查3X3 只会生成在空气、树叶 -1 ■■ 并且在原木周围67%生成藤蔓(每一面,共八面) ↑↑此处只能是泥土、草砖 只会生成在空气 只要蓝色区域有的话就有可能生成最小的丛林巨木(此部份一定都不能有东西) 黄皮神木 WorldGenBigTree(true); 黄皮神木是黄皮树10%机率会进行黄皮神木生成 只检查中心主干区域 他检查跟生成的方式都是线性检查看能检查多远或是生成多远 0 他是先随机一个树高(+5~+16) +5 最少这样就能生成 然後从树苗往上方检查,只能有空气、树叶 +4 只是长不出精美的树型 看最高能长多高(最少要+5就是) +3 +2 然後之後依据树高来生成树木 +1 (过程复杂请忽略他) 0 ↑此处只能是泥土、草砖 -- 有问题请寄信(推文)大多人不在(???? --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.39.137.238
1F:→ organ63521:专业推 04/24 22:46
2F:推 p3398530:专业认真楼上没有推XD 04/24 22:47
3F:→ jeffffliu:新内容其实只有骨粉 跟 香菇之前用纯测试结果不对 04/24 22:51
4F:推 organ63521:我来补推了 04/24 22:54
5F:推 CP64:挖code推 04/25 00:27
6F:推 diffusa:好专业 推推 04/25 11:47
7F:推 jurian0101:推 04/25 13:27
8F:推 mabikerry:那黑皮树呢 04/25 14:52
9F:→ jeffffliu:(就针叶树吧 04/25 14:54
※ 编辑: jeffffliu 来自: 114.39.137.238 (04/25 14:54)
10F:推 TheZeta:......... 对了 我的小麦浇水後长好了呢! 04/25 16:28
11F:→ jeffffliu:不焦水也会长好! 04/25 17:25
12F:→ gh0987:小麦浇水会直接流掉吧 04/25 19:14
13F:→ jeffffliu:查这个只是要让自己不要浪费骨粉 04/25 23:16







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP