private static float getHeightValue(SimplexNoise noise, int x, int z) {
    // 使用long避免整数溢出
    final long xl = (long) x;
    final long zl = (long) z;
    
    // 修复1：主要平方和计算
    float baseDist = Mth.sqrt((float)(xl * xl + zl * zl));
    float f = 100.0F - baseDist * 8.0F;
    f = Mth.clamp(f, -100.0F, 80.0F);

    int i = x / 2;
    int j = z / 2;
    int k = x % 2;
    int l = z % 2;

    for (int i1 = -12; i1 <= 12; i1++) {
        for (int j1 = -12; j1 <= 12; j1++) {
            // 修复2：循环内的坐标也使用long
            final long k1 = (long)(i + i1);
            final long l1 = (long)(j + j1);
            
            // 修复3：避免大整数转float的精度损失
            float absK1 = Math.abs(k1);
            float absL1 = Math.abs(l1);
            if (absK1 > 1e7f) absK1 = (float) Math.floor(absK1 / 1e7f) * 1e7f;
            if (absL1 > 1e7f) absL1 = (float) Math.floor(absL1 / 1e7f) * 1e7f;
            
            if (k1 * k1 + l1 * l1 > 4096L && noise.getValue((double)k1, (double)l1) < -0.9F) {
                // 修复4：使用处理后的精度值
                float f1 = (absK1 * 3439.0F + absL1 * 147.0F) % 13.0F + 9.0F;
                
                // 修复5：局部坐标计算安全（值域小，无溢出风险）
                float dx = (float)(k - i1 * 2);
                float dz = (float)(l - j1 * 2);
                float localDist = Mth.sqrt(dx * dx + dz * dz);
                
                float f4 = 100.0F - localDist * f1;
                f4 = Mth.clamp(f4, -100.0F, 80.0F);
                f = Math.max(f, f4);
            }
        }
    }

    return f;
}