Create/src/main/java/com/simibubi/create/events/InputEvents.java

74 lines
2.4 KiB
Java
Raw Normal View History

package com.simibubi.create.events;
import com.simibubi.create.CreateClient;
2021-09-16 04:10:34 +02:00
import com.simibubi.create.content.curiosities.toolbox.ToolboxHandlerClient;
import com.simibubi.create.content.logistics.item.LinkedControllerClientHandler;
import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringHandler;
import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollValueHandler;
import net.minecraft.client.Minecraft;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.client.event.InputEvent.ClickInputEvent;
import net.minecraftforge.client.event.InputEvent.KeyInputEvent;
import net.minecraftforge.client.event.InputEvent.MouseInputEvent;
import net.minecraftforge.client.event.InputEvent.MouseScrollEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
@EventBusSubscriber(value = Dist.CLIENT)
public class InputEvents {
@SubscribeEvent
public static void onKeyInput(KeyInputEvent event) {
int key = event.getKey();
boolean pressed = !(event.getAction() == 0);
2021-07-15 11:32:03 +02:00
if (Minecraft.getInstance().screen != null)
return;
CreateClient.SCHEMATIC_HANDLER.onKeyInput(key, pressed);
2021-09-16 04:10:34 +02:00
ToolboxHandlerClient.onKeyInput(key, pressed);
}
@SubscribeEvent
public static void onMouseScrolled(MouseScrollEvent event) {
2021-07-15 11:32:03 +02:00
if (Minecraft.getInstance().screen != null)
return;
double delta = event.getScrollDelta();
// CollisionDebugger.onScroll(delta);
boolean cancelled = CreateClient.SCHEMATIC_HANDLER.mouseScrolled(delta)
|| CreateClient.SCHEMATIC_AND_QUILL_HANDLER.mouseScrolled(delta) || FilteringHandler.onScroll(delta)
|| ScrollValueHandler.onScroll(delta);
event.setCanceled(cancelled);
}
@SubscribeEvent
public static void onMouseInput(MouseInputEvent event) {
2021-07-15 11:32:03 +02:00
if (Minecraft.getInstance().screen != null)
return;
int button = event.getButton();
boolean pressed = !(event.getAction() == 0);
CreateClient.SCHEMATIC_HANDLER.onMouseInput(button, pressed);
CreateClient.SCHEMATIC_AND_QUILL_HANDLER.onMouseInput(button, pressed);
}
@SubscribeEvent
public static void onClickInput(ClickInputEvent event) {
2021-07-15 11:32:03 +02:00
if (Minecraft.getInstance().screen != null)
return;
if (event.getKeyBinding() == Minecraft.getInstance().options.keyPickItem) {
if (ToolboxHandlerClient.onPickItem())
event.setCanceled(true);
return;
}
if (event.isUseItem())
LinkedControllerClientHandler.deactivateInLectern();
}
}