Skip to content

Commit

Permalink
refactor(game.widget): advanced item tooltip
Browse files Browse the repository at this point in the history
  • Loading branch information
WakelessSloth56 committed Oct 11, 2022
1 parent 377de77 commit ebea275
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 29 deletions.
@@ -1,31 +1,20 @@
package org.auioc.mcmod.arnicalib.mod.client.config;

import org.auioc.mcmod.arnicalib.game.config.ConfigUtils;
import org.auioc.mcmod.arnicalib.mod.client.widget.AdvancedItemTooltip;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.common.ForgeConfigSpec;
import net.minecraftforge.common.ForgeConfigSpec.BooleanValue;

@OnlyIn(Dist.CLIENT)
public class AHClientConfig {

public static final ForgeConfigSpec CONFIG;

public static final BooleanValue enableAdvancedTooltip;
public static final BooleanValue advancedTooltipOnlyOnDebug;
public static final BooleanValue advancedTooltipOnlyOnShift;

static {
final ForgeConfigSpec.Builder b = new ForgeConfigSpec.Builder();

{
b.push("advanced_tooltip");

enableAdvancedTooltip = b.define("enable", true);
advancedTooltipOnlyOnDebug = b.define("only_on_debug", true);
advancedTooltipOnlyOnShift = b.define("only_on_shift", false);

b.pop();
}
ConfigUtils.push(b, "advanced_item_tooltip", AdvancedItemTooltip.Config::build);

CONFIG = b.build();
}
Expand Down
@@ -1,7 +1,7 @@
package org.auioc.mcmod.arnicalib.mod.client.event;

import org.auioc.mcmod.arnicalib.mod.client.command.AHClientCommands;
import org.auioc.mcmod.arnicalib.mod.client.event.handler.TooltipEventHandler;
import org.auioc.mcmod.arnicalib.mod.client.widget.AdvancedItemTooltip;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.client.event.RegisterClientCommandsEvent;
Expand All @@ -16,10 +16,9 @@ public static void registerCommands(final RegisterClientCommandsEvent event) {
AHClientCommands.register(event.getDispatcher());
}


@SubscribeEvent
public static void onItemTooltip(ItemTooltipEvent event) {
TooltipEventHandler.handle(event);
AdvancedItemTooltip.handle(event);
}

}
@@ -1,8 +1,7 @@
package org.auioc.mcmod.arnicalib.mod.client.event.handler;
package org.auioc.mcmod.arnicalib.mod.client.widget;

import org.auioc.mcmod.arnicalib.ArnicaLib;
import org.auioc.mcmod.arnicalib.game.chat.TextUtils;
import org.auioc.mcmod.arnicalib.mod.client.config.AHClientConfig;
import org.lwjgl.glfw.GLFW;
import com.mojang.blaze3d.platform.InputConstants;
import net.minecraft.ChatFormatting;
Expand All @@ -15,17 +14,19 @@
import net.minecraft.world.item.ItemStack;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.common.ForgeConfigSpec;
import net.minecraftforge.common.ForgeConfigSpec.BooleanValue;
import net.minecraftforge.event.entity.player.ItemTooltipEvent;

@OnlyIn(Dist.CLIENT)
public class TooltipEventHandler {
public class AdvancedItemTooltip {

private static Minecraft mc = Minecraft.getInstance();
private static final Minecraft MC = Minecraft.getInstance();

public static void handle(ItemTooltipEvent event) {
if (!AHClientConfig.enableAdvancedTooltip.get()) return;
if (AHClientConfig.advancedTooltipOnlyOnDebug.get() && !isDebugMode()) return;
if (AHClientConfig.advancedTooltipOnlyOnShift.get() && !isShiftKeyDown()) return;
public static void handle(final ItemTooltipEvent event) {
if (!Config.enabled.get()) return;
if (Config.onlyOnDebug.get() && !isDebugMode()) return;
if (Config.onlyOnShift.get() && !isShiftKeyDown()) return;

ItemStack itemStack = event.getItemStack();
if (itemStack.isEmpty()) return;
Expand All @@ -52,20 +53,33 @@ public static void handle(ItemTooltipEvent event) {
addLine(event, TextUtils.literal(" " + tag.location()).setStyle(darkGary));
}
}

}

private static void addLine(ItemTooltipEvent event, Component tooltip) {
event.getToolTip().add(tooltip);
}

private static boolean isDebugMode() {
return mc.options.advancedItemTooltips;
return MC.options.advancedItemTooltips;
}

private static boolean isShiftKeyDown() {
return InputConstants.isKeyDown(mc.getWindow().getWindow(), GLFW.GLFW_KEY_LEFT_SHIFT) ||
InputConstants.isKeyDown(mc.getWindow().getWindow(), GLFW.GLFW_KEY_RIGHT_SHIFT);
return InputConstants.isKeyDown(MC.getWindow().getWindow(), GLFW.GLFW_KEY_LEFT_SHIFT) ||
InputConstants.isKeyDown(MC.getWindow().getWindow(), GLFW.GLFW_KEY_RIGHT_SHIFT);
}

public static class Config {

public static BooleanValue enabled;
public static BooleanValue onlyOnDebug;
public static BooleanValue onlyOnShift;

public static void build(final ForgeConfigSpec.Builder b) {
enabled = b.define("enabled", true);
onlyOnDebug = b.define("only_on_debug", true);
onlyOnShift = b.define("only_on_shift", false);
}

}

}

0 comments on commit ebea275

Please sign in to comment.