2015-08-29 14:33:25 +02:00
|
|
|
/*
|
2016-05-16 22:52:27 +02:00
|
|
|
* This file ("GuiHandler.java") is part of the Actually Additions mod for Minecraft.
|
2015-08-29 14:33:25 +02:00
|
|
|
* It is created and owned by Ellpeck and distributed
|
|
|
|
* under the Actually Additions License to be found at
|
2016-05-16 22:52:27 +02:00
|
|
|
* http://ellpeck.de/actaddlicense
|
2015-08-29 14:33:25 +02:00
|
|
|
* View the source code at https://github.com/Ellpeck/ActuallyAdditions
|
|
|
|
*
|
2016-05-16 22:54:42 +02:00
|
|
|
* © 2015-2016 Ellpeck
|
2015-08-29 14:33:25 +02:00
|
|
|
*/
|
|
|
|
|
2016-01-05 04:47:35 +01:00
|
|
|
package de.ellpeck.actuallyadditions.mod.inventory;
|
2014-12-18 19:24:06 +01:00
|
|
|
|
2016-01-05 04:47:35 +01:00
|
|
|
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
|
|
|
|
import de.ellpeck.actuallyadditions.mod.booklet.GuiBooklet;
|
2016-05-26 13:11:43 +02:00
|
|
|
import de.ellpeck.actuallyadditions.mod.booklet.GuiBookletStand;
|
2016-01-05 04:47:35 +01:00
|
|
|
import de.ellpeck.actuallyadditions.mod.inventory.gui.*;
|
|
|
|
import de.ellpeck.actuallyadditions.mod.tile.TileEntityBase;
|
|
|
|
import de.ellpeck.actuallyadditions.mod.util.ModUtil;
|
2014-12-18 19:24:06 +01:00
|
|
|
import net.minecraft.entity.player.EntityPlayer;
|
2016-03-18 23:47:22 +01:00
|
|
|
import net.minecraft.util.math.BlockPos;
|
2014-12-18 19:24:06 +01:00
|
|
|
import net.minecraft.world.World;
|
2016-01-07 18:20:59 +01:00
|
|
|
import net.minecraftforge.fml.common.network.IGuiHandler;
|
|
|
|
import net.minecraftforge.fml.common.network.NetworkRegistry;
|
2014-12-18 19:24:06 +01:00
|
|
|
|
2015-02-09 17:25:05 +01:00
|
|
|
public class GuiHandler implements IGuiHandler{
|
2014-12-18 19:24:06 +01:00
|
|
|
|
2015-10-03 10:16:18 +02:00
|
|
|
public static void init(){
|
|
|
|
ModUtil.LOGGER.info("Initializing GuiHandler...");
|
|
|
|
NetworkRegistry.INSTANCE.registerGuiHandler(ActuallyAdditions.instance, new GuiHandler());
|
|
|
|
}
|
|
|
|
|
2015-02-20 22:45:33 +01:00
|
|
|
@Override
|
2016-09-14 21:42:03 +02:00
|
|
|
public Object getServerGuiElement(int id, EntityPlayer player, World world, int x, int y, int z){
|
2015-06-12 19:12:06 +02:00
|
|
|
TileEntityBase tile = null;
|
2015-09-20 20:19:02 +02:00
|
|
|
if(GuiTypes.values()[id].checkTileEntity){
|
2016-01-08 13:31:58 +01:00
|
|
|
tile = (TileEntityBase)world.getTileEntity(new BlockPos(x, y, z));
|
2015-06-12 19:12:06 +02:00
|
|
|
}
|
2015-07-17 09:03:31 +02:00
|
|
|
switch(GuiTypes.values()[id]){
|
|
|
|
case FEEDER:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new ContainerFeeder(player.inventory, tile);
|
2015-07-17 09:03:31 +02:00
|
|
|
case GIANT_CHEST:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new ContainerGiantChest(player.inventory, tile, 0);
|
2016-06-27 20:19:04 +02:00
|
|
|
case GIANT_CHEST_PAGE_2:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new ContainerGiantChest(player.inventory, tile, 1);
|
2016-06-27 20:19:04 +02:00
|
|
|
case GIANT_CHEST_PAGE_3:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new ContainerGiantChest(player.inventory, tile, 2);
|
2015-07-17 09:03:31 +02:00
|
|
|
case CRAFTER:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new ContainerCrafter(player);
|
2015-07-17 09:03:31 +02:00
|
|
|
case GRINDER:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new ContainerGrinder(player.inventory, tile, false);
|
2015-07-17 09:03:31 +02:00
|
|
|
case GRINDER_DOUBLE:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new ContainerGrinder(player.inventory, tile, true);
|
2015-07-17 09:03:31 +02:00
|
|
|
case FURNACE_DOUBLE:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new ContainerFurnaceDouble(player.inventory, tile);
|
2015-07-17 09:03:31 +02:00
|
|
|
case INPUTTER:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new ContainerInputter(player.inventory, tile, false);
|
2015-07-17 09:03:31 +02:00
|
|
|
case INPUTTER_ADVANCED:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new ContainerInputter(player.inventory, tile, true);
|
2015-07-17 09:03:31 +02:00
|
|
|
case REPAIRER:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new ContainerRepairer(player.inventory, tile);
|
2015-07-17 09:03:31 +02:00
|
|
|
case BREAKER:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new ContainerBreaker(player.inventory, tile);
|
2015-07-17 09:03:31 +02:00
|
|
|
case DROPPER:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new ContainerDropper(player.inventory, tile);
|
2015-07-17 09:03:31 +02:00
|
|
|
case CANOLA_PRESS:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new ContainerCanolaPress(player.inventory, tile);
|
2015-07-17 09:03:31 +02:00
|
|
|
case FERMENTING_BARREL:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new ContainerFermentingBarrel(player.inventory, tile);
|
2015-07-17 09:03:31 +02:00
|
|
|
case COAL_GENERATOR:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new ContainerCoalGenerator(player.inventory, tile);
|
2015-07-17 09:03:31 +02:00
|
|
|
case OIL_GENERATOR:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new ContainerOilGenerator(player.inventory, tile);
|
2015-07-17 09:03:31 +02:00
|
|
|
case PHANTOM_PLACER:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new ContainerPhantomPlacer(player.inventory, tile);
|
2015-07-17 09:03:31 +02:00
|
|
|
case FLUID_COLLECTOR:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new ContainerFluidCollector(player.inventory, tile);
|
2015-07-17 09:03:31 +02:00
|
|
|
case COFFEE_MACHINE:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new ContainerCoffeeMachine(player.inventory, tile);
|
2015-07-17 09:03:31 +02:00
|
|
|
case DRILL:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new ContainerDrill(player.inventory);
|
2016-06-07 23:17:06 +02:00
|
|
|
case FILTER:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new ContainerFilter(player.inventory);
|
2015-07-17 09:03:31 +02:00
|
|
|
case ENERGIZER:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new ContainerEnergizer(player, tile);
|
2015-07-17 09:03:31 +02:00
|
|
|
case ENERVATOR:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new ContainerEnervator(player, tile);
|
2015-07-17 09:03:31 +02:00
|
|
|
case XP_SOLIDIFIER:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new ContainerXPSolidifier(player.inventory, tile);
|
2015-08-23 23:41:46 +02:00
|
|
|
case CLOUD:
|
|
|
|
return new ContainerSmileyCloud();
|
2015-10-05 16:53:28 +02:00
|
|
|
case DIRECTIONAL_BREAKER:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new ContainerDirectionalBreaker(player.inventory, tile);
|
2015-10-10 02:51:06 +02:00
|
|
|
case RANGED_COLLECTOR:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new ContainerRangedCollector(player.inventory, tile);
|
2015-12-09 20:24:45 +01:00
|
|
|
case MINER:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new ContainerMiner(player.inventory, tile);
|
2016-05-10 22:19:15 +02:00
|
|
|
case LASER_RELAY_ITEM_WHITELIST:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new ContainerLaserRelayItemWhitelist(player.inventory, tile);
|
2016-08-02 16:32:13 +02:00
|
|
|
case BAG:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new ContainerBag(player.inventory, false);
|
2016-08-02 16:32:13 +02:00
|
|
|
case VOID_BAG:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new ContainerBag(player.inventory, true);
|
|
|
|
case BIO_REACTOR:
|
|
|
|
return new ContainerBioReactor(player.inventory, tile);
|
2016-10-31 18:03:18 +01:00
|
|
|
case FARMER:
|
|
|
|
return new ContainerFarmer(player.inventory, tile);
|
2014-12-18 19:24:06 +01:00
|
|
|
default:
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-02-20 22:45:33 +01:00
|
|
|
@Override
|
2016-09-14 21:42:03 +02:00
|
|
|
public Object getClientGuiElement(int id, EntityPlayer player, World world, int x, int y, int z){
|
2015-06-12 19:12:06 +02:00
|
|
|
TileEntityBase tile = null;
|
2015-09-20 20:19:02 +02:00
|
|
|
if(GuiTypes.values()[id].checkTileEntity){
|
2016-01-08 13:31:58 +01:00
|
|
|
tile = (TileEntityBase)world.getTileEntity(new BlockPos(x, y, z));
|
2015-06-12 19:12:06 +02:00
|
|
|
}
|
2015-07-17 09:03:31 +02:00
|
|
|
switch(GuiTypes.values()[id]){
|
|
|
|
case FEEDER:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new GuiFeeder(player.inventory, tile);
|
2015-07-17 09:03:31 +02:00
|
|
|
case GIANT_CHEST:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new GuiGiantChest(player.inventory, tile, 0);
|
2016-06-27 20:19:04 +02:00
|
|
|
case GIANT_CHEST_PAGE_2:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new GuiGiantChest(player.inventory, tile, 1);
|
2016-06-27 20:19:04 +02:00
|
|
|
case GIANT_CHEST_PAGE_3:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new GuiGiantChest(player.inventory, tile, 2);
|
2015-07-17 09:03:31 +02:00
|
|
|
case CRAFTER:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new GuiCrafter(player);
|
2015-07-17 09:03:31 +02:00
|
|
|
case GRINDER:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new GuiGrinder(player.inventory, tile);
|
2015-07-17 09:03:31 +02:00
|
|
|
case GRINDER_DOUBLE:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new GuiGrinder.GuiGrinderDouble(player.inventory, tile);
|
2015-07-17 09:03:31 +02:00
|
|
|
case FURNACE_DOUBLE:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new GuiFurnaceDouble(player.inventory, tile);
|
2015-07-17 09:03:31 +02:00
|
|
|
case INPUTTER:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new GuiInputter(player.inventory, tile, x, y, z, world, false);
|
2015-07-17 09:03:31 +02:00
|
|
|
case INPUTTER_ADVANCED:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new GuiInputter(player.inventory, tile, x, y, z, world, true);
|
2015-07-17 09:03:31 +02:00
|
|
|
case REPAIRER:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new GuiRepairer(player.inventory, tile);
|
2015-07-17 09:03:31 +02:00
|
|
|
case BREAKER:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new GuiBreaker(player.inventory, tile);
|
2015-07-17 09:03:31 +02:00
|
|
|
case DROPPER:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new GuiDropper(player.inventory, tile);
|
2015-07-17 09:03:31 +02:00
|
|
|
case CANOLA_PRESS:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new GuiCanolaPress(player.inventory, tile);
|
2015-07-17 09:03:31 +02:00
|
|
|
case FERMENTING_BARREL:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new GuiFermentingBarrel(player.inventory, tile);
|
2015-07-17 09:03:31 +02:00
|
|
|
case COAL_GENERATOR:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new GuiCoalGenerator(player.inventory, tile);
|
2015-07-17 09:03:31 +02:00
|
|
|
case OIL_GENERATOR:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new GuiOilGenerator(player.inventory, tile);
|
2015-07-17 09:03:31 +02:00
|
|
|
case PHANTOM_PLACER:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new GuiPhantomPlacer(player.inventory, tile);
|
2015-07-17 09:03:31 +02:00
|
|
|
case FLUID_COLLECTOR:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new GuiFluidCollector(player.inventory, tile);
|
2015-07-17 09:03:31 +02:00
|
|
|
case COFFEE_MACHINE:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new GuiCoffeeMachine(player.inventory, tile, x, y, z, world);
|
2015-07-17 09:03:31 +02:00
|
|
|
case DRILL:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new GuiDrill(player.inventory);
|
2016-06-07 23:17:06 +02:00
|
|
|
case FILTER:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new GuiFilter(player.inventory);
|
2015-07-17 09:03:31 +02:00
|
|
|
case ENERGIZER:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new GuiEnergizer(player, tile);
|
2015-07-17 09:03:31 +02:00
|
|
|
case ENERVATOR:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new GuiEnervator(player, tile);
|
2015-07-17 09:03:31 +02:00
|
|
|
case XP_SOLIDIFIER:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new GuiXPSolidifier(player.inventory, tile, x, y, z, world);
|
2015-08-23 23:41:46 +02:00
|
|
|
case CLOUD:
|
|
|
|
return new GuiSmileyCloud(tile, x, y, z, world);
|
2015-08-28 21:17:09 +02:00
|
|
|
case BOOK:
|
2015-11-24 17:50:27 +01:00
|
|
|
return new GuiBooklet(null, true, true);
|
2015-10-05 16:53:28 +02:00
|
|
|
case DIRECTIONAL_BREAKER:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new GuiDirectionalBreaker(player.inventory, tile);
|
2015-10-10 02:51:06 +02:00
|
|
|
case RANGED_COLLECTOR:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new GuiRangedCollector(player.inventory, tile, x, y, z, world);
|
2015-12-09 20:24:45 +01:00
|
|
|
case MINER:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new GuiMiner(player.inventory, tile);
|
2016-05-26 13:11:43 +02:00
|
|
|
case BOOK_STAND:
|
|
|
|
return new GuiBookletStand(tile);
|
2016-05-10 22:19:15 +02:00
|
|
|
case LASER_RELAY_ITEM_WHITELIST:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new GuiLaserRelayItemWhitelist(player.inventory, tile);
|
2016-08-02 16:32:13 +02:00
|
|
|
case BAG:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new GuiBag(player.inventory, false);
|
2016-08-02 16:32:13 +02:00
|
|
|
case VOID_BAG:
|
2016-09-14 21:42:03 +02:00
|
|
|
return new GuiBag(player.inventory, true);
|
|
|
|
case BIO_REACTOR:
|
|
|
|
return new GuiBioReactor(player.inventory, tile);
|
2016-10-31 18:03:18 +01:00
|
|
|
case FARMER:
|
|
|
|
return new GuiFarmer(player.inventory, tile);
|
2014-12-18 19:24:06 +01:00
|
|
|
default:
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-07-17 09:03:31 +02:00
|
|
|
public enum GuiTypes{
|
|
|
|
FEEDER,
|
|
|
|
GIANT_CHEST,
|
2016-06-27 20:19:04 +02:00
|
|
|
GIANT_CHEST_PAGE_2,
|
|
|
|
GIANT_CHEST_PAGE_3,
|
2015-09-20 20:19:02 +02:00
|
|
|
CRAFTER(false),
|
2015-07-17 09:03:31 +02:00
|
|
|
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,
|
2015-09-20 20:19:02 +02:00
|
|
|
DRILL(false),
|
2015-07-17 09:03:31 +02:00
|
|
|
ENERGIZER,
|
|
|
|
ENERVATOR,
|
2015-07-30 10:32:30 +02:00
|
|
|
XP_SOLIDIFIER,
|
2015-08-28 21:17:09 +02:00
|
|
|
CLOUD,
|
2015-10-05 16:53:28 +02:00
|
|
|
BOOK(false),
|
2015-10-10 02:51:06 +02:00
|
|
|
DIRECTIONAL_BREAKER,
|
2015-12-09 20:24:45 +01:00
|
|
|
RANGED_COLLECTOR,
|
2016-05-10 22:19:15 +02:00
|
|
|
MINER,
|
2016-05-26 13:11:43 +02:00
|
|
|
BOOK_STAND,
|
2016-06-07 23:17:06 +02:00
|
|
|
LASER_RELAY_ITEM_WHITELIST,
|
2016-08-02 16:32:13 +02:00
|
|
|
FILTER(false),
|
|
|
|
BAG(false),
|
2016-09-14 21:42:03 +02:00
|
|
|
VOID_BAG(false),
|
2016-10-31 18:03:18 +01:00
|
|
|
BIO_REACTOR,
|
|
|
|
FARMER;
|
2015-09-20 20:19:02 +02:00
|
|
|
|
2016-05-19 20:05:12 +02:00
|
|
|
public final boolean checkTileEntity;
|
2015-09-20 20:19:02 +02:00
|
|
|
|
|
|
|
GuiTypes(){
|
|
|
|
this(true);
|
|
|
|
}
|
2015-10-03 10:19:40 +02:00
|
|
|
|
|
|
|
GuiTypes(boolean checkTileEntity){
|
|
|
|
this.checkTileEntity = checkTileEntity;
|
|
|
|
}
|
2015-07-17 09:03:31 +02:00
|
|
|
}
|
2015-02-20 22:45:33 +01:00
|
|
|
}
|