switch MouseTweaks disabling method
This commit is contained in:
@@ -1,87 +0,0 @@
|
|||||||
package yalter.mousetweaks.api;
|
|
||||||
|
|
||||||
import net.minecraft.inventory.Container;
|
|
||||||
import net.minecraft.inventory.Slot;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This is the interface you want to implement in your GuiScreen to make it compatible with Mouse Tweaks.
|
|
||||||
* If this interface is not enough (for example, you need a custom slot click function, or if you use a custom Container
|
|
||||||
* which happens to be incompatible), check IMTModGuiContainer2Ex instead.
|
|
||||||
* If you just need to disable Mouse Tweaks or the wheel tweak, see the MouseTweaksIgnore
|
|
||||||
* or the MouseTweaksDisableWheelTweak annotations.
|
|
||||||
*/
|
|
||||||
public interface IMTModGuiContainer2 {
|
|
||||||
/**
|
|
||||||
* If you want to disable Mouse Tweaks in your GuiScreen, return true from this method.
|
|
||||||
*
|
|
||||||
* @return True if Mouse Tweaks should be disabled, false otherwise.
|
|
||||||
*/
|
|
||||||
boolean MT_isMouseTweaksDisabled();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* If you want to disable the Wheel Tweak in your GuiScreen, return true from this method.
|
|
||||||
*
|
|
||||||
* @return True if the Wheel Tweak should be disabled, false otherwise.
|
|
||||||
*/
|
|
||||||
boolean MT_isWheelTweakDisabled();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the Container.
|
|
||||||
*
|
|
||||||
* @return Container that is currently in use.
|
|
||||||
*/
|
|
||||||
Container MT_getContainer();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the Slot that is currently selected by the player, or null if no Slot is selected.
|
|
||||||
*
|
|
||||||
* @return Slot that is located under the mouse, or null if no Slot it currently under the mouse.
|
|
||||||
*/
|
|
||||||
Slot MT_getSlotUnderMouse();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return true if the given Slot behaves like the vanilla crafting output slots (inside the crafting table,
|
|
||||||
* or the furnace output slot, or the anvil output slot, etc.). These slots are handled differently by Mouse Tweaks.
|
|
||||||
*
|
|
||||||
* @param slot the slot to check
|
|
||||||
* @return True if slot is a crafting output slot.
|
|
||||||
*/
|
|
||||||
boolean MT_isCraftingOutput(Slot slot);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return true if the given Slot should be ignored by Mouse Tweaks. Examples of ignored slots are the item select
|
|
||||||
* slots and the Destroy Item slot in the vanilla creative inventory.
|
|
||||||
*
|
|
||||||
* @param slot the slot to check
|
|
||||||
* @return Tru if slot should be ignored by Mouse Tweaks.
|
|
||||||
*/
|
|
||||||
boolean MT_isIgnored(Slot slot);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* If your container has an RMB dragging functionality (like vanilla containers), disable it inside this method.
|
|
||||||
* This method is called every frame (render tick), which is after all mouseClicked / mouseClickMove / mouseReleased
|
|
||||||
* events are handled (although note these events are handled every game tick, which is far less frequent than every
|
|
||||||
* render tick).<br><br>
|
|
||||||
*
|
|
||||||
* If true is returned from this method, Mouse Tweaks (after checking other conditions like isIgnored) will click
|
|
||||||
* the slot on which the right mouse button was initially pressed (in most cases this is the slot currently under
|
|
||||||
* mouse). This is needed because the vanilla RMB dragging functionality prevents the initial slot click.<br><br>
|
|
||||||
*
|
|
||||||
* For vanilla containers this method looks like this:
|
|
||||||
* <pre>
|
|
||||||
* this.ignoreMouseUp = true;
|
|
||||||
*
|
|
||||||
* if (this.dragSplitting) {
|
|
||||||
* if (this.dragSplittingButton == 1) {
|
|
||||||
* this.dragSplitting = false;
|
|
||||||
* return true;
|
|
||||||
* }
|
|
||||||
* }
|
|
||||||
*
|
|
||||||
* return false;
|
|
||||||
* </pre>
|
|
||||||
*
|
|
||||||
* @return True if Mouse Tweaks should click the slot on which the RMB was pressed.
|
|
||||||
*/
|
|
||||||
boolean MT_disableRMBDraggingFunctionality();
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
package yalter.mousetweaks.api;
|
||||||
|
|
||||||
|
import java.lang.annotation.ElementType;
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
import java.lang.annotation.Target;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Put this on your GuiScreen to disable Mouse Tweaks.
|
||||||
|
*/
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
@Target(ElementType.TYPE)
|
||||||
|
public @interface MouseTweaksIgnore {
|
||||||
|
}
|
||||||
@@ -69,13 +69,11 @@ import net.minecraftforge.fluids.Fluid;
|
|||||||
import net.minecraftforge.fluids.FluidStack;
|
import net.minecraftforge.fluids.FluidStack;
|
||||||
import net.minecraftforge.fluids.FluidUtil;
|
import net.minecraftforge.fluids.FluidUtil;
|
||||||
import net.minecraftforge.fml.common.Optional;
|
import net.minecraftforge.fml.common.Optional;
|
||||||
import net.minecraftforge.items.SlotItemHandler;
|
|
||||||
import org.lwjgl.input.Keyboard;
|
import org.lwjgl.input.Keyboard;
|
||||||
import org.lwjgl.input.Mouse;
|
import org.lwjgl.input.Mouse;
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
import yalter.mousetweaks.api.IMTModGuiContainer2;
|
import yalter.mousetweaks.api.MouseTweaksIgnore;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
@@ -88,8 +86,8 @@ import static appeng.integration.modules.jei.JEIPlugin.aeGuiHandler;
|
|||||||
import static appeng.integration.modules.jei.JEIPlugin.runtime;
|
import static appeng.integration.modules.jei.JEIPlugin.runtime;
|
||||||
|
|
||||||
|
|
||||||
@Optional.Interface(iface = "yalter.mousetweaks.api.IMTModGuiContainer2", modid = "mousetweaks")
|
@MouseTweaksIgnore
|
||||||
public abstract class AEBaseGui extends GuiContainer implements IMTModGuiContainer2 {
|
public abstract class AEBaseGui extends GuiContainer {
|
||||||
private final List<InternalSlotME> meSlots = new ArrayList<>();
|
private final List<InternalSlotME> meSlots = new ArrayList<>();
|
||||||
// drag y
|
// drag y
|
||||||
private final Set<Slot> drag_click = new HashSet<>();
|
private final Set<Slot> drag_click = new HashSet<>();
|
||||||
@@ -935,7 +933,10 @@ public abstract class AEBaseGui extends GuiContainer implements IMTModGuiContain
|
|||||||
}
|
}
|
||||||
} else if (s instanceof AppEngSlot) {
|
} else if (s instanceof AppEngSlot) {
|
||||||
AppEngSlot appEngSlot = ((AppEngSlot) s);
|
AppEngSlot appEngSlot = ((AppEngSlot) s);
|
||||||
if (s.getStack().isEmpty()) return;
|
if (s.getStack().isEmpty()) {
|
||||||
|
super.drawSlot(s);
|
||||||
|
return;
|
||||||
|
}
|
||||||
appEngSlot.setDisplay(true);
|
appEngSlot.setDisplay(true);
|
||||||
appEngSlot.setReturnAsSingleStack(true);
|
appEngSlot.setReturnAsSingleStack(true);
|
||||||
|
|
||||||
@@ -987,47 +988,4 @@ public abstract class AEBaseGui extends GuiContainer implements IMTModGuiContain
|
|||||||
protected List<InternalSlotME> getMeSlots() {
|
protected List<InternalSlotME> getMeSlots() {
|
||||||
return this.meSlots;
|
return this.meSlots;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
@Optional.Method(modid = "mousetweaks")
|
|
||||||
public boolean MT_isMouseTweaksDisabled() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@Optional.Method(modid = "mousetweaks")
|
|
||||||
public boolean MT_isWheelTweakDisabled() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@Optional.Method(modid = "mousetweaks")
|
|
||||||
public Container MT_getContainer() {
|
|
||||||
return this.inventorySlots;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@Optional.Method(modid = "mousetweaks")
|
|
||||||
public Slot MT_getSlotUnderMouse() {
|
|
||||||
return getSlotUnderMouse();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@Optional.Method(modid = "mousetweaks")
|
|
||||||
public boolean MT_isCraftingOutput(Slot slot) {
|
|
||||||
return slot instanceof SlotOutput || slot instanceof AppEngCraftingSlot;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@Optional.Method(modid = "mousetweaks")
|
|
||||||
public boolean MT_isIgnored(Slot slot) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@Optional.Method(modid = "mousetweaks")
|
|
||||||
public boolean MT_disableRMBDraggingFunctionality() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user