2022-10-26 19:42:44 +02:00
|
|
|
package assemblyline.common;
|
|
|
|
|
2023-02-10 17:51:10 +01:00
|
|
|
import java.io.File;
|
|
|
|
import java.io.FileInputStream;
|
|
|
|
import java.io.FileOutputStream;
|
|
|
|
import java.util.zip.ZipEntry;
|
|
|
|
import java.util.zip.ZipInputStream;
|
|
|
|
|
2022-10-26 19:42:44 +02:00
|
|
|
import assemblyline.common.block.TileEntityCrate;
|
|
|
|
import assemblyline.common.machine.TileEntityManipulator;
|
|
|
|
import assemblyline.common.machine.TileEntityRejector;
|
|
|
|
import assemblyline.common.machine.armbot.TileEntityArmbot;
|
|
|
|
import assemblyline.common.machine.belt.TileEntityConveyorBelt;
|
|
|
|
import assemblyline.common.machine.crane.TileEntityCraneController;
|
|
|
|
import assemblyline.common.machine.crane.TileEntityCraneRail;
|
|
|
|
import assemblyline.common.machine.detector.TileEntityDetector;
|
|
|
|
import assemblyline.common.machine.encoder.ContainerEncoder;
|
|
|
|
import assemblyline.common.machine.encoder.TileEntityEncoder;
|
|
|
|
import assemblyline.common.machine.imprinter.ContainerImprinter;
|
|
|
|
import assemblyline.common.machine.imprinter.TileEntityImprinter;
|
|
|
|
import cpw.mods.fml.common.FMLCommonHandler;
|
|
|
|
import cpw.mods.fml.common.network.IGuiHandler;
|
|
|
|
import cpw.mods.fml.common.registry.GameRegistry;
|
|
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
|
|
import net.minecraft.tileentity.TileEntity;
|
|
|
|
import net.minecraft.world.World;
|
|
|
|
import universalelectricity.prefab.multiblock.TileEntityMulti;
|
|
|
|
|
2023-02-10 17:51:10 +01:00
|
|
|
public class CommonProxy implements IGuiHandler {
|
2022-10-26 19:42:44 +02:00
|
|
|
public static final int GUI_IMPRINTER = 1;
|
|
|
|
public static final int GUI_ENCODER = 2;
|
|
|
|
|
2023-02-10 17:51:10 +01:00
|
|
|
public void preInit() {}
|
2022-10-26 19:42:44 +02:00
|
|
|
|
|
|
|
public void init() {
|
2023-02-10 17:51:10 +01:00
|
|
|
GameRegistry.registerTileEntity(
|
|
|
|
TileEntityConveyorBelt.class, (String) "ALConveyorBelt"
|
|
|
|
);
|
|
|
|
GameRegistry.registerTileEntity(TileEntityRejector.class, (String) "ALSorter");
|
|
|
|
GameRegistry.registerTileEntity(
|
|
|
|
TileEntityManipulator.class, (String) "ALManipulator"
|
|
|
|
);
|
|
|
|
GameRegistry.registerTileEntity(TileEntityCrate.class, (String) "ALCrate");
|
|
|
|
GameRegistry.registerTileEntity(TileEntityDetector.class, (String) "ALDetector");
|
|
|
|
GameRegistry.registerTileEntity(TileEntityEncoder.class, (String) "ALEncoder");
|
|
|
|
GameRegistry.registerTileEntity(TileEntityArmbot.class, (String) "ALArmbot");
|
|
|
|
GameRegistry.registerTileEntity(
|
|
|
|
TileEntityCraneController.class, (String) "ALCraneController"
|
|
|
|
);
|
|
|
|
GameRegistry.registerTileEntity(
|
|
|
|
TileEntityCraneRail.class, (String) "ALCraneRail"
|
|
|
|
);
|
|
|
|
GameRegistry.registerTileEntity(
|
|
|
|
TileEntityImprinter.class, (String) "ALImprinter"
|
|
|
|
);
|
|
|
|
GameRegistry.registerTileEntity(TileEntityMulti.class, (String) "ALMulti");
|
2022-10-26 19:42:44 +02:00
|
|
|
}
|
|
|
|
|
2023-02-10 17:51:10 +01:00
|
|
|
private void
|
|
|
|
extractZipToLocation(File zipFile, String sourceFolder, String destFolder) {
|
2022-10-26 19:42:44 +02:00
|
|
|
try {
|
2023-02-10 17:51:10 +01:00
|
|
|
File destFile = new File(
|
|
|
|
FMLCommonHandler.instance().getMinecraftServerInstance().getFile("."),
|
|
|
|
destFolder
|
|
|
|
);
|
2022-10-26 19:42:44 +02:00
|
|
|
String destinationName = destFile.getAbsolutePath();
|
|
|
|
byte[] buf = new byte[1024];
|
|
|
|
ZipInputStream zipinputstream = null;
|
|
|
|
zipinputstream = new ZipInputStream(new FileInputStream(zipFile));
|
|
|
|
ZipEntry zipentry = zipinputstream.getNextEntry();
|
|
|
|
while (zipentry != null) {
|
|
|
|
int n;
|
|
|
|
String zipentryName = zipentry.getName();
|
|
|
|
if (!zipentryName.startsWith(sourceFolder)) {
|
|
|
|
zipentry = zipinputstream.getNextEntry();
|
|
|
|
continue;
|
|
|
|
}
|
2023-02-10 17:51:10 +01:00
|
|
|
String entryName = destinationName
|
|
|
|
+ zipentryName.substring(
|
|
|
|
Math.min(zipentryName.length(), sourceFolder.length() - 1)
|
|
|
|
);
|
2022-10-26 19:42:44 +02:00
|
|
|
entryName = entryName.replace('/', File.separatorChar);
|
|
|
|
entryName = entryName.replace('\\', File.separatorChar);
|
|
|
|
File newFile = new File(entryName);
|
|
|
|
if (zipentry.isDirectory()) {
|
2023-02-10 17:51:10 +01:00
|
|
|
if (!newFile.mkdirs())
|
|
|
|
break;
|
2022-10-26 19:42:44 +02:00
|
|
|
zipentry = zipinputstream.getNextEntry();
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
FileOutputStream fileoutputstream = new FileOutputStream(entryName);
|
|
|
|
while ((n = zipinputstream.read(buf, 0, 1024)) > -1) {
|
|
|
|
fileoutputstream.write(buf, 0, n);
|
|
|
|
}
|
|
|
|
fileoutputstream.close();
|
|
|
|
zipinputstream.closeEntry();
|
|
|
|
zipentry = zipinputstream.getNextEntry();
|
|
|
|
}
|
|
|
|
zipinputstream.close();
|
2023-02-10 17:51:10 +01:00
|
|
|
} catch (Exception e) {
|
2022-10-26 19:42:44 +02:00
|
|
|
System.out.println("Error while loading AssemblyLine Lua libraries: ");
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-02-10 17:51:10 +01:00
|
|
|
public Object
|
|
|
|
getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
2022-10-26 19:42:44 +02:00
|
|
|
TileEntity tileEntity = world.getTileEntity(x, y, z);
|
|
|
|
if (tileEntity != null) {
|
|
|
|
switch (ID) {
|
|
|
|
case 1: {
|
2023-02-10 17:51:10 +01:00
|
|
|
return new ContainerImprinter(
|
|
|
|
player.inventory, (TileEntityImprinter) tileEntity
|
|
|
|
);
|
2022-10-26 19:42:44 +02:00
|
|
|
}
|
|
|
|
case 2: {
|
2023-02-10 17:51:10 +01:00
|
|
|
if (tileEntity == null || !(tileEntity instanceof TileEntityEncoder))
|
|
|
|
break;
|
|
|
|
return new ContainerEncoder(
|
|
|
|
player.inventory, (TileEntityEncoder) tileEntity
|
|
|
|
);
|
2022-10-26 19:42:44 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
2023-02-10 17:51:10 +01:00
|
|
|
public Object
|
|
|
|
getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
2022-10-26 19:42:44 +02:00
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isCtrKeyDown() {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|