From a675d34f6d9b5830bf929ba48f052754f464991f Mon Sep 17 00:00:00 2001 From: flogic Date: Tue, 3 Nov 2020 01:35:14 -0700 Subject: [PATCH] Update to 1.16.4 and optimize distance check Update to 1.16.4 & partially optimize rendering --- build.gradle | 10 +++++----- gradle.properties | 9 ++++++--- .../client/handler/ChunkAnimationHandler.java | 19 +++++++++---------- src/main/resources/fabric.mod.json | 2 +- 4 files changed, 21 insertions(+), 19 deletions(-) diff --git a/build.gradle b/build.gradle index c7c8a50..317a28e 100644 --- a/build.gradle +++ b/build.gradle @@ -31,17 +31,17 @@ dependencies { modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" // Cloth Config / Autoconfig - modImplementation("me.shedaniel.cloth:config-2:4.8.2") { + modImplementation("me.shedaniel.cloth:config-2:${project.cloth_version}") { exclude(group: "net.fabricmc.fabric-api") exclude(module: "modmenu") } - modImplementation("me.sargunvohra.mcmods:autoconfig1u:3.2.2") { + modImplementation("me.sargunvohra.mcmods:autoconfig1u:${project.autoconfig_version}") { exclude(group: "net.fabricmc.fabric-api") } - include("me.shedaniel.cloth:config-2:4.8.2") - include("me.sargunvohra.mcmods:autoconfig1u:3.2.2") + include("me.shedaniel.cloth:config-2:${project.cloth_version}") + include("me.sargunvohra.mcmods:autoconfig1u:${project.autoconfig_version}") - modImplementation("io.github.prospector:modmenu:1.14.6+build.31") + modImplementation("io.github.prospector:modmenu:${project.modmenu_version}") } minecraft { diff --git a/gradle.properties b/gradle.properties index b07c48a..bf767fa 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,12 +2,15 @@ # Done to increase the memory available to gradle. org.gradle.jvmargs=-Xmx1G # Fabric Properties -minecraft_version=1.16.3 -yarn_mappings=1.16.3+build.47 +minecraft_version=1.16.4 +yarn_mappings=1.16.4+build.1 loader_version=0.10.6+build.214 # Mod Properties mod_version=1.0.0 maven_group=cc.flogi.dev archives_base_name=smooth-chunks # Dependencies -fabric_version=0.25.0+build.415-1.16 +fabric_version=0.25.1+build.416-1.16 +autoconfig_version=3.3.1 +cloth_version=4.8.2 +modmenu_version=1.14.6+build.31 diff --git a/src/main/java/cc/flogi/dev/smoothchunks/client/handler/ChunkAnimationHandler.java b/src/main/java/cc/flogi/dev/smoothchunks/client/handler/ChunkAnimationHandler.java index 9650135..ed9c956 100644 --- a/src/main/java/cc/flogi/dev/smoothchunks/client/handler/ChunkAnimationHandler.java +++ b/src/main/java/cc/flogi/dev/smoothchunks/client/handler/ChunkAnimationHandler.java @@ -14,9 +14,7 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.util.math.Vec3i; -import java.util.ArrayList; -import java.util.List; -import java.util.WeakHashMap; +import java.util.*; /** * @author Caden Kriese (flogic) @@ -24,9 +22,13 @@ import java.util.WeakHashMap; * Created on 09/27/2020 */ public final class ChunkAnimationHandler { + /*TODO use Reference2ReferenceLinkedHashMap from FastUtil or just inject the AnimationController directly into BuiltChunk. + * Need to solve concurrency issue as currently #addChunk is called from both render & worker threads. + */ + private static final ChunkAnimationHandler instance = new ChunkAnimationHandler(); - private final WeakHashMap animations = new WeakHashMap<>(); - @Getter private final List loadedChunks = new ArrayList<>(); + private final Map animations = new HashMap<>(); + @Getter private final Set loadedChunks = new HashSet<>(); public static ChunkAnimationHandler get() {return instance;} @@ -64,12 +66,9 @@ public final class ChunkAnimationHandler { BlockPos finalPos = controller.getFinalPos(); - if (config.isDisableNearby()) { - Vec3i cameraPos = MinecraftClient.getInstance().getCameraEntity().getBlockPos(); - Vec3i chunkPos = new Vec3i(finalPos.getX() + 8, cameraPos.getY(), finalPos.getZ() + 8); + if (config.isDisableNearby() && (finalPos.getX()*finalPos.getX() + finalPos.getZ()*finalPos.getZ()) < 32*32) + return; - if (chunkPos.isWithinDistance(cameraPos, 32)) return; - } double completion = (double) (System.currentTimeMillis() - controller.getStartTime()) / config.getDuration() / 1000d; completion = UtilEasing.easeOutSine(Math.min(completion, 1.0)); diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 84065e4..a763f1b 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -33,6 +33,6 @@ "depends": { "fabricloader": ">=0.9.3+build.207", "fabric": "*", - "minecraft": "1.16.3" + "minecraft": ">=1.16.2" } }