aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker
diff options
context:
space:
mode:
authorolim <bobq4582@gmail.com>2024-05-03 15:18:58 +0100
committerolim <bobq4582@gmail.com>2024-07-01 14:26:13 +0100
commite56c6ebe57a150f6c442f0bbe81875665c3a7ad9 (patch)
treee5cfe1daea812f7026d7a4ae5c765d5633202772 /src/main/java/de/hysky/skyblocker
parent599117db34159eb04cc0ae2eb91b7dc67d9bbd88 (diff)
downloadSkyblocker-e56c6ebe57a150f6c442f0bbe81875665c3a7ad9.tar.gz
Skyblocker-e56c6ebe57a150f6c442f0bbe81875665c3a7ad9.tar.bz2
Skyblocker-e56c6ebe57a150f6c442f0bbe81875665c3a7ad9.zip
add control test helper and clean more code
Diffstat (limited to 'src/main/java/de/hysky/skyblocker')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/ControlTestHelper.java38
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DisciplineTestHelper.java9
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DojoManager.java9
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/MasteryTestHelper.java7
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/SwiftnessTestHelper.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/TenacityTestHelper.java9
6 files changed, 51 insertions, 23 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/ControlTestHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/ControlTestHelper.java
new file mode 100644
index 00000000..fa3ef4f8
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/ControlTestHelper.java
@@ -0,0 +1,38 @@
+package de.hysky.skyblocker.skyblock.crimson.dojo;
+
+import de.hysky.skyblocker.utils.render.RenderHelper;
+import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.mob.WitherSkeletonEntity;
+import net.minecraft.util.Util;
+import net.minecraft.util.math.Vec3d;
+
+import java.awt.*;
+
+public class ControlTestHelper {
+
+ private static WitherSkeletonEntity correctWitherSkeleton;
+ private static long pingMultiplier;
+
+ protected static void reset() {
+ correctWitherSkeleton = null;
+ pingMultiplier = 0;
+ }
+
+ protected static void onEntitySpawn(Entity entity) {
+ if (entity instanceof WitherSkeletonEntity witherSkeleton && correctWitherSkeleton == null) {
+ correctWitherSkeleton = witherSkeleton;
+ pingMultiplier = Util.getMeasuringTimeMs() / 100000;
+ System.out.println(pingMultiplier);
+ }
+ }
+
+ protected static void render(WorldRenderContext context) {
+ if (correctWitherSkeleton != null) {
+ Vec3d movementVector = correctWitherSkeleton.getPos().subtract(new Vec3d(correctWitherSkeleton.prevX, correctWitherSkeleton.prevY, correctWitherSkeleton.prevZ));
+ Vec3d offset = movementVector.multiply(pingMultiplier);
+ Vec3d aimPos = correctWitherSkeleton.getEyePos().add(offset);
+ RenderHelper.renderLineFromCursor(context, aimPos, Color.LIGHT_GRAY.getColorComponents(new float[]{0, 0, 0}), 1, 3);
+ }
+ }
+}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DisciplineTestHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DisciplineTestHelper.java
index 2350ea97..cce32847 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DisciplineTestHelper.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DisciplineTestHelper.java
@@ -2,22 +2,13 @@ package de.hysky.skyblocker.skyblock.crimson.dojo;
import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip;
import net.minecraft.client.MinecraftClient;
-import net.minecraft.entity.mob.ZombieEntity;
import net.minecraft.util.Util;
-import java.text.DecimalFormat;
import java.util.HashMap;
-import java.util.Map;
public class DisciplineTestHelper {
private static final MinecraftClient CLIENT = MinecraftClient.getInstance();
- private static final Map<ZombieEntity, Long> zombies = new HashMap<>();
-
- protected static void reset() {
- zombies.clear();
- }
-
private static final HashMap<String, String> SWORD_TO_NAME_LOOKUP = Util.make(new HashMap<>(), map -> {
map.put("WOOD_SWORD", "Wood");
map.put("IRON_SWORD", "Iron");
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DojoManager.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DojoManager.java
index 2d6b98f8..45819578 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DojoManager.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DojoManager.java
@@ -8,17 +8,12 @@ import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents;
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext;
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents;
import net.fabricmc.fabric.api.event.player.AttackEntityCallback;
-import net.fabricmc.fabric.api.event.player.PlayerBlockBreakEvents;
import net.minecraft.block.BlockState;
-import net.minecraft.block.Blocks;
import net.minecraft.client.MinecraftClient;
-import net.minecraft.client.session.telemetry.WorldLoadedEvent;
import net.minecraft.client.world.ClientWorld;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.PlayerEntity;
-import net.minecraft.network.packet.s2c.play.BlockUpdateS2CPacket;
import net.minecraft.network.packet.s2c.play.ParticleS2CPacket;
-import net.minecraft.server.world.BlockEvent;
import net.minecraft.text.Text;
import net.minecraft.util.ActionResult;
import net.minecraft.util.Hand;
@@ -44,6 +39,7 @@ public class DojoManager {
MASTERY("Mastery"),
DISCIPLINE("Discipline"),
SWIFTNESS("Swiftness"),
+ CONTROL("Control"),
TENACITY("Tenacity");
private final String name;
@@ -76,6 +72,7 @@ public class DojoManager {
MasteryTestHelper.reset();
TenacityTestHelper.reset();
ForceTestHelper.reset();
+ ControlTestHelper.reset();
}
/**
@@ -166,6 +163,7 @@ public class DojoManager {
switch (currentChallenge) {
case TENACITY -> TenacityTestHelper.onEntitySpawn(entity);
case FORCE -> ForceTestHelper.onEntitySpawn(entity);
+ case CONTROL -> ControlTestHelper.onEntitySpawn(entity);
}
}
@@ -207,6 +205,7 @@ public class DojoManager {
case SWIFTNESS -> SwiftnessTestHelper.render(context);
case TENACITY -> TenacityTestHelper.render(context);
case MASTERY -> MasteryTestHelper.render(context);
+ case CONTROL -> ControlTestHelper.render(context);
}
}
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/MasteryTestHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/MasteryTestHelper.java
index 8071a4af..43af9f29 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/MasteryTestHelper.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/MasteryTestHelper.java
@@ -10,13 +10,14 @@ import net.minecraft.text.Text;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
+import java.awt.*;
import java.text.DecimalFormat;
import java.util.*;
+import java.util.List;
public class MasteryTestHelper {
- private static final float[] LIGHT_GRAY = {192 / 255f, 192 / 255f, 192 / 255f};
private static final DecimalFormat FORMATTER = new DecimalFormat("0.00");
private static final List<BlockPos> blockOrder = new ArrayList<>();
@@ -27,7 +28,7 @@ public class MasteryTestHelper {
endTimes.clear();
}
- public static void onBlockUpdate(BlockPos pos, BlockState state) {
+ protected static void onBlockUpdate(BlockPos pos, BlockState state) {
if (state.isOf(Blocks.LIME_WOOL)) {
blockOrder.add(pos);
endTimes.put(pos, System.currentTimeMillis() + 6850);
@@ -41,7 +42,7 @@ public class MasteryTestHelper {
protected static void render(WorldRenderContext context) {
//render connecting lines
if (!blockOrder.isEmpty()) {
- RenderHelper.renderLineFromCursor(context, blockOrder.getFirst().toCenterPos(), LIGHT_GRAY, 1f, 2);
+ RenderHelper.renderLineFromCursor(context, blockOrder.getFirst().toCenterPos(), Color.LIGHT_GRAY.getColorComponents(new float[]{0, 0, 0}), 1f, 2);
}
if (blockOrder.size() >= 2) {
RenderHelper.renderLinesFromPoints(context, new Vec3d[]{blockOrder.get(0).toCenterPos(), blockOrder.get(1).toCenterPos()}, new float[]{0f, 1f, 0f}, 1, 2, false);
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/SwiftnessTestHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/SwiftnessTestHelper.java
index b7800d10..48764b71 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/SwiftnessTestHelper.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/SwiftnessTestHelper.java
@@ -18,7 +18,7 @@ public class SwiftnessTestHelper {
lastBlock = null;
}
- public static void onBlockUpdate(BlockPos pos, BlockState state) {
+ protected static void onBlockUpdate(BlockPos pos, BlockState state) {
if (state.isOf(Blocks.LIME_WOOL)) {
lastBlock = pos.toImmutable();
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/TenacityTestHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/TenacityTestHelper.java
index 37ba84d2..1ca409d8 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/TenacityTestHelper.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/TenacityTestHelper.java
@@ -18,7 +18,6 @@ public class TenacityTestHelper {
private static final MinecraftClient CLIENT = MinecraftClient.getInstance();
private static final Map<ArmorStandEntity, Vec3d> fireBallsWithStartPos = new HashMap<>();
-
private static final Map<ArmorStandEntity, Vec3d> particleOffsets = new HashMap<>();
protected static void reset() {
@@ -47,14 +46,14 @@ public class TenacityTestHelper {
}
}
- public static HitResult raycast(Vec3d start, Vec3d end, ArmorStandEntity fireball) {
+ protected static HitResult raycast(Vec3d start, Vec3d end, ArmorStandEntity fireball) {
if (CLIENT == null || CLIENT.world == null) {
return null;
}
return CLIENT.world.raycast(new RaycastContext(start, end, RaycastContext.ShapeType.OUTLINE, RaycastContext.FluidHandling.ANY, fireball));
}
- public static void onEntitySpawn(Entity entity) {
+ protected static void onEntitySpawn(Entity entity) {
if (entity instanceof ArmorStandEntity armorStand) {
// they should be holding coal block but are not holding anything idk
fireBallsWithStartPos.put(armorStand, armorStand.getPos());
@@ -62,13 +61,13 @@ public class TenacityTestHelper {
}
}
- public static void onEntityDespawn(Entity entity) {
+ protected static void onEntityDespawn(Entity entity) {
if (entity instanceof ArmorStandEntity armorStand) {
fireBallsWithStartPos.remove(armorStand);
}
}
- public static void onParticle(ParticleS2CPacket packet) {
+ protected static void onParticle(ParticleS2CPacket packet) {
if (!ParticleTypes.FLAME.equals(packet.getParameters().getType())) {
return;
}