Dartcraft/src/main/java/ley/modding/dartcraft/client/gui/GuiHandler.java

86 lines
3.2 KiB
Java
Raw Normal View History

2021-04-16 23:53:57 +02:00
package ley.modding.dartcraft.client.gui;
import cpw.mods.fml.common.network.IGuiHandler;
import ley.modding.dartcraft.item.ItemClipboard;
2021-04-17 16:07:41 +02:00
import ley.modding.dartcraft.tile.TileEntityForceEngine;
2021-04-16 23:53:57 +02:00
import ley.modding.dartcraft.util.EntityUtils;
import ley.modding.dartcraft.util.ItemCraftingInventory;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
2021-04-17 16:07:41 +02:00
import net.minecraft.tileentity.TileEntity;
2021-04-16 23:53:57 +02:00
import net.minecraft.world.World;
public class GuiHandler implements IGuiHandler {
@Override
public Object
getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
2021-04-16 23:53:57 +02:00
ItemStack clipStack;
switch (ID) {
case 0:
clipStack = getClipboard(player);
if (clipStack != null)
return new ContainerClipboard(
player, new ItemCraftingInventory(9, clipStack)
);
2021-04-16 23:53:57 +02:00
break;
2021-04-17 16:07:41 +02:00
case 7:
TileEntity te2 = world.getTileEntity(x, y, z);
if (te2 != null && te2 instanceof TileEntityForceEngine) {
TileEntityForceEngine engine = (TileEntityForceEngine) te2;
2021-04-17 16:07:41 +02:00
return new ContainerForceEngine(player, engine);
}
break;
2021-04-16 23:53:57 +02:00
}
return null;
}
@Override
public Object
getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
2021-04-16 23:53:57 +02:00
ItemStack clipStack;
switch (ID) {
case 0:
clipStack = getClipboard(player);
if (clipStack != null)
return new GuiClipboard(new ContainerClipboard(
player, new ItemCraftingInventory(9, clipStack)
));
2021-04-16 23:53:57 +02:00
break;
2021-04-17 16:07:41 +02:00
case 7:
TileEntity te2 = world.getTileEntity(x, y, z);
if (te2 instanceof TileEntityForceEngine) {
TileEntityForceEngine engine = (TileEntityForceEngine) te2;
2021-04-17 16:07:41 +02:00
return new GuiEngine(new ContainerForceEngine(player, engine));
}
break;
2021-04-16 23:53:57 +02:00
}
return null;
}
private ItemStack getClipboard(EntityPlayer player) {
NBTTagCompound dartTag = EntityUtils.getModComp((Entity) player);
int location = -1;
if (dartTag != null)
for (int i = 0; i < 9; i++) {
ItemStack tempStack = player.inventory.mainInventory[i];
if (tempStack != null && tempStack.getItem() instanceof ItemClipboard
&& tempStack.getTagCompound().getInteger("ID")
== dartTag.getInteger("toOpen"))
2021-04-16 23:53:57 +02:00
if (location == -1) {
location = i;
} else {
player.inventory.mainInventory[i].getTagCompound().removeTag("ID"
);
2021-04-16 23:53:57 +02:00
dartTag.removeTag("toOpen");
return null;
}
}
dartTag.removeTag("toOpen");
if (location > -1)
return player.inventory.mainInventory[location];
return null;
}
}