package com.amadornes.framez.hax;
import java.util.Map.Entry;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World;
import com.amadornes.framez.movement.MovingBlock;
import com.amadornes.framez.tile.TileMoving;
import com.amadornes.framez.world.FakeWorld;
import cpw.mods.fml.common.network.IGuiHandler;
public class GuiHandlerWrapper implements IGuiHandler {
private IGuiHandler handler;
public GuiHandlerWrapper(IGuiHandler handler) {
this.handler = handler;
}
@Override
public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
TileEntity te = world.getTileEntity(x, y, z);
if (te != null && te instanceof TileMoving) {
MovingObjectPosition mop = ((TileMoving) te).rayTrace(player);
if (mop != null) {
MovingBlock b = (MovingBlock) ((Entry<?, ?>) mop.hitInfo).getKey();
return handler.getServerGuiElement(ID, player, FakeWorld.getFakeWorld(b), b.getX(), b.getY(), b.getZ());
}
}
return handler.getServerGuiElement(ID, player, world, x, y, z);
}
@Override
public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
TileEntity te = world.getTileEntity(x, y, z);
if (te != null && te instanceof TileMoving) {
MovingObjectPosition mop = ((TileMoving) te).rayTrace(player);
if (mop != null) {
MovingBlock b = (MovingBlock) ((Entry<?, ?>) mop.hitInfo).getKey();
return handler.getClientGuiElement(ID, player, FakeWorld.getFakeWorld(b), b.getX(), b.getY(), b.getZ());
}
}
return handler.getClientGuiElement(ID, player, world, x, y, z);
}
}