169 lines
4.4 KiB
Java
169 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;
|
||
|
}
|
||
|
|
||
|
}
|