@@ -1436,7 +1436,7 @@ public static void method789(int chunkLocalX, int chunkY, int chunkX, int chunkL
1436
1436
}
1437
1437
1438
1438
public static int method888 (int x , int y ) {
1439
- int vertexHeight = -128 + MovedStatics . perlinNoise (x + 45365 , 91923 + y , 4 ) - (-(MovedStatics . perlinNoise (x + 10294 , 37821 + y , 2 ) - 128 >> 1 ) + -(-128 + MovedStatics . perlinNoise (x , y , 1 ) >> 2 ));
1439
+ int vertexHeight = -128 + perlinNoise (x + 45365 , 91923 + y , 4 ) - (-(perlinNoise (x + 10294 , 37821 + y , 2 ) - 128 >> 1 ) + -(-128 + perlinNoise (x , y , 1 ) >> 2 ));
1440
1440
vertexHeight = 35 + (int ) (0.3 * (double ) vertexHeight );
1441
1441
1442
1442
if (vertexHeight >= 10 ) {
@@ -1447,4 +1447,39 @@ public static int method888(int x, int y) {
1447
1447
1448
1448
return vertexHeight ;
1449
1449
}
1450
+
1451
+ public static int interpolateForPerlin (int arg0 , int arg1 , int arg2 , boolean arg3 , int arg4 ) {
1452
+ if (!arg3 )
1453
+ return -109 ;
1454
+ int i = 65536 + -Rasterizer3D .cosinetable [1024 * arg4 / arg1 ] >> 1 ;
1455
+ return ((65536 + -i ) * arg0 >> 16 ) + (arg2 * i >> 16 );
1456
+ }
1457
+
1458
+ public static int randomNoiseWeightedSum (int arg1 , int arg2 ) {
1459
+ int i = randomNoise (-1 + arg1 , -1 + arg2 ) + randomNoise (1 + arg1 , arg2 - 1 ) + randomNoise (-1 + arg1 , 1 + arg2 ) + randomNoise (1 + arg1 , arg2 + 1 );
1460
+ int i_126_ = randomNoise (arg1 - 1 , arg2 ) + randomNoise (arg1 + 1 , arg2 ) - (-randomNoise (arg1 , arg2 - 1 ) + -randomNoise (arg1 , 1 + arg2 ));
1461
+ int i_127_ = randomNoise (arg1 , arg2 );
1462
+ return i / 16 - (-(i_126_ / 8 ) - i_127_ / 4 );
1463
+ }
1464
+
1465
+ public static int perlinNoise (int x , int y , int scale ) {
1466
+ int muX = x & -1 + scale ;
1467
+ int scaledY = y / scale ;
1468
+ int muY = scale - 1 & y ;
1469
+ int scaledX = x / scale ;
1470
+ int a = randomNoiseWeightedSum (scaledX , scaledY );
1471
+ int b = randomNoiseWeightedSum (1 + scaledX , scaledY );
1472
+ int c = randomNoiseWeightedSum (scaledX , 1 + scaledY );
1473
+ int d = randomNoiseWeightedSum (1 + scaledX , 1 + scaledY );
1474
+ int i1 = interpolateForPerlin (a , scale , b , true , muX );
1475
+ int i2 = interpolateForPerlin (c , scale , d , true , muX );
1476
+ return interpolateForPerlin (i1 , scale , i2 , true , muY );
1477
+ }
1478
+
1479
+ public static int randomNoise (int x , int y ) {
1480
+ int i = 57 * y + x ;
1481
+ i ^= i << 13 ;
1482
+ int i_2_ = 1376312589 + (i * i * 15731 + 789221 ) * i & 0x7fffffff ;
1483
+ return i_2_ >> 19 & 0xff ;
1484
+ }
1450
1485
}
0 commit comments