From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: violetc <58360096+s-yh-china@users.noreply.github.com> Date: Thu, 20 Jul 2023 20:22:47 +0800 Subject: [PATCH] Optimized CubePointRange This patch is Powered by Gale(https://github.com/GaleMC/Gale) diff --git a/net/minecraft/world/phys/shapes/CubePointRange.java b/net/minecraft/world/phys/shapes/CubePointRange.java index 62aea61c5f240aa59b8489dd0bbb3d1b69b54b1c..b8e06a2d7f3a42a1cec1c87b950242acda54b214 100644 --- a/net/minecraft/world/phys/shapes/CubePointRange.java +++ b/net/minecraft/world/phys/shapes/CubePointRange.java @@ -3,23 +3,33 @@ package net.minecraft.world.phys.shapes; import it.unimi.dsi.fastutil.doubles.AbstractDoubleList; public class CubePointRange extends AbstractDoubleList { + private final int size; // Leaves - replace parts by size in CubePointRange private final int parts; + private final double scale; // Leaves - replace division by multiplication in CubePointRange public CubePointRange(int parts) { if (parts <= 0) { throw new IllegalArgumentException("Need at least 1 part"); } else { this.parts = parts; + this.size = parts + 1; } + this.scale = 1.0D / parts; // Leaves - replace division by multiplication in CubePointRange } @Override public double getDouble(int value) { - return (double)value / this.parts; + // Leaves start - replace division by multiplication in CubePointRange + if (!org.leavesmc.leaves.LeavesConfig.performance.optimizedCubePointRange) { + return (double)value / (double)this.parts; + } else { + return value * this.scale; + } + // Leaves start - replace division by multiplication in CubePointRange } @Override public int size() { - return this.parts + 1; + return !org.leavesmc.leaves.LeavesConfig.performance.optimizedCubePointRange ? this.parts + 1 : size; // Leaves - replace parts by size in CubePointRange } }