resonant-induction/archive/java/resonantinduction/old/transport/CommonProxy.java
2014-01-11 17:44:07 +08:00

168 lines
4.4 KiB
Java

package resonantinduction.old.transport;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import resonantinduction.old.mechanics.processor.ContainerProcessor;
import resonantinduction.old.mechanics.processor.TileEntityProcessor;
import resonantinduction.old.transport.encoder.ContainerEncoder;
import resonantinduction.old.transport.encoder.TileEntityEncoder;
import resonantinduction.old.transport.imprinter.ContainerImprinter;
import resonantinduction.old.transport.imprinter.TileEntityImprinter;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.network.IGuiHandler;
import dark.lib.prefab.invgui.ContainerFake;
public class CommonProxy implements IGuiHandler
{
public static final int GUI_IMPRINTER = 1;
public static final int GUI_ENCODER = 2;
public static final int GUI_ENCODER_CODE = 3;
public static final int GUI_ENCODER_HELP = 4;
public static final int GUI_PROCESSOR = 5;
public static final int GUI_MANIPULATOR = 6;
public static final int GUI_COAL_GEN = 7;
public static final int GUI_FUEL_GEN = 8;
public static final int GUI_FURNACE_ELEC = 9;
public static final int GUI_BATTERY_BOX = 10;
public void preInit()
{
}
public void init()
{
}
public void postInit()
{
}
private void extractZipToLocation(File zipFile, String sourceFolder, String destFolder)
{
try
{
File destFile = new File(FMLCommonHandler.instance().getMinecraftServerInstance().getFile("."), destFolder);
String destinationName = destFile.getAbsolutePath();
byte[] buf = new byte[1024];
ZipInputStream zipinputstream = null;
ZipEntry zipentry;
zipinputstream = new ZipInputStream(new FileInputStream(zipFile));
zipentry = zipinputstream.getNextEntry();
while (zipentry != null)
{
// for each entry to be extracted
String zipentryName = zipentry.getName();
if (!zipentryName.startsWith(sourceFolder))
{
zipentry = zipinputstream.getNextEntry();
continue;
}
String entryName = destinationName + zipentryName.substring(Math.min(zipentryName.length(), sourceFolder.length() - 1));
entryName = entryName.replace('/', File.separatorChar);
entryName = entryName.replace('\\', File.separatorChar);
int n;
FileOutputStream fileoutputstream;
File newFile = new File(entryName);
if (zipentry.isDirectory())
{
if (!newFile.mkdirs())
{
break;
}
zipentry = zipinputstream.getNextEntry();
continue;
}
fileoutputstream = new FileOutputStream(entryName);
while ((n = zipinputstream.read(buf, 0, 1024)) > -1)
{
fileoutputstream.write(buf, 0, n);
}
fileoutputstream.close();
zipinputstream.closeEntry();
zipentry = zipinputstream.getNextEntry();
}// while
zipinputstream.close();
}
catch (Exception e)
{
System.out.println("Error while loading AssemblyLine Lua libraries: ");
e.printStackTrace();
}
}
@Override
public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
{
TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
if (tileEntity != null)
{
switch (ID)
{
case GUI_IMPRINTER:
{
return new ContainerImprinter(player.inventory, (TileEntityImprinter) tileEntity);
}
case GUI_ENCODER:
{
if (tileEntity instanceof TileEntityEncoder)
{
return new ContainerEncoder(player.inventory, (TileEntityEncoder) tileEntity);
}
}
case GUI_PROCESSOR:
{
return new ContainerProcessor(player.inventory, (TileEntityProcessor) tileEntity);
}
case GUI_MANIPULATOR:
{
return new ContainerProcessor(player.inventory, (TileEntityProcessor) tileEntity);
}
case GUI_COAL_GEN:
if (tileEntity instanceof TileEntitySteamGen)
{
return new ContainerCoalGenerator(player.inventory, ((TileEntitySteamGen) tileEntity));
}
case GUI_BATTERY_BOX:
if (tileEntity instanceof TileBatteryBox)
{
return new ContainerBatteryBox(player.inventory, (TileBatteryBox) tileEntity);
}
default:
return new ContainerFake(tileEntity);
}
}
return null;
}
@Override
public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
{
return null;
}
public boolean isCtrKeyDown()
{
return false;
}
}