Add Inventory Buttons
This commit is contained in:
@@ -35,6 +35,10 @@ public abstract class MixinHandledScreen<T extends ScreenHandler> {
|
||||
@Shadow
|
||||
public abstract T getScreenHandler();
|
||||
|
||||
@Shadow
|
||||
protected int y;
|
||||
@Shadow
|
||||
protected int x;
|
||||
@Unique
|
||||
PlayerInventory playerInventory;
|
||||
|
||||
@@ -52,14 +56,17 @@ public abstract class MixinHandledScreen<T extends ScreenHandler> {
|
||||
|
||||
@Inject(method = "mouseClicked", at = @At("HEAD"), cancellable = true)
|
||||
public void onMouseClicked(double mouseX, double mouseY, int button, CallbackInfoReturnable<Boolean> cir) {
|
||||
if (ScreenClickEvent.Companion.publish(new ScreenClickEvent((HandledScreen<?>) (Object) this, mouseX, mouseY, button)).getCancelled()) {
|
||||
if (HandledScreenClickEvent.Companion.publish(new HandledScreenClickEvent((HandledScreen<?>) (Object) this, mouseX, mouseY, button)).getCancelled()) {
|
||||
cir.setReturnValue(true);
|
||||
}
|
||||
}
|
||||
|
||||
@Inject(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/ingame/HandledScreen;drawForeground(Lnet/minecraft/client/gui/DrawContext;II)V", shift = At.Shift.AFTER))
|
||||
public void onAfterRenderForeground(DrawContext context, int mouseX, int mouseY, float delta, CallbackInfo ci) {
|
||||
HandledScreenForegroundEvent.Companion.publish(new HandledScreenForegroundEvent((HandledScreen<?>) (Object) this, mouseX, mouseY, delta));
|
||||
context.getMatrices().push();
|
||||
context.getMatrices().translate(-x, -y, 0);
|
||||
HandledScreenForegroundEvent.Companion.publish(new HandledScreenForegroundEvent((HandledScreen<?>) (Object) this, context, mouseX, mouseY, delta));
|
||||
context.getMatrices().pop();
|
||||
}
|
||||
|
||||
@Inject(method = "onMouseClick(Lnet/minecraft/screen/slot/Slot;IILnet/minecraft/screen/slot/SlotActionType;)V", at = @At("HEAD"), cancellable = true)
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
package moe.nea.firmament.mixins.accessor;
|
||||
|
||||
import me.shedaniel.math.Rectangle;
|
||||
import net.minecraft.client.gui.screen.ingame.HandledScreen;
|
||||
import net.minecraft.screen.slot.Slot;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -17,4 +18,18 @@ public interface AccessorHandledScreen {
|
||||
@Accessor("focusedSlot")
|
||||
@Nullable
|
||||
Slot getFocusedSlot_Firmament();
|
||||
|
||||
@Accessor("backgroundWidth")
|
||||
int getBackgroundWidth_Firmament();
|
||||
|
||||
@Accessor("backgroundHeight")
|
||||
int getBackgroundHeight_Firmament();
|
||||
|
||||
@Accessor("x")
|
||||
int getX_Firmament();
|
||||
|
||||
@Accessor("y")
|
||||
int getY_Firmament();
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user