diff options
author | olim <bobq4582@gmail.com> | 2024-04-17 15:06:48 +0100 |
---|---|---|
committer | olim <bobq4582@gmail.com> | 2024-04-17 15:06:48 +0100 |
commit | b6f8394d5b08a53242e6cd06132ab2dd2f7f9186 (patch) | |
tree | 51f0cca1d96a5fa2909157ba4353fec934029fe6 /src/main/java/de/hysky/skyblocker/skyblock | |
parent | c04bef8c93f15ba162091db40c6062af47d22515 (diff) | |
parent | 226df55005fe3d227fbe52b39c2a60f32fef4b2a (diff) | |
download | Skyblocker-b6f8394d5b08a53242e6cd06132ab2dd2f7f9186.tar.gz Skyblocker-b6f8394d5b08a53242e6cd06132ab2dd2f7f9186.tar.bz2 Skyblocker-b6f8394d5b08a53242e6cd06132ab2dd2f7f9186.zip |
Merge remote-tracking branch 'upstream/master' into metal-detector-helper
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/skyblock')
3 files changed, 34 insertions, 8 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/FishingHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/FishingHelper.java index 9e7cf541..7676860f 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/FishingHelper.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/FishingHelper.java @@ -4,6 +4,8 @@ import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.utils.Utils; import de.hysky.skyblocker.utils.render.RenderHelper; import de.hysky.skyblocker.utils.render.title.Title; +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.UseItemCallback; import net.minecraft.client.MinecraftClient; import net.minecraft.client.network.ClientPlayerEntity; @@ -11,6 +13,7 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.FishingRodItem; import net.minecraft.item.ItemStack; import net.minecraft.network.packet.s2c.play.PlaySoundS2CPacket; +import net.minecraft.text.Text; import net.minecraft.util.Formatting; import net.minecraft.util.TypedActionResult; import net.minecraft.util.math.MathHelper; @@ -19,6 +22,7 @@ import net.minecraft.util.math.Vec3d; public class FishingHelper { private static final Title title = new Title("skyblocker.fishing.reelNow", Formatting.GREEN); private static long startTime; + private static long startTimeFish; private static Vec3d normalYawVector; public static void init() { @@ -36,31 +40,58 @@ public class FishingHelper { } return TypedActionResult.pass(stack); }); + WorldRenderEvents.AFTER_TRANSLUCENT.register(FishingHelper::render); } public static void start(PlayerEntity player) { startTime = System.currentTimeMillis(); + startTimeFish = System.currentTimeMillis(); float yawRad = player.getYaw() * 0.017453292F; normalYawVector = new Vec3d(-MathHelper.sin(yawRad), 0, MathHelper.cos(yawRad)); } public static void reset() { startTime = 0; + startTimeFish = 0; + } + + public static void resetFish() { + startTimeFish = 0; } public static void onSound(PlaySoundS2CPacket packet) { String path = packet.getSound().value().getId().getPath(); - if (SkyblockerConfigManager.get().general.fishing.enableFishingHelper && startTime != 0 && System.currentTimeMillis() >= startTime + 2000 && ("entity.generic.splash".equals(path) || "entity.player.splash".equals(path))) { + if (SkyblockerConfigManager.get().general.fishing.enableFishingHelper && startTimeFish != 0 && System.currentTimeMillis() >= startTimeFish + 2000 && ("entity.generic.splash".equals(path) || "entity.player.splash".equals(path))) { ClientPlayerEntity player = MinecraftClient.getInstance().player; if (player != null && player.fishHook != null) { Vec3d soundToFishHook = player.fishHook.getPos().subtract(packet.getX(), 0, packet.getZ()); if (Math.abs(normalYawVector.x * soundToFishHook.z - normalYawVector.z * soundToFishHook.x) < 0.2D && Math.abs(normalYawVector.dotProduct(soundToFishHook)) < 4D && player.getPos().squaredDistanceTo(packet.getX(), packet.getY(), packet.getZ()) > 1D) { RenderHelper.displayInTitleContainerAndPlaySound(title, 10); - reset(); + resetFish(); } } else { reset(); } } } + + public static void render(WorldRenderContext context) { + if (SkyblockerConfigManager.get().general.fishing.enableFishingTimer && startTime != 0) { + ClientPlayerEntity player = MinecraftClient.getInstance().player; + if (player != null && player.fishHook != null) { + float time = (int) ((System.currentTimeMillis() - startTime) / 100f) / 10f; //leave 1dp in seconds + float scale = SkyblockerConfigManager.get().general.fishing.fishingTimerScale; + Vec3d pos = player.fishHook.getPos().add(0, 0.4 + scale / 10, 0); + + Text text; + if (time >= 20 && SkyblockerConfigManager.get().general.fishing.changeTimerColor) { + text = Text.literal(String.valueOf(time)).formatted(Formatting.GREEN); + } else { + text = Text.literal(String.valueOf(time)); + } + + RenderHelper.renderText(context, text, pos, scale, true); + } + } + } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionBrowserScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionBrowserScreen.java index d47fef05..c8bc1f13 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionBrowserScreen.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionBrowserScreen.java @@ -170,7 +170,7 @@ public class AuctionBrowserScreen extends AbstractCustomHypixelGUI<AuctionHouseS @Override protected void drawSlot(DrawContext context, Slot slot) { - if (SkyblockerConfigManager.get().general.fancyAuctionHouse.highlightCheapBIN && isSlotHighlighted.getOrDefault(slot.id, false)) { + if (SkyblockerConfigManager.get().general.fancyAuctionHouse.highlightCheapBIN && slot.hasStack() && isSlotHighlighted.getOrDefault(slot.id, false)) { context.drawBorder(slot.x, slot.y, 16, 16, new Color(0, 255, 0, 100).getRGB()); } super.drawSlot(context, slot); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/HotbarSlotLock.java b/src/main/java/de/hysky/skyblocker/skyblock/item/HotbarSlotLock.java index 069a030d..0fda3ef4 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/HotbarSlotLock.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/HotbarSlotLock.java @@ -5,7 +5,6 @@ import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper; import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.client.option.KeyBinding; import org.lwjgl.glfw.GLFW; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import java.util.List; @@ -24,10 +23,6 @@ public class HotbarSlotLock { return SkyblockerConfigManager.get().general.lockedSlots.contains(slot); } - public static void handleDropSelectedItem(int slot, CallbackInfoReturnable<Boolean> cir) { - if (isLocked(slot)) cir.setReturnValue(false); - } - public static void handleInputEvents(ClientPlayerEntity player) { while (hotbarSlotLock.wasPressed()) { List<Integer> lockedSlots = SkyblockerConfigManager.get().general.lockedSlots; |