aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DisciplineTestHelper.java18
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/ForceTestHelper.java10
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/MasteryTestHelper.java9
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/StaminaTestHelper.java33
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/TenacityTestHelper.java5
5 files changed, 44 insertions, 31 deletions
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 5c7e8c5a..641b8728 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
@@ -1,10 +1,14 @@
package de.hysky.skyblocker.skyblock.crimson.dojo;
import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip;
+import it.unimi.dsi.fastutil.objects.Object2IntMap;
+import it.unimi.dsi.fastutil.objects.Object2IntMaps;
+import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap;
import net.minecraft.client.MinecraftClient;
import net.minecraft.util.Util;
import java.util.HashMap;
+import java.util.Map;
public class DisciplineTestHelper {
private static final MinecraftClient CLIENT = MinecraftClient.getInstance();
@@ -22,12 +26,12 @@ public class DisciplineTestHelper {
/**
* Stores a color related to the color of the sword: wood = brown, iron = silver, gold = gold, diamond = cyan
*/
- private static final HashMap<String, Integer> SWORD_TO_COLOR_LOOKUP = Util.make(new HashMap<>(), map -> {
- map.put("WOOD_SWORD", 0xa52a2a);
- map.put("IRON_SWORD", 0xc0c0c0);
- map.put("GOLD_SWORD", 0xffd700);
- map.put("DIAMOND_SWORD", 0x00ffff);
- });
+ private static final Object2IntMap<String> SWORD_TO_COLOR_LOOKUP = Object2IntMaps.unmodifiable(new Object2IntOpenHashMap<>(Map.of(
+ "WOOD_SWORD", 0xa52a2a,
+ "IRON_SWORD", 0xc0c0c0,
+ "GOLD_SWORD", 0xffd700,
+ "DIAMOND_SWORD", 0x00ffff
+ )));
/**
* Works out if a zombie should glow based on its name and the currently held item by the player
@@ -58,7 +62,7 @@ public class DisciplineTestHelper {
}
String heldId = ItemTooltip.getInternalNameFromNBT(CLIENT.player.getMainHandStack(), true);
if (SWORD_TO_COLOR_LOOKUP.containsKey(heldId)) {
- return SWORD_TO_COLOR_LOOKUP.get(heldId);
+ return SWORD_TO_COLOR_LOOKUP.getInt(heldId);
}
return 0;
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/ForceTestHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/ForceTestHelper.java
index 3f39a994..8ffb4bd2 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/ForceTestHelper.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/ForceTestHelper.java
@@ -1,6 +1,9 @@
package de.hysky.skyblocker.skyblock.crimson.dojo;
import de.hysky.skyblocker.utils.render.RenderHelper;
+import it.unimi.dsi.fastutil.objects.Object2LongMap;
+import it.unimi.dsi.fastutil.objects.Object2LongMaps;
+import it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap;
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext;
import net.minecraft.entity.Entity;
import net.minecraft.entity.mob.ZombieEntity;
@@ -11,7 +14,6 @@ import net.minecraft.util.math.Vec3d;
import java.awt.*;
import java.text.DecimalFormat;
-import java.util.HashMap;
import java.util.Map;
public class ForceTestHelper {
@@ -19,7 +21,7 @@ public class ForceTestHelper {
private static final DecimalFormat FORMATTER = new DecimalFormat("0.0");
private static final int ZOMBIE_LIFE_TIME = 10100;
- private static final Map<ZombieEntity, Long> zombies = new HashMap<>();
+ private static final Object2LongOpenHashMap<ZombieEntity> zombies = new Object2LongOpenHashMap<>();
protected static void reset() {
zombies.clear();
@@ -56,14 +58,14 @@ public class ForceTestHelper {
protected static void onEntityDespawn(Entity entity) {
if (entity instanceof ZombieEntity zombie) {
- zombies.remove(zombie);
+ zombies.removeLong(zombie);
}
}
protected static void render(WorldRenderContext context) {
//render times
long currentTime = System.currentTimeMillis();
- for (Map.Entry<ZombieEntity, Long> zombie : zombies.entrySet()) {
+ for (Map.Entry<ZombieEntity, Long> zombie : zombies.object2LongEntrySet()) {
float secondsTime = Math.max((zombie.getValue() - currentTime) / 1000f, 0);
MutableText text = Text.literal(FORMATTER.format(secondsTime));
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 32b2442a..d40c89c3 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
@@ -1,6 +1,9 @@
package de.hysky.skyblocker.skyblock.crimson.dojo;
import de.hysky.skyblocker.utils.render.RenderHelper;
+import it.unimi.dsi.fastutil.objects.Object2LongMap;
+import it.unimi.dsi.fastutil.objects.Object2LongMaps;
+import it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap;
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext;
import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks;
@@ -23,7 +26,7 @@ public class MasteryTestHelper {
private static final int BLOCK_LIFE_TIME = 6550;
private static final List<BlockPos> blockOrder = new ArrayList<>();
- private static final Map<BlockPos, Long> endTimes = new HashMap<>();
+ private static final Object2LongOpenHashMap<BlockPos> endTimes = new Object2LongOpenHashMap<>();
protected static void reset() {
blockOrder.clear();
@@ -43,7 +46,7 @@ public class MasteryTestHelper {
}
if (state.isAir()) {
blockOrder.remove(pos);
- endTimes.remove(pos);
+ endTimes.removeLong(pos);
}
}
@@ -59,7 +62,7 @@ public class MasteryTestHelper {
//render times
long currentTime = System.currentTimeMillis();
for (BlockPos pos : blockOrder) {
- long blockEndTime = endTimes.get(pos);
+ long blockEndTime = endTimes.getLong(pos);
float secondsTime = Math.max((blockEndTime - currentTime) / 1000f, 0);
RenderHelper.renderText(context, Text.literal(FORMATTER.format(secondsTime)), pos.add(0, 1, 0).toCenterPos(), 3, true);
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/StaminaTestHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/StaminaTestHelper.java
index afb53243..d8b17cd4 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/StaminaTestHelper.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/StaminaTestHelper.java
@@ -1,6 +1,9 @@
package de.hysky.skyblocker.skyblock.crimson.dojo;
import de.hysky.skyblocker.utils.render.RenderHelper;
+import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
+import it.unimi.dsi.fastutil.ints.Int2ObjectMaps;
+import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext;
import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks;
@@ -21,10 +24,10 @@ public class StaminaTestHelper {
private static final List<Box> wallHoles = new ArrayList<>();
private static final List<Box> lastHoles = new ArrayList<>();
- private static final Map<Box, holeDirection> holeDirections = new HashMap<>();
+ private static final Map<Box, HoleDirection> holeDirections = new HashMap<>();
private static BlockPos middleBase;
- private enum holeDirection {
+ private enum HoleDirection {
POSITIVE_X,
POSITIVE_Z,
NEGATIVE_X,
@@ -59,11 +62,11 @@ public class StaminaTestHelper {
wallHoles.addAll(findHolesInBox(wall));
}
// get direction for the holes
- Map<Box, holeDirection> lastHoleDirections = new HashMap<>(holeDirections);
+ Map<Box, HoleDirection> lastHoleDirections = new HashMap<>(holeDirections);
holeDirections.clear();
for (Box hole : wallHoles) {
- holeDirection holeDirection = getWholeDirection(hole);
- if (holeDirection == StaminaTestHelper.holeDirection.UNCHANGED) {
+ HoleDirection holeDirection = getWholeDirection(hole);
+ if (holeDirection == HoleDirection.UNCHANGED) {
holeDirections.put(hole, lastHoleDirections.get(hole));
continue;
}
@@ -112,8 +115,8 @@ public class StaminaTestHelper {
}
private static List<Box> findWalls(List<BlockPos> currentBottomWallLocations) {
- Map<Integer, List<BlockPos>> possibleWallsX = new HashMap<>();
- Map<Integer, List<BlockPos>> possibleWallsZ = new HashMap<>();
+ Int2ObjectOpenHashMap<List<BlockPos>> possibleWallsX = new Int2ObjectOpenHashMap<>();
+ Int2ObjectOpenHashMap<List<BlockPos>> possibleWallsZ = new Int2ObjectOpenHashMap<>();
for (BlockPos block : currentBottomWallLocations) {
//add to the x walls
int x = block.getX();
@@ -224,30 +227,30 @@ public class StaminaTestHelper {
return holes;
}
- private static holeDirection getWholeDirection(Box hole) {
+ private static HoleDirection getWholeDirection(Box hole) {
//the value has not changed since last time
if (lastHoles.contains(hole)) {
- return holeDirection.UNCHANGED;
+ return HoleDirection.UNCHANGED;
}
//check each direction to work out which way the whole is going
Box posX = hole.offset(1, 0, 0);
if (lastHoles.contains(posX)) {
- return holeDirection.POSITIVE_X;
+ return HoleDirection.POSITIVE_X;
}
Box negX = hole.offset(-1, 0, 0);
if (lastHoles.contains(negX)) {
- return holeDirection.NEGATIVE_X;
+ return HoleDirection.NEGATIVE_X;
}
Box posZ = hole.offset(0, 0, 1);
if (lastHoles.contains(posZ)) {
- return holeDirection.POSITIVE_Z;
+ return HoleDirection.POSITIVE_Z;
}
Box negZ = hole.offset(0, 0, -1);
if (lastHoles.contains(negZ)) {
- return holeDirection.NEGATIVE_Z;
+ return HoleDirection.NEGATIVE_Z;
}
// if pos can not be found mark as new
- return holeDirection.NEW;
+ return HoleDirection.NEW;
}
@@ -262,7 +265,7 @@ public class StaminaTestHelper {
}
}
- private static boolean isHoleIncoming(Box holePos, holeDirection holeDirection, BlockPos playerPos) {
+ private static boolean isHoleIncoming(Box holePos, HoleDirection holeDirection, BlockPos playerPos) {
return switch (holeDirection) {
case POSITIVE_X -> playerPos.getX() < holePos.minX;
case POSITIVE_Z -> playerPos.getZ() < holePos.minZ;
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 861b3453..71c49d76 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
@@ -1,6 +1,7 @@
package de.hysky.skyblocker.skyblock.crimson.dojo;
import de.hysky.skyblocker.utils.render.RenderHelper;
+import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext;
import net.minecraft.client.MinecraftClient;
import net.minecraft.entity.Entity;
@@ -17,8 +18,8 @@ import java.util.*;
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<>();
+ private static final Object2ObjectOpenHashMap<ArmorStandEntity, Vec3d> fireBallsWithStartPos = new Object2ObjectOpenHashMap<>();
+ private static final Object2ObjectOpenHashMap<ArmorStandEntity, Vec3d> particleOffsets = new Object2ObjectOpenHashMap<>();
protected static void reset() {
fireBallsWithStartPos.clear();