Skip to content

Commit

Permalink
Added a configurable key-bind for the modifier used by mouse-wheel it…
Browse files Browse the repository at this point in the history
…ems (color applicator)
  • Loading branch information
shartte committed Mar 12, 2024
1 parent 3d35f2c commit f2d25d8
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 14 deletions.
1 change: 1 addition & 0 deletions src/generated/resources/assets/ae2/lang/en_us.json
Original file line number Diff line number Diff line change
Expand Up @@ -956,6 +956,7 @@
"item.ae2.yellow_smart_dense_cable": "Yellow ME Dense Smart Cable",
"key.ae2.category": "Applied Energistics 2",
"key.ae2.guide": "Open Guide for Items",
"key.ae2.mouse_wheel_item_modifier": "Modifier for Mouse-Wheel Items",
"key.ae2.portable_fluid_cell": "Open Portable Fluid Cell",
"key.ae2.portable_item_cell": "Open Portable Item Cell",
"key.ae2.wireless_terminal": "Open Wireless Terminal",
Expand Down
12 changes: 2 additions & 10 deletions src/main/java/appeng/client/guidebook/hotkey/OpenGuideHotkey.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import com.mojang.blaze3d.platform.InputConstants;

import org.jetbrains.annotations.Nullable;
import org.lwjgl.glfw.GLFW;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand All @@ -15,7 +14,6 @@
import net.minecraft.client.Minecraft;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.TooltipFlag;
Expand All @@ -29,25 +27,19 @@
import appeng.client.guidebook.indices.ItemIndex;
import appeng.client.guidebook.screen.GuideScreen;
import appeng.core.AEConfig;
import appeng.core.AppEng;
import appeng.core.AppEngClient;

/**
* Adds a "Hold X to show guide" tooltip
*/
public final class OpenGuideHotkey {
private static final KeyMapping OPEN_GUIDE_MAPPING = new KeyMapping(
"key.ae2.guide", GLFW.GLFW_KEY_G, "key.ae2.category");

static {
// Should only occur in tooltips (which is only in UI)
OPEN_GUIDE_MAPPING.setKeyConflictContext(KeyConflictContext.GUI);
}
"key.ae2.guide", KeyConflictContext.GUI, InputConstants.Type.KEYSYM, InputConstants.KEY_G,
"key.ae2.category");

private static final Logger LOG = LoggerFactory.getLogger(OpenGuideHotkey.class);

private static final int TICKS_TO_OPEN = 10;
private static final ResourceLocation TOOLTIP_PHASE = AppEng.makeId("open_guide_for_item");

private static boolean newTick = true;

Expand Down
18 changes: 14 additions & 4 deletions src/main/java/appeng/core/AppEngClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,13 @@

import java.util.Objects;

import com.mojang.blaze3d.platform.InputConstants;
import com.mojang.brigadier.builder.LiteralArgumentBuilder;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import net.minecraft.client.KeyMapping;
import net.minecraft.client.Minecraft;
import net.minecraft.commands.CommandSourceStack;
import net.minecraft.commands.Commands;
Expand All @@ -51,6 +53,7 @@
import net.neoforged.neoforge.client.event.RegisterDimensionSpecialEffectsEvent;
import net.neoforged.neoforge.client.event.RegisterKeyMappingsEvent;
import net.neoforged.neoforge.client.event.RegisterParticleProvidersEvent;
import net.neoforged.neoforge.client.settings.KeyConflictContext;
import net.neoforged.neoforge.common.NeoForge;
import net.neoforged.neoforge.event.TickEvent;
import net.neoforged.neoforge.event.server.ServerStartingEvent;
Expand Down Expand Up @@ -98,7 +101,6 @@
import appeng.siteexport.SiteExporter;
import appeng.spatial.SpatialStorageDimensionIds;
import appeng.spatial.SpatialStorageSkyProperties;
import appeng.util.InteractionUtil;
import appeng.util.Platform;

/**
Expand All @@ -116,6 +118,13 @@ public class AppEngClient extends AppEngBase {
*/
private CableRenderMode prevCableRenderMode = CableRenderMode.STANDARD;

/**
* This modifier key has to be held to activate mouse wheel items.
*/
private static final KeyMapping MOUSE_WHEEL_ITEM_MODIFIER = new KeyMapping(
"key.ae2.mouse_wheel_item_modifier", KeyConflictContext.IN_GAME, InputConstants.Type.KEYSYM,
InputConstants.KEY_LSHIFT, "key.ae2.category");

private final Guide guide;

public AppEngClient(IEventBus modEventBus) {
Expand Down Expand Up @@ -217,6 +226,7 @@ private void registerHotkeys(RegisterKeyMappingsEvent e) {
if (AEConfig.instance().isGuideHotkeyEnabled()) {
e.register(OpenGuideHotkey.getHotkey());
}
e.register(MOUSE_WHEEL_ITEM_MODIFIER);
Hotkeys.finalizeRegistration(e::register);
}

Expand Down Expand Up @@ -299,10 +309,10 @@ private void wheelEvent(final InputEvent.MouseScrollingEvent me) {

final Minecraft mc = Minecraft.getInstance();
final Player player = mc.player;
if (InteractionUtil.isInAlternateUseMode(player)) {
final boolean mainHand = player.getItemInHand(InteractionHand.MAIN_HAND)
if (MOUSE_WHEEL_ITEM_MODIFIER.isDown()) {
var mainHand = player.getItemInHand(InteractionHand.MAIN_HAND)
.getItem() instanceof IMouseWheelItem;
final boolean offHand = player.getItemInHand(InteractionHand.OFF_HAND).getItem() instanceof IMouseWheelItem;
var offHand = player.getItemInHand(InteractionHand.OFF_HAND).getItem() instanceof IMouseWheelItem;

if (mainHand || offHand) {
NetworkHandler.instance().sendToServer(new MouseWheelPacket(me.getScrollDeltaY() > 0));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,7 @@ private void generateLocalizations() {
add("key.ae2.portable_item_cell", "Open Portable Item Cell");
add("key.ae2.wireless_terminal", "Open Wireless Terminal");
add("key.ae2.guide", "Open Guide for Items");
add("key.ae2.mouse_wheel_item_modifier", "Modifier for Mouse-Wheel Items");
add("key.toggle_focus.desc", "Toggle search box focus");
add("stat.ae2.items_extracted", "Items extracted from ME Storage");
add("stat.ae2.items_inserted", "Items added to ME Storage");
Expand Down

0 comments on commit f2d25d8

Please sign in to comment.