# net.minecraft.world.gen.feature.WorldGenMinableの1.7.10、1.8比較

a guest
May 20th, 2015
1,190
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
1. //1.7.10
2.     public boolean generate(World p_76484_1_, Random p_76484_2_, int p_76484_3_, int p_76484_4_, int p_76484_5_)
3.     {
4.         float var6 = p_76484_2_.nextFloat() * (float)Math.PI;
5.         double var7 = (double)((float)(p_76484_3_ + 8) + MathHelper.sin(var6) * (float)this.numberOfBlocks / 8.0F);
6.         double var9 = (double)((float)(p_76484_3_ + 8) - MathHelper.sin(var6) * (float)this.numberOfBlocks / 8.0F);
7.         double var11 = (double)((float)(p_76484_5_ + 8) + MathHelper.cos(var6) * (float)this.numberOfBlocks / 8.0F);
8.         double var13 = (double)((float)(p_76484_5_ + 8) - MathHelper.cos(var6) * (float)this.numberOfBlocks / 8.0F);
9.         double var15 = (double)(p_76484_4_ + p_76484_2_.nextInt(3) - 2);
10.         double var17 = (double)(p_76484_4_ + p_76484_2_.nextInt(3) - 2);
11.
12.         for (int var19 = 0; var19 <= this.numberOfBlocks; ++var19)
13.         {
14.             double var20 = var7 + (var9 - var7) * (double)var19 / (double)this.numberOfBlocks;
15.             double var22 = var15 + (var17 - var15) * (double)var19 / (double)this.numberOfBlocks;
16.             double var24 = var11 + (var13 - var11) * (double)var19 / (double)this.numberOfBlocks;
17.             double var26 = p_76484_2_.nextDouble() * (double)this.numberOfBlocks / 16.0D;
18.             double var28 = (double)(MathHelper.sin((float)var19 * (float)Math.PI / (float)this.numberOfBlocks) + 1.0F) * var26 + 1.0D;
19.             double var30 = (double)(MathHelper.sin((float)var19 * (float)Math.PI / (float)this.numberOfBlocks) + 1.0F) * var26 + 1.0D;
20.             int var32 = MathHelper.floor_double(var20 - var28 / 2.0D);
21.             int var33 = MathHelper.floor_double(var22 - var30 / 2.0D);
22.             int var34 = MathHelper.floor_double(var24 - var28 / 2.0D);
23.             int var35 = MathHelper.floor_double(var20 + var28 / 2.0D);
24.             int var36 = MathHelper.floor_double(var22 + var30 / 2.0D);
25.             int var37 = MathHelper.floor_double(var24 + var28 / 2.0D);
26.
27.             for (int var38 = var32; var38 <= var35; ++var38)
28.             {
29.                 double var39 = ((double)var38 + 0.5D - var20) / (var28 / 2.0D);
30.                 if (var39 * var39 < 1.0D)
31.                 {
32.                     for (int var41 = var33; var41 <= var36; ++var41)
33.                     {
34.                         double var42 = ((double)var41 + 0.5D - var22) / (var30 / 2.0D);
35.                         if (var39 * var39 + var42 * var42 < 1.0D)
36.                         {
37.                             for (int var44 = var34; var44 <= var37; ++var44)
38.                             {
39.                                 double var45 = ((double)var44 + 0.5D - var24) / (var28 / 2.0D);
40.                                 if (var39 * var39 + var42 * var42 + var45 * var45 < 1.0D && p_76484_1_.getBlock(var38, var41, var44) == this.field_150518_c)
41.                                 {
42.                                     p_76484_1_.setBlock(var38, var41, var44, this.field_150519_a, 0, 2);
43.                                 }
44.                             }
45.                         }
46.                     }
47.                 }
48.             }
49.         }
50.
51.         return true;
52.     }
53. //1.8
54.     //起点座標の引数がint3つからBlockPosに
55.     public boolean generate(World worldIn, Random p_180709_2_, BlockPos p_180709_3_)
56.     {
57.         //鉱脈の角度と、鉱脈の始点と終点の座標群。[1.8]座標をBlockPosから取得する形に変更
58.         float var4 = p_180709_2_.nextFloat() * (float)Math.PI;
59.         double var5 = (double)((float)(p_180709_3_.getX() + 8) + MathHelper.sin(var4) * (float)this.numberOfBlocks / 8.0F);
60.         double var7 = (double)((float)(p_180709_3_.getX() + 8) - MathHelper.sin(var4) * (float)this.numberOfBlocks / 8.0F);
61.         double var9 = (double)((float)(p_180709_3_.getZ() + 8) + MathHelper.cos(var4) * (float)this.numberOfBlocks / 8.0F);
62.         double var11 = (double)((float)(p_180709_3_.getZ() + 8) - MathHelper.cos(var4) * (float)this.numberOfBlocks / 8.0F);
63.         //Y座標は高度を直接乱数から生成[1.8]座標をBlockPosから取得する形に変更
64.         double var13 = (double)(p_180709_3_.getY() + p_180709_2_.nextInt(3) - 2);
65.         double var15 = (double)(p_180709_3_.getY() + p_180709_2_.nextInt(3) - 2);
66.
67.         //鉱石塊の生成ループ。[1.8]<=が<に変更されたことで実質-1され、定数の+1と合わせて差し引きゼロ
68.         for (int var17 = 0; var17 < this.numberOfBlocks; ++var17)
69.         {
70.             //[1.8]変数追加。このループ内で頻出する進行率を変数に入れているだけで実質影響なし
71.             //[1.8]式は同じだがループ条件の変更により1.0に到達しなくなった。
72.             float var18 = (float)var17 / (float)this.numberOfBlocks;
73.             //鉱石塊の中央座標
74.             double var19 = var5 + (var7 - var5) * (double)var18;
75.             double var21 = var13 + (var15 - var13) * (double)var18;
76.             double var23 = var9 + (var11 - var9) * (double)var18;
77.             //鉱石塊のサイズ。var27とvar29は水平方向用と垂直方向用だが現在同一値
78.             //[1.8]式は同じだがループ条件の変更により鉱石塊の生成回数に対し鉱石塊のサイズが大きくなった
79.             double var25 = p_180709_2_.nextDouble() * (double)this.numberOfBlocks / 16.0D;
80.             double var27 = (double)(MathHelper.sin((float)Math.PI * var18) + 1.0F) * var25 + 1.0D;
81.             double var29 = (double)(MathHelper.sin((float)Math.PI * var18) + 1.0F) * var25 + 1.0D;
82.             //鉱石塊の座標値の最大値と最低値、端数切り捨てで整数化
83.             int var31 = MathHelper.floor_double(var19 - var27 / 2.0D);
84.             int var32 = MathHelper.floor_double(var21 - var29 / 2.0D);
85.             int var33 = MathHelper.floor_double(var23 - var27 / 2.0D);
86.             int var34 = MathHelper.floor_double(var19 + var27 / 2.0D);
87.             int var35 = MathHelper.floor_double(var21 + var29 / 2.0D);
88.             int var36 = MathHelper.floor_double(var23 + var27 / 2.0D);
89.
90.             //鉱石塊の範囲を走査する多重ループ
91.             for (int var37 = var31; var37 <= var34; ++var37)
92.             {
93.                 //このループの軸方向での鉱石塊中央からの距離÷鉱石塊サイズ
94.                 double var38 = ((double)var37 + 0.5D - var19) / (var27 / 2.0D);
95.                 //この座標が鉱石塊に含まれる可能性があるか
96.                 if (var38 * var38 < 1.0D)
97.                 {
98.                     //同上
99.                     for (int var40 = var32; var40 <= var35; ++var40)
100.                     {
101.                         double var41 = ((double)var40 + 0.5D - var21) / (var29 / 2.0D);
102.                         if (var38 * var38 + var41 * var41 < 1.0D)
103.                         {
104.                             //同上
105.                             for (int var43 = var33; var43 <= var36; ++var43)
106.                             {
107.                                 double var44 = ((double)var43 + 0.5D - var23) / (var27 / 2.0D);
108.                                 //[1.8]座標をBlockPosで扱うようになったことでif文分割
109.                                 if (var38 * var38 + var41 * var41 + var44 * var44 < 1.0D)
110.                                 {
111.                                     BlockPos var46 = new BlockPos(var37, var40, var43);
113.                                     if (this.field_175919_c.apply(worldIn.getBlockState(var46)))
114.                                     {
115.                                         //ブロックを鉱石に置換。[1.8]座標をBlockPosで扱うように変更
116.                                         worldIn.setBlockState(var46, this.oreBlock, 2);
117.                                     }
118.                                 }
119.                             }
120.                         }
121.                     }
122.                 }
123.             }
124.         }
125.
126.         return true;
127.     }
RAW Paste Data