diff options
author | olim <bobq4582@gmail.com> | 2024-05-03 15:18:58 +0100 |
---|---|---|
committer | olim <bobq4582@gmail.com> | 2024-07-01 14:26:13 +0100 |
commit | e56c6ebe57a150f6c442f0bbe81875665c3a7ad9 (patch) | |
tree | e5cfe1daea812f7026d7a4ae5c765d5633202772 /src/main/java/de/hysky/skyblocker | |
parent | 599117db34159eb04cc0ae2eb91b7dc67d9bbd88 (diff) | |
download | Skyblocker-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')
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; } |