Skip to content

Commit 5db0881

Browse files
committed
Add Rightclick action to the layer buttn
1 parent f64f2ac commit 5db0881

4 files changed

Lines changed: 47 additions & 4 deletions

File tree

build.gradle

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,9 @@ buildscript {
1111
plugins {
1212
id 'de.fuerstenau.buildconfig' version '1.1.8'
1313
id 'idea'
14+
id 'net.minecraftforge.gradle.forge' version '2.0.2'
1415
}
1516

16-
apply plugin: 'net.minecraftforge.gradle.forge'
17-
1817
ext.configFile = file "build.properties"
1918

2019
configFile.withReader {

src/main/java/com/mattsmeets/macrokey/gui/GuiMacroManagement.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,12 @@
88
import net.minecraft.client.gui.GuiButton;
99
import net.minecraft.client.gui.GuiScreen;
1010
import net.minecraft.client.resources.I18n;
11+
import net.minecraft.world.BossInfo;
1112
import net.minecraftforge.common.MinecraftForge;
1213
import org.lwjgl.input.Keyboard;
14+
import org.lwjgl.input.Mouse;
1315

16+
import java.awt.*;
1417
import java.io.IOException;
1518
import java.util.List;
1619

src/main/java/com/mattsmeets/macrokey/handler/hook/GuiEventHandler.java

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,21 @@
22

33
import com.mattsmeets.macrokey.MacroKey;
44
import com.mattsmeets.macrokey.config.ModConfig;
5+
import com.mattsmeets.macrokey.event.ExecuteOnTickEvent;
56
import com.mattsmeets.macrokey.model.LayerInterface;
7+
import com.mattsmeets.macrokey.model.lambda.ExecuteOnTickInterface;
68
import net.minecraft.client.gui.GuiButton;
79
import net.minecraft.client.gui.GuiIngameMenu;
810
import net.minecraft.client.gui.GuiScreen;
911
import net.minecraft.client.resources.I18n;
1012
import net.minecraftforge.client.event.GuiScreenEvent;
13+
import net.minecraftforge.common.MinecraftForge;
1114
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
1215
import net.minecraftforge.fml.relauncher.Side;
1316
import net.minecraftforge.fml.relauncher.SideOnly;
17+
import org.lwjgl.input.Mouse;
1418

1519
import java.io.IOException;
16-
import java.util.List;
1720

1821
import static com.mattsmeets.macrokey.MacroKey.instance;
1922

@@ -22,6 +25,8 @@ public class GuiEventHandler {
2225
private String
2326
layerMasterText = I18n.format("text.layer.master");
2427

28+
private GuiButton switchButton = null;
29+
2530
@SideOnly(Side.CLIENT)
2631
@SubscribeEvent
2732
public void event(GuiScreenEvent.InitGuiEvent event) {
@@ -35,7 +40,7 @@ public void event(GuiScreenEvent.InitGuiEvent event) {
3540
LayerInterface layer = instance.modState.getActiveLayer();
3641
// render the layer switcher button
3742
event.getButtonList().add(
38-
new GuiButton(
43+
switchButton = new GuiButton(
3944
ModConfig.buttonLayerSwitcherId,
4045
gui.width / 2 + ModConfig.buttonLayerSwitchSettings[0],
4146
gui.height / 4 + ModConfig.buttonLayerSwitchSettings[1],
@@ -62,4 +67,39 @@ public void postActionPerformed(GuiScreenEvent.ActionPerformedEvent.Post event)
6267
);
6368
}
6469

70+
@SubscribeEvent(receiveCanceled = true)
71+
@SideOnly(Side.CLIENT)
72+
public void mouseInputEvent(GuiScreenEvent.MouseInputEvent.Post event) {
73+
if (!(event.getGui() instanceof GuiIngameMenu) ||
74+
ModConfig.buttonLayerSwitcherId == -1 ||
75+
switchButton == null ||
76+
!switchButton.isMouseOver()) {
77+
return;
78+
}
79+
80+
if (Mouse.getEventButton() != 1 && !Mouse.isButtonDown(1)) {
81+
return;
82+
}
83+
84+
MinecraftForge.EVENT_BUS.post(new ExecuteOnTickEvent(ExecuteOnTickInterface.openMacroKeyGUI));
85+
}
86+
87+
@SubscribeEvent(receiveCanceled = true)
88+
@SideOnly(Side.CLIENT)
89+
public void render(GuiScreenEvent.DrawScreenEvent.Post event) {
90+
if (!(event.getGui() instanceof GuiIngameMenu) ||
91+
ModConfig.buttonLayerSwitcherId == -1 ||
92+
switchButton == null ||
93+
!switchButton.isMouseOver()) {
94+
return;
95+
}
96+
97+
GuiScreen screen = event.getGui();
98+
99+
screen.drawHoveringText(
100+
I18n.format("text.layer.hover.right_click"),
101+
Mouse.getEventX() / 2,
102+
screen.height - (Mouse.getY() / 2)
103+
);
104+
}
65105
}

src/main/resources/assets/macrokey/lang/en_us.lang

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ macrokey.config.title=MacroKey Keybinding Configuration
44

55
## Layer translations ##
66
text.layer.display=Layer: %s
7+
text.layer.hover.right_click=Right-click to open the MacroKey GUI
78
text.layer.master=Master
89
####
910

0 commit comments

Comments
 (0)