Fix inward & downward animation types and Gradle stuff
This commit is contained in:
parent
c97e03e3c0
commit
180e5ead1a
43
build.gradle
43
build.gradle
@ -1,5 +1,6 @@
|
|||||||
plugins {
|
plugins {
|
||||||
id 'fabric-loom' version '0.5-SNAPSHOT'
|
id 'fabric-loom' version '0.5-SNAPSHOT'
|
||||||
|
id 'io.freefair.lombok' version '5.2.1'
|
||||||
id 'maven-publish'
|
id 'maven-publish'
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -14,10 +15,11 @@ dependencies {
|
|||||||
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
|
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
|
||||||
|
|
||||||
// Fabric API.
|
// Fabric API.
|
||||||
// Make a collection of all api modules we wish to use
|
//TODO try this approach to fabric api in the future to avoid unneeded modules.
|
||||||
|
// for some reason it asks for like fabric-biomes and stuff right now.
|
||||||
// Set<String> apiModules = [
|
// Set<String> apiModules = [
|
||||||
// "fabric-api-base"
|
// "fabric-api-base",
|
||||||
//// "fabric-tool-attribute-api-v1"
|
// "fabric-registry-sync-v0"
|
||||||
// ]
|
// ]
|
||||||
//
|
//
|
||||||
// // Add each module as a dependency
|
// // Add each module as a dependency
|
||||||
@ -25,26 +27,21 @@ dependencies {
|
|||||||
// modImplementation(fabricApi.module(it, project.fabric_version))
|
// modImplementation(fabricApi.module(it, project.fabric_version))
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
// Fabric API.
|
||||||
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
|
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
|
||||||
|
|
||||||
// Cloth Config / Autoconfig
|
// Cloth Config / Autoconfig
|
||||||
modImplementation("me.shedaniel.cloth:config-2:4.8.2") {
|
modImplementation("me.shedaniel.cloth:config-2:4.8.2") {
|
||||||
exclude(group: "net.fabricmc.fabric-api")
|
exclude(group: "net.fabricmc.fabric-api")
|
||||||
exclude module: "modmenu"
|
exclude(module: "modmenu")
|
||||||
}
|
}
|
||||||
modImplementation("me.sargunvohra.mcmods:autoconfig1u:3.2.2") {
|
modImplementation("me.sargunvohra.mcmods:autoconfig1u:3.2.2") {
|
||||||
exclude(group: "net.fabricmc.fabric-api")
|
exclude(group: "net.fabricmc.fabric-api")
|
||||||
}
|
}
|
||||||
include "me.shedaniel.cloth:config-2:4.8.2"
|
include("me.shedaniel.cloth:config-2:4.8.2")
|
||||||
include "me.sargunvohra.mcmods:autoconfig1u:3.2.2"
|
include("me.sargunvohra.mcmods:autoconfig1u:3.2.2")
|
||||||
|
|
||||||
modImplementation "io.github.prospector:modmenu:1.14.6+build.31"
|
modImplementation("io.github.prospector:modmenu:1.14.6+build.31")
|
||||||
|
|
||||||
compileOnly 'org.projectlombok:lombok:1.18.12'
|
|
||||||
annotationProcessor 'org.projectlombok:lombok:1.18.12'
|
|
||||||
|
|
||||||
testCompileOnly 'org.projectlombok:lombok:1.18.12'
|
|
||||||
testAnnotationProcessor 'org.projectlombok:lombok:1.18.12'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
minecraft {
|
minecraft {
|
||||||
@ -81,22 +78,4 @@ jar {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// configure the maven publication
|
// configure the maven publication
|
||||||
publishing {
|
//publishing {}
|
||||||
// publications {
|
|
||||||
// mavenJava(MavenPublication) {
|
|
||||||
// // add all the jars that should be included when publishing to maven
|
|
||||||
// artifact(remapJar) {
|
|
||||||
// builtBy remapJar
|
|
||||||
// }
|
|
||||||
// artifact(sourcesJar) {
|
|
||||||
// builtBy remapSourcesJar
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// select the repositories you want to publish to
|
|
||||||
repositories {
|
|
||||||
// uncomment to publish to the local maven
|
|
||||||
// mavenLocal()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
2
lombok.config
Normal file
2
lombok.config
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# This file is generated by the 'io.freefair.lombok' Gradle plugin
|
||||||
|
config.stopBubbling = true
|
@ -1,6 +1,7 @@
|
|||||||
package cc.flogi.dev.smoothchunks.client.handler;
|
package cc.flogi.dev.smoothchunks.client.handler;
|
||||||
|
|
||||||
import cc.flogi.dev.smoothchunks.client.SmoothChunksClient;
|
import cc.flogi.dev.smoothchunks.client.SmoothChunksClient;
|
||||||
|
import cc.flogi.dev.smoothchunks.client.config.LoadAnimation;
|
||||||
import cc.flogi.dev.smoothchunks.client.config.SmoothChunksConfig;
|
import cc.flogi.dev.smoothchunks.client.config.SmoothChunksConfig;
|
||||||
import cc.flogi.dev.smoothchunks.util.UtilEasing;
|
import cc.flogi.dev.smoothchunks.util.UtilEasing;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
@ -9,6 +10,8 @@ import net.minecraft.client.MinecraftClient;
|
|||||||
import net.minecraft.client.render.chunk.ChunkBuilder;
|
import net.minecraft.client.render.chunk.ChunkBuilder;
|
||||||
import net.minecraft.client.util.math.MatrixStack;
|
import net.minecraft.client.util.math.MatrixStack;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.util.math.Direction;
|
||||||
|
import net.minecraft.util.math.Vec3i;
|
||||||
|
|
||||||
import java.util.WeakHashMap;
|
import java.util.WeakHashMap;
|
||||||
|
|
||||||
@ -24,14 +27,30 @@ public final class ChunkAnimationHandler {
|
|||||||
public static ChunkAnimationHandler get() {return instance;}
|
public static ChunkAnimationHandler get() {return instance;}
|
||||||
|
|
||||||
public void addChunk(ChunkBuilder.BuiltChunk chunk) {
|
public void addChunk(ChunkBuilder.BuiltChunk chunk) {
|
||||||
animations.put(chunk, new AnimationController(chunk.getOrigin(), System.currentTimeMillis()));
|
Direction direction = null;
|
||||||
|
|
||||||
|
if (SmoothChunksClient.get().getConfig().getLoadAnimation() == LoadAnimation.INWARD
|
||||||
|
&& MinecraftClient.getInstance().getCameraEntity() != null) {
|
||||||
|
BlockPos dif = chunk.getOrigin().subtract(MinecraftClient.getInstance().getCameraEntity().getBlockPos());
|
||||||
|
|
||||||
|
int difX = Math.abs(dif.getX());
|
||||||
|
int difZ = Math.abs(dif.getZ());
|
||||||
|
|
||||||
|
if (difX > difZ) {
|
||||||
|
if (dif.getX() > 0) direction = Direction.WEST;
|
||||||
|
else direction = Direction.EAST;
|
||||||
|
} else {
|
||||||
|
if (dif.getZ() > 0) direction = Direction.NORTH;
|
||||||
|
else direction = Direction.SOUTH;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
animations.put(chunk, new AnimationController(chunk.getOrigin(), direction, System.currentTimeMillis()));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateChunk(ChunkBuilder.BuiltChunk chunk, MatrixStack stack) {
|
public void updateChunk(ChunkBuilder.BuiltChunk chunk, MatrixStack stack) {
|
||||||
SmoothChunksConfig config = SmoothChunksClient.get().getConfig();
|
SmoothChunksConfig config = SmoothChunksClient.get().getConfig();
|
||||||
|
|
||||||
// System.out.println(config.getDuration() + " - " + config.getLoadAnimation().name() + " - " + config.isDisableNearby());
|
|
||||||
|
|
||||||
AnimationController controller = animations.get(chunk);
|
AnimationController controller = animations.get(chunk);
|
||||||
if (controller == null || MinecraftClient.getInstance().getCameraEntity() == null) return;
|
if (controller == null || MinecraftClient.getInstance().getCameraEntity() == null) return;
|
||||||
|
|
||||||
@ -45,18 +64,21 @@ public final class ChunkAnimationHandler {
|
|||||||
double completion = (double) (System.currentTimeMillis() - controller.getStartTime()) / config.getDuration() / 1000d;
|
double completion = (double) (System.currentTimeMillis() - controller.getStartTime()) / config.getDuration() / 1000d;
|
||||||
completion = UtilEasing.easeOutSine(Math.min(completion, 1.0));
|
completion = UtilEasing.easeOutSine(Math.min(completion, 1.0));
|
||||||
|
|
||||||
int chunkY = controller.getFinalPos().getY();
|
BlockPos finalPos = controller.getFinalPos();
|
||||||
|
|
||||||
switch (config.getLoadAnimation()) {
|
switch (config.getLoadAnimation()) {
|
||||||
default:
|
default:
|
||||||
case DOWNWARD:
|
case DOWNWARD:
|
||||||
stack.translate(0, 256 - chunkY - (completion * chunkY), 0);
|
stack.translate(0, finalPos.getY() - (completion * finalPos.getY()), 0);
|
||||||
break;
|
break;
|
||||||
case UPWARD:
|
case UPWARD:
|
||||||
stack.translate(0, -chunkY + (completion * chunkY), 0);
|
stack.translate(0, -finalPos.getY() + (completion * finalPos.getY()), 0);
|
||||||
break;
|
break;
|
||||||
case INWARD:
|
case INWARD:
|
||||||
stack.translate(0, (1 - completion) * controller.getFinalPos().getY(), 0);
|
if (controller.getDirection() == null) break;
|
||||||
|
Vec3i dirVec = controller.getDirection().getVector();
|
||||||
|
double mod = -(200 - UtilEasing.easeInOutSine(completion) * 200);
|
||||||
|
stack.translate(dirVec.getX() * mod, 0, dirVec.getZ() * mod);
|
||||||
break;
|
break;
|
||||||
case SCALE:
|
case SCALE:
|
||||||
stack.scale((float) completion, (float) completion, (float) completion);
|
stack.scale((float) completion, (float) completion, (float) completion);
|
||||||
@ -69,6 +91,7 @@ public final class ChunkAnimationHandler {
|
|||||||
@AllArgsConstructor @Data
|
@AllArgsConstructor @Data
|
||||||
private static class AnimationController {
|
private static class AnimationController {
|
||||||
private BlockPos finalPos;
|
private BlockPos finalPos;
|
||||||
|
private Direction direction;
|
||||||
private long startTime;
|
private long startTime;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user