Upstream: Fix getLocation for Cartography Table and Stonecutter
This commit is contained in:
parent
836dee238d
commit
0c043344f0
@ -1,8 +0,0 @@
|
|||||||
package io.izzel.arclight.common.bridge.inventory.container;
|
|
||||||
|
|
||||||
import net.minecraft.util.IWorldPosCallable;
|
|
||||||
|
|
||||||
public interface CartographyContainerBridge extends ContainerBridge {
|
|
||||||
|
|
||||||
IWorldPosCallable bridge$getContainerAccess();
|
|
||||||
}
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
package io.izzel.arclight.common.bridge.inventory.container;
|
|
||||||
|
|
||||||
import net.minecraft.util.IWorldPosCallable;
|
|
||||||
|
|
||||||
public interface EnchantmentContainerBridge extends ContainerBridge {
|
|
||||||
|
|
||||||
IWorldPosCallable bridge$getContainerAccess();
|
|
||||||
}
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
package io.izzel.arclight.common.bridge.inventory.container;
|
|
||||||
|
|
||||||
import net.minecraft.util.IWorldPosCallable;
|
|
||||||
|
|
||||||
public interface GrindstoneContainerBridge extends ContainerBridge {
|
|
||||||
|
|
||||||
IWorldPosCallable bridge$getContainerAccess();
|
|
||||||
}
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
package io.izzel.arclight.common.bridge.inventory.container;
|
|
||||||
|
|
||||||
import net.minecraft.util.IWorldPosCallable;
|
|
||||||
|
|
||||||
public interface LoomContainerBridge extends ContainerBridge {
|
|
||||||
|
|
||||||
IWorldPosCallable bridge$getWorldPos();
|
|
||||||
}
|
|
||||||
@ -0,0 +1,14 @@
|
|||||||
|
package io.izzel.arclight.common.bridge.inventory.container;
|
||||||
|
|
||||||
|
import io.izzel.arclight.common.bridge.util.IWorldPosCallableBridge;
|
||||||
|
import net.minecraft.util.IWorldPosCallable;
|
||||||
|
import org.bukkit.Location;
|
||||||
|
|
||||||
|
public interface PosContainerBridge extends ContainerBridge {
|
||||||
|
|
||||||
|
IWorldPosCallable bridge$getWorldPos();
|
||||||
|
|
||||||
|
default Location bridge$getWorldLocation() {
|
||||||
|
return ((IWorldPosCallableBridge) bridge$getWorldPos()).bridge$getLocation();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,8 +0,0 @@
|
|||||||
package io.izzel.arclight.common.bridge.inventory.container;
|
|
||||||
|
|
||||||
import net.minecraft.util.IWorldPosCallable;
|
|
||||||
|
|
||||||
public interface WorkbenchContainerBridge extends ContainerBridge {
|
|
||||||
|
|
||||||
IWorldPosCallable bridge$getContainerAccess();
|
|
||||||
}
|
|
||||||
@ -3,13 +3,11 @@ package io.izzel.arclight.common.mixin.core.inventory;
|
|||||||
import io.izzel.arclight.common.bridge.entity.player.PlayerEntityBridge;
|
import io.izzel.arclight.common.bridge.entity.player.PlayerEntityBridge;
|
||||||
import io.izzel.arclight.common.bridge.inventory.CraftingInventoryBridge;
|
import io.izzel.arclight.common.bridge.inventory.CraftingInventoryBridge;
|
||||||
import io.izzel.arclight.common.bridge.inventory.IInventoryBridge;
|
import io.izzel.arclight.common.bridge.inventory.IInventoryBridge;
|
||||||
import io.izzel.arclight.common.bridge.inventory.container.WorkbenchContainerBridge;
|
import io.izzel.arclight.common.bridge.inventory.container.PosContainerBridge;
|
||||||
import io.izzel.arclight.common.bridge.util.IWorldPosCallableBridge;
|
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.inventory.CraftingInventory;
|
import net.minecraft.inventory.CraftingInventory;
|
||||||
import net.minecraft.inventory.IInventory;
|
import net.minecraft.inventory.IInventory;
|
||||||
import net.minecraft.inventory.container.Container;
|
import net.minecraft.inventory.container.Container;
|
||||||
import net.minecraft.inventory.container.WorkbenchContainer;
|
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.item.crafting.IRecipe;
|
import net.minecraft.item.crafting.IRecipe;
|
||||||
import net.minecraft.util.NonNullList;
|
import net.minecraft.util.NonNullList;
|
||||||
@ -110,8 +108,8 @@ public abstract class CraftingInventoryMixin implements CraftingInventoryBridge,
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Location getLocation() {
|
public Location getLocation() {
|
||||||
return this.eventHandler instanceof WorkbenchContainer
|
return this.eventHandler instanceof PosContainerBridge
|
||||||
? ((IWorldPosCallableBridge) ((WorkbenchContainerBridge) eventHandler).bridge$getContainerAccess()).bridge$getLocation()
|
? ((PosContainerBridge) eventHandler).bridge$getWorldLocation()
|
||||||
: ((PlayerEntityBridge) owner).bridge$getBukkitEntity().getLocation();
|
: ((PlayerEntityBridge) owner).bridge$getBukkitEntity().getLocation();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,19 @@
|
|||||||
|
package io.izzel.arclight.common.mixin.core.inventory.container;
|
||||||
|
|
||||||
|
import io.izzel.arclight.common.bridge.inventory.IInventoryBridge;
|
||||||
|
import io.izzel.arclight.common.bridge.inventory.container.PosContainerBridge;
|
||||||
|
import net.minecraft.inventory.container.CartographyContainer;
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
|
|
||||||
|
@Mixin(targets = "net/minecraft/inventory/container/CartographyContainer$1")
|
||||||
|
public abstract class CartographyContainer1Mixin implements IInventoryBridge {
|
||||||
|
|
||||||
|
@Shadow(aliases = {"this$0", "field_213911_a"}, remap = false) private CartographyContainer outerThis;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Location getLocation() {
|
||||||
|
return ((PosContainerBridge) outerThis).bridge$getWorldLocation();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,8 +1,7 @@
|
|||||||
package io.izzel.arclight.common.mixin.core.inventory.container;
|
package io.izzel.arclight.common.mixin.core.inventory.container;
|
||||||
|
|
||||||
import io.izzel.arclight.common.bridge.inventory.IInventoryBridge;
|
import io.izzel.arclight.common.bridge.inventory.IInventoryBridge;
|
||||||
import io.izzel.arclight.common.bridge.inventory.container.CartographyContainerBridge;
|
import io.izzel.arclight.common.bridge.inventory.container.PosContainerBridge;
|
||||||
import io.izzel.arclight.common.bridge.util.IWorldPosCallableBridge;
|
|
||||||
import net.minecraft.inventory.container.CartographyContainer;
|
import net.minecraft.inventory.container.CartographyContainer;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
@ -15,6 +14,6 @@ public abstract class CartographyContainer2Mixin implements IInventoryBridge {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Location getLocation() {
|
public Location getLocation() {
|
||||||
return ((IWorldPosCallableBridge) ((CartographyContainerBridge) outerThis).bridge$getContainerAccess()).bridge$getLocation();
|
return ((PosContainerBridge) outerThis).bridge$getWorldLocation();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
package io.izzel.arclight.common.mixin.core.inventory.container;
|
package io.izzel.arclight.common.mixin.core.inventory.container;
|
||||||
|
|
||||||
import io.izzel.arclight.common.bridge.entity.player.ServerPlayerEntityBridge;
|
import io.izzel.arclight.common.bridge.entity.player.ServerPlayerEntityBridge;
|
||||||
import io.izzel.arclight.common.bridge.inventory.container.CartographyContainerBridge;
|
import io.izzel.arclight.common.bridge.inventory.container.PosContainerBridge;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.entity.player.PlayerInventory;
|
import net.minecraft.entity.player.PlayerInventory;
|
||||||
import net.minecraft.inventory.CraftResultInventory;
|
import net.minecraft.inventory.CraftResultInventory;
|
||||||
@ -21,7 +21,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
|||||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||||
|
|
||||||
@Mixin(CartographyContainer.class)
|
@Mixin(CartographyContainer.class)
|
||||||
public abstract class CartographyContainerMixin extends ContainerMixin implements CartographyContainerBridge {
|
public abstract class CartographyContainerMixin extends ContainerMixin implements PosContainerBridge {
|
||||||
|
|
||||||
// @formatter:off
|
// @formatter:off
|
||||||
@Shadow @Final private IWorldPosCallable worldPosCallable;
|
@Shadow @Final private IWorldPosCallable worldPosCallable;
|
||||||
@ -54,7 +54,7 @@ public abstract class CartographyContainerMixin extends ContainerMixin implement
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IWorldPosCallable bridge$getContainerAccess() {
|
public IWorldPosCallable bridge$getWorldPos() {
|
||||||
return this.worldPosCallable;
|
return this.worldPosCallable;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
package io.izzel.arclight.common.mixin.core.inventory.container;
|
package io.izzel.arclight.common.mixin.core.inventory.container;
|
||||||
|
|
||||||
import io.izzel.arclight.common.bridge.inventory.container.EnchantmentContainerBridge;
|
import io.izzel.arclight.common.bridge.inventory.container.PosContainerBridge;
|
||||||
import io.izzel.arclight.common.bridge.util.IWorldPosCallableBridge;
|
|
||||||
import io.izzel.arclight.common.mixin.core.inventory.InventoryMixin;
|
import io.izzel.arclight.common.mixin.core.inventory.InventoryMixin;
|
||||||
import net.minecraft.inventory.container.EnchantmentContainer;
|
import net.minecraft.inventory.container.EnchantmentContainer;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
@ -15,6 +14,6 @@ public abstract class EnchantmentContainer1Mixin extends InventoryMixin {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Location getLocation() {
|
public Location getLocation() {
|
||||||
return ((IWorldPosCallableBridge) ((EnchantmentContainerBridge) outerThis).bridge$getContainerAccess()).bridge$getLocation();
|
return ((PosContainerBridge) outerThis).bridge$getWorldLocation();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,7 +2,7 @@ package io.izzel.arclight.common.mixin.core.inventory.container;
|
|||||||
|
|
||||||
import io.izzel.arclight.common.bridge.entity.player.PlayerEntityBridge;
|
import io.izzel.arclight.common.bridge.entity.player.PlayerEntityBridge;
|
||||||
import io.izzel.arclight.common.bridge.entity.player.ServerPlayerEntityBridge;
|
import io.izzel.arclight.common.bridge.entity.player.ServerPlayerEntityBridge;
|
||||||
import io.izzel.arclight.common.bridge.inventory.container.EnchantmentContainerBridge;
|
import io.izzel.arclight.common.bridge.inventory.container.PosContainerBridge;
|
||||||
import io.izzel.arclight.common.bridge.util.IWorldPosCallableBridge;
|
import io.izzel.arclight.common.bridge.util.IWorldPosCallableBridge;
|
||||||
import net.minecraft.advancements.CriteriaTriggers;
|
import net.minecraft.advancements.CriteriaTriggers;
|
||||||
import net.minecraft.enchantment.EnchantmentData;
|
import net.minecraft.enchantment.EnchantmentData;
|
||||||
@ -52,7 +52,7 @@ import java.util.Map;
|
|||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
@Mixin(EnchantmentContainer.class)
|
@Mixin(EnchantmentContainer.class)
|
||||||
public abstract class EnchantmentContainerMixin extends ContainerMixin implements EnchantmentContainerBridge {
|
public abstract class EnchantmentContainerMixin extends ContainerMixin implements PosContainerBridge {
|
||||||
|
|
||||||
// @formatter:off
|
// @formatter:off
|
||||||
@Shadow @Final private IInventory tableInventory;
|
@Shadow @Final private IInventory tableInventory;
|
||||||
@ -278,7 +278,7 @@ public abstract class EnchantmentContainerMixin extends ContainerMixin implement
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IWorldPosCallable bridge$getContainerAccess() {
|
public IWorldPosCallable bridge$getWorldPos() {
|
||||||
return this.worldPosCallable;
|
return this.worldPosCallable;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,12 +1,11 @@
|
|||||||
package io.izzel.arclight.common.mixin.core.inventory.container;
|
package io.izzel.arclight.common.mixin.core.inventory.container;
|
||||||
|
|
||||||
import io.izzel.arclight.common.bridge.util.IWorldPosCallableBridge;
|
import io.izzel.arclight.common.bridge.inventory.container.PosContainerBridge;
|
||||||
import io.izzel.arclight.common.mixin.core.inventory.InventoryMixin;
|
import io.izzel.arclight.common.mixin.core.inventory.InventoryMixin;
|
||||||
import net.minecraft.inventory.container.GrindstoneContainer;
|
import net.minecraft.inventory.container.GrindstoneContainer;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.Shadow;
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
import io.izzel.arclight.common.bridge.inventory.container.GrindstoneContainerBridge;
|
|
||||||
|
|
||||||
@Mixin(targets = "net/minecraft/inventory/container/GrindstoneContainer$1")
|
@Mixin(targets = "net/minecraft/inventory/container/GrindstoneContainer$1")
|
||||||
public abstract class GrindstoneContainer1Mixin extends InventoryMixin {
|
public abstract class GrindstoneContainer1Mixin extends InventoryMixin {
|
||||||
@ -15,6 +14,6 @@ public abstract class GrindstoneContainer1Mixin extends InventoryMixin {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Location getLocation() {
|
public Location getLocation() {
|
||||||
return ((IWorldPosCallableBridge) ((GrindstoneContainerBridge) outerThis).bridge$getContainerAccess()).bridge$getLocation();
|
return ((PosContainerBridge) outerThis).bridge$getWorldLocation();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
package io.izzel.arclight.common.mixin.core.inventory.container;
|
package io.izzel.arclight.common.mixin.core.inventory.container;
|
||||||
|
|
||||||
import io.izzel.arclight.common.bridge.entity.player.PlayerEntityBridge;
|
import io.izzel.arclight.common.bridge.entity.player.PlayerEntityBridge;
|
||||||
import io.izzel.arclight.common.bridge.inventory.container.GrindstoneContainerBridge;
|
import io.izzel.arclight.common.bridge.inventory.container.PosContainerBridge;
|
||||||
import net.minecraft.entity.player.PlayerInventory;
|
import net.minecraft.entity.player.PlayerInventory;
|
||||||
import net.minecraft.inventory.IInventory;
|
import net.minecraft.inventory.IInventory;
|
||||||
import net.minecraft.inventory.container.Container;
|
import net.minecraft.inventory.container.Container;
|
||||||
@ -17,7 +17,7 @@ import org.spongepowered.asm.mixin.injection.Inject;
|
|||||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||||
|
|
||||||
@Mixin(GrindstoneContainer.class)
|
@Mixin(GrindstoneContainer.class)
|
||||||
public abstract class GrindstoneContainerMixin extends ContainerMixin implements GrindstoneContainerBridge {
|
public abstract class GrindstoneContainerMixin extends ContainerMixin implements PosContainerBridge {
|
||||||
|
|
||||||
@Shadow @Final private IInventory inputInventory;
|
@Shadow @Final private IInventory inputInventory;
|
||||||
@Shadow @Final private IInventory outputInventory;
|
@Shadow @Final private IInventory outputInventory;
|
||||||
@ -42,7 +42,7 @@ public abstract class GrindstoneContainerMixin extends ContainerMixin implements
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IWorldPosCallable bridge$getContainerAccess() {
|
public IWorldPosCallable bridge$getWorldPos() {
|
||||||
return this.worldPosCallable;
|
return this.worldPosCallable;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,12 +1,11 @@
|
|||||||
package io.izzel.arclight.common.mixin.core.inventory.container;
|
package io.izzel.arclight.common.mixin.core.inventory.container;
|
||||||
|
|
||||||
|
import io.izzel.arclight.common.bridge.inventory.container.PosContainerBridge;
|
||||||
|
import io.izzel.arclight.common.mixin.core.inventory.InventoryMixin;
|
||||||
import net.minecraft.inventory.container.LoomContainer;
|
import net.minecraft.inventory.container.LoomContainer;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.Shadow;
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
import io.izzel.arclight.common.bridge.inventory.container.LoomContainerBridge;
|
|
||||||
import io.izzel.arclight.common.bridge.util.IWorldPosCallableBridge;
|
|
||||||
import io.izzel.arclight.common.mixin.core.inventory.InventoryMixin;
|
|
||||||
|
|
||||||
@Mixin(targets = "net/minecraft/inventory/container/LoomContainer$1")
|
@Mixin(targets = "net/minecraft/inventory/container/LoomContainer$1")
|
||||||
public abstract class LoomContainer1Mixin extends InventoryMixin {
|
public abstract class LoomContainer1Mixin extends InventoryMixin {
|
||||||
@ -15,6 +14,6 @@ public abstract class LoomContainer1Mixin extends InventoryMixin {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Location getLocation() {
|
public Location getLocation() {
|
||||||
return ((IWorldPosCallableBridge) ((LoomContainerBridge) outerThis).bridge$getWorldPos()).bridge$getLocation();
|
return ((PosContainerBridge) outerThis).bridge$getWorldLocation();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,12 +1,11 @@
|
|||||||
package io.izzel.arclight.common.mixin.core.inventory.container;
|
package io.izzel.arclight.common.mixin.core.inventory.container;
|
||||||
|
|
||||||
|
import io.izzel.arclight.common.bridge.inventory.container.PosContainerBridge;
|
||||||
|
import io.izzel.arclight.common.mixin.core.inventory.InventoryMixin;
|
||||||
import net.minecraft.inventory.container.LoomContainer;
|
import net.minecraft.inventory.container.LoomContainer;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.Shadow;
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
import io.izzel.arclight.common.bridge.inventory.container.LoomContainerBridge;
|
|
||||||
import io.izzel.arclight.common.bridge.util.IWorldPosCallableBridge;
|
|
||||||
import io.izzel.arclight.common.mixin.core.inventory.InventoryMixin;
|
|
||||||
|
|
||||||
@Mixin(targets = "net/minecraft/inventory/container/LoomContainer$2")
|
@Mixin(targets = "net/minecraft/inventory/container/LoomContainer$2")
|
||||||
public abstract class LoomContainer2Mixin extends InventoryMixin {
|
public abstract class LoomContainer2Mixin extends InventoryMixin {
|
||||||
@ -15,6 +14,6 @@ public abstract class LoomContainer2Mixin extends InventoryMixin {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Location getLocation() {
|
public Location getLocation() {
|
||||||
return ((IWorldPosCallableBridge) ((LoomContainerBridge) outerThis).bridge$getWorldPos()).bridge$getLocation();
|
return ((PosContainerBridge) outerThis).bridge$getWorldLocation();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
package io.izzel.arclight.common.mixin.core.inventory.container;
|
package io.izzel.arclight.common.mixin.core.inventory.container;
|
||||||
|
|
||||||
import io.izzel.arclight.common.bridge.entity.player.PlayerEntityBridge;
|
import io.izzel.arclight.common.bridge.entity.player.PlayerEntityBridge;
|
||||||
import io.izzel.arclight.common.bridge.inventory.container.LoomContainerBridge;
|
import io.izzel.arclight.common.bridge.inventory.container.PosContainerBridge;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.entity.player.PlayerInventory;
|
import net.minecraft.entity.player.PlayerInventory;
|
||||||
import net.minecraft.inventory.IInventory;
|
import net.minecraft.inventory.IInventory;
|
||||||
@ -19,7 +19,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
|||||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||||
|
|
||||||
@Mixin(LoomContainer.class)
|
@Mixin(LoomContainer.class)
|
||||||
public abstract class LoomContainerMixin extends ContainerMixin implements LoomContainerBridge {
|
public abstract class LoomContainerMixin extends ContainerMixin implements PosContainerBridge {
|
||||||
|
|
||||||
// @formatter:off
|
// @formatter:off
|
||||||
@Shadow @Final private IInventory inputInventory;
|
@Shadow @Final private IInventory inputInventory;
|
||||||
|
|||||||
@ -0,0 +1,19 @@
|
|||||||
|
package io.izzel.arclight.common.mixin.core.inventory.container;
|
||||||
|
|
||||||
|
import io.izzel.arclight.common.bridge.inventory.IInventoryBridge;
|
||||||
|
import io.izzel.arclight.common.bridge.inventory.container.PosContainerBridge;
|
||||||
|
import net.minecraft.inventory.container.StonecutterContainer;
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
|
|
||||||
|
@Mixin(targets = "net/minecraft/inventory/container/StonecutterContainer$1")
|
||||||
|
public abstract class StonecutterContainer1Mixin implements IInventoryBridge {
|
||||||
|
|
||||||
|
@Shadow(aliases = {"this$0", "field_213915_a"}, remap = false) private StonecutterContainer outerThis;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Location getLocation() {
|
||||||
|
return ((PosContainerBridge) outerThis).bridge$getWorldLocation();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,6 +1,7 @@
|
|||||||
package io.izzel.arclight.common.mixin.core.inventory.container;
|
package io.izzel.arclight.common.mixin.core.inventory.container;
|
||||||
|
|
||||||
import io.izzel.arclight.common.bridge.entity.player.PlayerEntityBridge;
|
import io.izzel.arclight.common.bridge.entity.player.PlayerEntityBridge;
|
||||||
|
import io.izzel.arclight.common.bridge.inventory.container.PosContainerBridge;
|
||||||
import net.minecraft.entity.player.PlayerInventory;
|
import net.minecraft.entity.player.PlayerInventory;
|
||||||
import net.minecraft.inventory.CraftResultInventory;
|
import net.minecraft.inventory.CraftResultInventory;
|
||||||
import net.minecraft.inventory.IInventory;
|
import net.minecraft.inventory.IInventory;
|
||||||
@ -17,11 +18,12 @@ import org.spongepowered.asm.mixin.injection.Inject;
|
|||||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||||
|
|
||||||
@Mixin(StonecutterContainer.class)
|
@Mixin(StonecutterContainer.class)
|
||||||
public abstract class StonecutterContainerMixin extends ContainerMixin {
|
public abstract class StonecutterContainerMixin extends ContainerMixin implements PosContainerBridge {
|
||||||
|
|
||||||
// @formatter:off
|
// @formatter:off
|
||||||
@Shadow @Final public IInventory inputInventory;
|
@Shadow @Final public IInventory inputInventory;
|
||||||
@Shadow @Final private CraftResultInventory inventory;
|
@Shadow @Final private CraftResultInventory inventory;
|
||||||
|
@Shadow @Final private IWorldPosCallable worldPosCallable;
|
||||||
// @formatter:on
|
// @formatter:on
|
||||||
|
|
||||||
private CraftInventoryView bukkitEntity = null;
|
private CraftInventoryView bukkitEntity = null;
|
||||||
@ -42,4 +44,9 @@ public abstract class StonecutterContainerMixin extends ContainerMixin {
|
|||||||
bukkitEntity = new CraftInventoryView(((PlayerEntityBridge) this.playerInventory.player).bridge$getBukkitEntity(), inventory, (Container) (Object) this);
|
bukkitEntity = new CraftInventoryView(((PlayerEntityBridge) this.playerInventory.player).bridge$getBukkitEntity(), inventory, (Container) (Object) this);
|
||||||
return bukkitEntity;
|
return bukkitEntity;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IWorldPosCallable bridge$getWorldPos() {
|
||||||
|
return this.worldPosCallable;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,7 +3,7 @@ package io.izzel.arclight.common.mixin.core.inventory.container;
|
|||||||
import io.izzel.arclight.common.bridge.entity.player.PlayerEntityBridge;
|
import io.izzel.arclight.common.bridge.entity.player.PlayerEntityBridge;
|
||||||
import io.izzel.arclight.common.bridge.inventory.CraftingInventoryBridge;
|
import io.izzel.arclight.common.bridge.inventory.CraftingInventoryBridge;
|
||||||
import io.izzel.arclight.common.bridge.inventory.container.ContainerBridge;
|
import io.izzel.arclight.common.bridge.inventory.container.ContainerBridge;
|
||||||
import io.izzel.arclight.common.bridge.inventory.container.WorkbenchContainerBridge;
|
import io.izzel.arclight.common.bridge.inventory.container.PosContainerBridge;
|
||||||
import io.izzel.arclight.common.mod.util.ArclightCaptures;
|
import io.izzel.arclight.common.mod.util.ArclightCaptures;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.entity.player.PlayerInventory;
|
import net.minecraft.entity.player.PlayerInventory;
|
||||||
@ -37,12 +37,12 @@ import java.util.Optional;
|
|||||||
|
|
||||||
// todo 实现
|
// todo 实现
|
||||||
@Mixin(WorkbenchContainer.class)
|
@Mixin(WorkbenchContainer.class)
|
||||||
public abstract class WorkbenchContainerMixin extends ContainerMixin implements WorkbenchContainerBridge {
|
public abstract class WorkbenchContainerMixin extends ContainerMixin implements PosContainerBridge {
|
||||||
|
|
||||||
// @formatter:off
|
// @formatter:off
|
||||||
@Mutable @Shadow @Final private CraftingInventory craftMatrix;
|
@Mutable @Shadow @Final private CraftingInventory craftMatrix;
|
||||||
@Shadow @Final private CraftResultInventory craftResult;
|
@Shadow @Final private CraftResultInventory craftResult;
|
||||||
@Accessor("worldPosCallable") public abstract IWorldPosCallable bridge$getContainerAccess();
|
@Accessor("worldPosCallable") public abstract IWorldPosCallable bridge$getWorldPos();
|
||||||
// @formatter:on
|
// @formatter:on
|
||||||
|
|
||||||
private CraftInventoryView bukkitEntity;
|
private CraftInventoryView bukkitEntity;
|
||||||
@ -60,7 +60,7 @@ public abstract class WorkbenchContainerMixin extends ContainerMixin implements
|
|||||||
|
|
||||||
@Inject(method = "onCraftMatrixChanged", at = @At("HEAD"))
|
@Inject(method = "onCraftMatrixChanged", at = @At("HEAD"))
|
||||||
public void arclight$capture(IInventory inventoryIn, CallbackInfo ci) {
|
public void arclight$capture(IInventory inventoryIn, CallbackInfo ci) {
|
||||||
ArclightCaptures.captureWorkbenchContainer((Container) (Object) this);
|
ArclightCaptures.captureWorkbenchContainer((WorkbenchContainer) (Object) this);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -266,6 +266,7 @@
|
|||||||
"inventory.container.AbstractRepairContainerMixin",
|
"inventory.container.AbstractRepairContainerMixin",
|
||||||
"inventory.container.BeaconContainerMixin",
|
"inventory.container.BeaconContainerMixin",
|
||||||
"inventory.container.BrewingStandContainerMixin",
|
"inventory.container.BrewingStandContainerMixin",
|
||||||
|
"inventory.container.CartographyContainer1Mixin",
|
||||||
"inventory.container.CartographyContainer2Mixin",
|
"inventory.container.CartographyContainer2Mixin",
|
||||||
"inventory.container.CartographyContainerMixin",
|
"inventory.container.CartographyContainerMixin",
|
||||||
"inventory.container.ChestContainerMixin",
|
"inventory.container.ChestContainerMixin",
|
||||||
@ -289,6 +290,7 @@
|
|||||||
"inventory.container.ShulkerBoxContainerMixin",
|
"inventory.container.ShulkerBoxContainerMixin",
|
||||||
"inventory.container.SlotMixin",
|
"inventory.container.SlotMixin",
|
||||||
"inventory.container.SmithingTableContainerMixin",
|
"inventory.container.SmithingTableContainerMixin",
|
||||||
|
"inventory.container.StonecutterContainer1Mixin",
|
||||||
"inventory.container.StonecutterContainerMixin",
|
"inventory.container.StonecutterContainerMixin",
|
||||||
"inventory.container.WorkbenchContainerMixin",
|
"inventory.container.WorkbenchContainerMixin",
|
||||||
"item.ArmorStandItemMixin",
|
"item.ArmorStandItemMixin",
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user