generated from tilera/1710mod
71 lines
2.8 KiB
Java
71 lines
2.8 KiB
Java
package dev.tilera.auracore.mixins;
|
|
|
|
import org.spongepowered.asm.mixin.Mixin;
|
|
import org.spongepowered.asm.mixin.Overwrite;
|
|
|
|
import dev.tilera.auracore.AuraCore;
|
|
import dev.tilera.auracore.api.research.IResearchTable;
|
|
import net.minecraft.block.BlockContainer;
|
|
import net.minecraft.block.material.Material;
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
import net.minecraft.tileentity.TileEntity;
|
|
import net.minecraft.world.World;
|
|
import net.minecraftforge.common.util.ForgeDirection;
|
|
import thaumcraft.common.Thaumcraft;
|
|
import thaumcraft.common.blocks.BlockTable;
|
|
import thaumcraft.common.items.wands.ItemWandCasting;
|
|
import thaumcraft.common.tiles.TileArcaneWorkbench;
|
|
import thaumcraft.common.tiles.TileDeconstructionTable;
|
|
import thaumcraft.common.tiles.TileResearchTable;
|
|
|
|
@Mixin(BlockTable.class)
|
|
public abstract class MixinBlockTable extends BlockContainer {
|
|
|
|
protected MixinBlockTable(Material p_i45386_1_) {
|
|
super(p_i45386_1_);
|
|
}
|
|
|
|
/**
|
|
* @author tilera
|
|
* @reason Old workbench GUI
|
|
*/
|
|
@Overwrite(remap = false)
|
|
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int idk, float what, float these, float are) {
|
|
TileEntity tileEntity = world.getTileEntity(x, y, z);
|
|
int md = world.getBlockMetadata(x, y, z);
|
|
if (md > 1 && tileEntity != null && !player.isSneaking()) {
|
|
if (world.isRemote) {
|
|
return true;
|
|
} else if (tileEntity instanceof TileArcaneWorkbench) {
|
|
TileArcaneWorkbench workbench = (TileArcaneWorkbench) tileEntity;
|
|
if (workbench.getStackInSlot(10) != null && workbench.getStackInSlot(10).getItem() instanceof ItemWandCasting) {
|
|
player.openGui(Thaumcraft.instance, 13, world, x, y, z);
|
|
} else {
|
|
player.openGui(AuraCore.INSTANCE, 0, world, x, y, z);
|
|
}
|
|
return true;
|
|
} else if (tileEntity instanceof TileDeconstructionTable) {
|
|
player.openGui(Thaumcraft.instance, 8, world, x, y, z);
|
|
return true;
|
|
} else {
|
|
if (tileEntity instanceof TileResearchTable) {
|
|
((IResearchTable)tileEntity).openGUI(player);
|
|
} else {
|
|
for(int a = 2; a < 6; ++a) {
|
|
TileEntity tile = world.getTileEntity(x + ForgeDirection.getOrientation(a).offsetX, y + ForgeDirection.getOrientation(a).offsetY, z + ForgeDirection.getOrientation(a).offsetZ);
|
|
if (tile instanceof TileResearchTable) {
|
|
((IResearchTable)tile).openGUI(player);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
return true;
|
|
}
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
}
|