ActuallyAdditions/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/GuiHandler.java

254 lines
11 KiB
Java

/*
* This file ("GuiHandler.java") is part of the Actually Additions mod for Minecraft.
* It is created and owned by Ellpeck and distributed
* under the Actually Additions License to be found at
* http://ellpeck.de/actaddlicense
* View the source code at https://github.com/Ellpeck/ActuallyAdditions
*
* © 2015-2017 Ellpeck
*/
package de.ellpeck.actuallyadditions.mod.inventory;
import de.ellpeck.actuallyadditions.mod.booklet.gui.GuiBooklet;
import de.ellpeck.actuallyadditions.mod.booklet.gui.GuiMainPage;
import de.ellpeck.actuallyadditions.mod.booklet.misc.BookletUtils;
import de.ellpeck.actuallyadditions.mod.data.PlayerData;
import de.ellpeck.actuallyadditions.mod.inventory.gui.*;
import de.ellpeck.actuallyadditions.mod.items.ItemBooklet;
import de.ellpeck.actuallyadditions.mod.tile.TileEntityBase;
import de.ellpeck.actuallyadditions.mod.util.compat.CompatUtil;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
public class GuiHandler {
@Deprecated
public Object getServerGuiElement(int id, PlayerEntity player, World world, int x, int y, int z) {
TileEntityBase tile = null;
if (GuiTypes.values()[id].checkTileEntity) {
tile = (TileEntityBase) world.getTileEntity(new BlockPos(x, y, z));
}
switch (GuiTypes.values()[id]) {
// case FEEDER:
// return new ContainerFeeder(player.inventory, tile);
// case GIANT_CHEST:
// return new ContainerGiantChest(player.inventory, tile, 0);
// case GIANT_CHEST_PAGE_2:
// return new ContainerGiantChest(player.inventory, tile, 1);
// case GIANT_CHEST_PAGE_3:
// return new ContainerGiantChest(player.inventory, tile, 2);
// case CRAFTER:
// return CompatUtil.getCrafterContainerElement(player, world, x, y, z);
// case GRINDER:
// return new ContainerGrinder(player.inventory, tile, false);
// case GRINDER_DOUBLE:
// return new ContainerGrinder(player.inventory, tile, true);
// case FURNACE_DOUBLE:
// return new ContainerFurnaceDouble(player.inventory, tile);
// case INPUTTER:
// return new ContainerInputter(player.inventory, tile, false);
// case INPUTTER_ADVANCED:
// return new ContainerInputter(player.inventory, tile, true);
// case REPAIRER:
// return new ContainerRepairer(player.inventory, tile);
// case BREAKER:
// return new ContainerBreaker(player.inventory, tile);
// case DROPPER:
// return new ContainerDropper(player, tile);
// case CANOLA_PRESS:
// return new ContainerCanolaPress(player.inventory, tile);
// case FERMENTING_BARREL:
// return new ContainerFermentingBarrel(player.inventory, tile);
// case COAL_GENERATOR:
// return new ContainerCoalGenerator(player.inventory, tile);
// case OIL_GENERATOR:
// return new ContainerOilGenerator(player.inventory, tile);
// case PHANTOM_PLACER:
// return new ContainerPhantomPlacer(player.inventory, tile);
// case FLUID_COLLECTOR:
// return new ContainerFluidCollector(player.inventory, tile);
// case COFFEE_MACHINE:
// return new ContainerCoffeeMachine(player.inventory, tile);
// case DRILL:
// return new ContainerDrill(player.inventory);
// case FILTER:
// return new ContainerFilter(player.inventory);
// case ENERGIZER:
// return new ContainerEnergizer(player, tile);
// case ENERVATOR:
// return new ContainerEnervator(player, tile);
// case XP_SOLIDIFIER:
// return new ContainerXPSolidifier(player.inventory, tile);
// case CLOUD:
// return new ContainerSmileyCloud();
// case DIRECTIONAL_BREAKER:
// return new ContainerDirectionalBreaker(player.inventory, tile);
// case RANGED_COLLECTOR:
// return new ContainerRangedCollector(player.inventory, tile);
// case MINER:
// return new ContainerMiner(player.inventory, tile);
// case LASER_RELAY_ITEM_WHITELIST:
// return new ContainerLaserRelayItemWhitelist(player.inventory, tile);
// case BAG:
// return new ContainerBag(player.getHeldItemMainhand(), player.inventory, false);
// case VOID_BAG:
// return new ContainerBag(player.getHeldItemMainhand(), player.inventory, true);
// case BIO_REACTOR:
// return new ContainerBioReactor(player.inventory, tile);
// case FARMER:
// return new ContainerFarmer(player.inventory, tile);
// case FIREWORK_BOX:
// return new ContainerFireworkBox();
default:
return null;
}
}
@Deprecated
public Object getClientGuiElement(int id, PlayerEntity player, World world, int x, int y, int z) {
TileEntityBase tile = null;
if (GuiTypes.values()[id].checkTileEntity) {
tile = (TileEntityBase) world.getTileEntity(new BlockPos(x, y, z));
}
switch (GuiTypes.values()[id]) {
case FEEDER:
return new GuiFeeder(player.inventory, tile);
case GIANT_CHEST:
return new GuiGiantChest(player.inventory, tile, 0);
case GIANT_CHEST_PAGE_2:
return new GuiGiantChest(player.inventory, tile, 1);
case GIANT_CHEST_PAGE_3:
return new GuiGiantChest(player.inventory, tile, 2);
case CRAFTER:
return CompatUtil.getCrafterGuiElement(player, world, x, y, z);
case GRINDER:
return new GuiGrinder(player.inventory, tile);
case GRINDER_DOUBLE:
return new GuiGrinder.GuiGrinderDouble(player.inventory, tile);
case FURNACE_DOUBLE:
return new GuiFurnaceDouble(player.inventory, tile);
case INPUTTER:
return new GuiInputter(player.inventory, tile, false);
case INPUTTER_ADVANCED:
return new GuiInputter(player.inventory, tile, true);
case REPAIRER:
return new GuiRepairer(player.inventory, tile);
// case BREAKER:
// return new GuiBreaker(player.inventory, tile);
case DROPPER:
return new GuiDropper(player, tile);
case CANOLA_PRESS:
return new GuiCanolaPress(player.inventory, tile);
case FERMENTING_BARREL:
return new GuiFermentingBarrel(player.inventory, tile);
case COAL_GENERATOR:
return new GuiCoalGenerator(player.inventory, tile);
case OIL_GENERATOR:
return new GuiOilGenerator(player.inventory, tile);
case PHANTOM_PLACER:
return new GuiPhantomPlacer(player.inventory, tile);
case FLUID_COLLECTOR:
return new GuiFluidCollector(player.inventory, tile);
case COFFEE_MACHINE:
return new GuiCoffeeMachine(player.inventory, tile);
case DRILL:
return new GuiDrill(player.inventory);
case FILTER:
return new GuiFilter(player.inventory);
case ENERGIZER:
return new GuiEnergizer(player, tile);
case ENERVATOR:
return new GuiEnervator(player, tile);
case XP_SOLIDIFIER:
return new GuiXPSolidifier(player.inventory, tile);
case CLOUD:
return new GuiSmileyCloud(tile, x, y, z, world);
case BOOK:
if (ItemBooklet.forcedPage != null) {
GuiBooklet gui = BookletUtils.createBookletGuiFromPage(null, ItemBooklet.forcedPage);
ItemBooklet.forcedPage = null;
return gui;
} else {
PlayerData.PlayerSave data = PlayerData.getDataFromPlayer(player);
if (data.lastOpenBooklet != null) {
return data.lastOpenBooklet;
} else {
return new GuiMainPage(null);
}
}
case DIRECTIONAL_BREAKER:
return new GuiDirectionalBreaker(player.inventory, tile);
case RANGED_COLLECTOR:
return new GuiRangedCollector(player.inventory, tile);
case MINER:
return new GuiMiner(player.inventory, tile);
case LASER_RELAY_ITEM_WHITELIST:
return new GuiLaserRelayItemWhitelist(player.inventory, tile);
// case BAG:
// return new GuiBag(player.getHeldItemMainhand(), player.inventory, false);
// case VOID_BAG:
// return new GuiBag(player.getHeldItemMainhand(), player.inventory, true);
case BIO_REACTOR:
return new GuiBioReactor(player.inventory, tile);
case FARMER:
return new GuiFarmer(player.inventory, tile);
case FIREWORK_BOX:
return new GuiFireworkBox(tile);
default:
return null;
}
}
@Deprecated
public enum GuiTypes {
FEEDER,
GIANT_CHEST,
GIANT_CHEST_PAGE_2,
GIANT_CHEST_PAGE_3,
CRAFTER(false),
GRINDER,
GRINDER_DOUBLE,
FURNACE_DOUBLE,
INPUTTER,
REPAIRER,
INPUTTER_ADVANCED,
BREAKER,
DROPPER,
CANOLA_PRESS,
FERMENTING_BARREL,
COAL_GENERATOR,
OIL_GENERATOR,
PHANTOM_PLACER,
FLUID_COLLECTOR,
COFFEE_MACHINE,
DRILL(false),
ENERGIZER,
ENERVATOR,
XP_SOLIDIFIER,
CLOUD,
BOOK(false),
DIRECTIONAL_BREAKER,
RANGED_COLLECTOR,
MINER,
LASER_RELAY_ITEM_WHITELIST,
FILTER(false),
BAG(false),
VOID_BAG(false),
BIO_REACTOR,
FARMER,
FIREWORK_BOX;
public final boolean checkTileEntity;
GuiTypes() {
this(true);
}
GuiTypes(boolean checkTileEntity) {
this.checkTileEntity = checkTileEntity;
}
}
}