2013-02-18 03:46:16 +01:00
|
|
|
package StevenDimDoors.mod_pocketDim;
|
2013-06-02 03:43:56 +02:00
|
|
|
import java.io.File;
|
2013-07-30 19:58:14 +02:00
|
|
|
import java.io.FileNotFoundException;
|
2013-02-18 03:46:16 +01:00
|
|
|
|
|
|
|
import net.minecraft.world.World;
|
2013-07-30 19:58:14 +02:00
|
|
|
import StevenDimDoors.mod_pocketDim.dungeon.DungeonSchematic;
|
2013-06-13 21:44:11 +02:00
|
|
|
import StevenDimDoors.mod_pocketDim.helpers.DungeonHelper;
|
2013-06-10 23:03:52 +02:00
|
|
|
import StevenDimDoors.mod_pocketDim.helpers.dimHelper;
|
2013-07-30 19:58:14 +02:00
|
|
|
import StevenDimDoors.mod_pocketDim.schematic.InvalidSchematicException;
|
2013-06-14 01:01:54 +02:00
|
|
|
|
2013-02-18 03:46:16 +01:00
|
|
|
public class SchematicLoader
|
2013-07-30 19:58:14 +02:00
|
|
|
{
|
|
|
|
private SchematicLoader() { }
|
2013-06-27 05:54:06 +02:00
|
|
|
|
2013-07-30 19:58:14 +02:00
|
|
|
public static void generateDungeonPocket(LinkData link, DDProperties properties)
|
2013-06-14 01:01:54 +02:00
|
|
|
{
|
2013-07-30 19:58:14 +02:00
|
|
|
//TODO: Phase this function out in the next update. ~SenseiKiwi
|
2013-07-09 06:50:06 +02:00
|
|
|
|
2013-07-30 19:58:14 +02:00
|
|
|
String filePath=DungeonHelper.instance().defaultBreak.schematicPath;
|
|
|
|
if(dimHelper.dimList.containsKey(link.destDimID))
|
2013-06-26 04:10:15 +02:00
|
|
|
{
|
2013-07-30 19:58:14 +02:00
|
|
|
if(dimHelper.dimList.get(link.destDimID).dungeonGenerator == null)
|
2013-06-26 04:10:15 +02:00
|
|
|
{
|
2013-07-30 19:58:14 +02:00
|
|
|
DungeonHelper.instance().generateDungeonLink(link);
|
2013-06-14 01:01:54 +02:00
|
|
|
}
|
2013-07-30 19:58:14 +02:00
|
|
|
filePath = dimHelper.dimList.get(link.destDimID).dungeonGenerator.schematicPath;
|
2013-02-18 03:46:16 +01:00
|
|
|
}
|
2013-07-09 06:50:06 +02:00
|
|
|
|
2013-07-30 19:58:14 +02:00
|
|
|
//this.generateSchematic(link.destXCoord, link.destYCoord, link.destZCoord, link.linkOrientation, link.destDimID, link.locDimID, filePath);
|
2013-06-27 05:54:06 +02:00
|
|
|
|
2013-07-30 19:58:14 +02:00
|
|
|
try
|
2013-06-14 01:01:54 +02:00
|
|
|
{
|
2013-07-30 19:58:14 +02:00
|
|
|
int originDimID = link.locDimID;
|
|
|
|
int destDimID = link.destDimID;
|
|
|
|
DungeonSchematic dungeon;
|
|
|
|
if ((new File(filePath)).exists())
|
2013-02-18 03:46:16 +01:00
|
|
|
{
|
2013-07-30 19:58:14 +02:00
|
|
|
dungeon = DungeonSchematic.readFromFile(filePath);
|
2013-02-18 03:46:16 +01:00
|
|
|
}
|
2013-07-30 19:58:14 +02:00
|
|
|
else
|
2013-02-18 03:46:16 +01:00
|
|
|
{
|
2013-07-30 19:58:14 +02:00
|
|
|
dungeon = DungeonSchematic.readFromResource(filePath);
|
2013-06-30 06:24:44 +02:00
|
|
|
}
|
2013-07-30 19:58:14 +02:00
|
|
|
dungeon.applyImportFilters(properties);
|
2013-06-27 05:54:06 +02:00
|
|
|
|
2013-07-30 19:58:14 +02:00
|
|
|
dimHelper.dimList.get(destDimID).hasBeenFilled = true;
|
|
|
|
if (dimHelper.getWorld(destDimID) == null)
|
2013-07-15 22:58:44 +02:00
|
|
|
{
|
2013-07-30 19:58:14 +02:00
|
|
|
dimHelper.initDimension(destDimID);
|
2013-07-15 22:58:44 +02:00
|
|
|
}
|
2013-07-30 19:58:14 +02:00
|
|
|
World world = dimHelper.getWorld(destDimID);
|
|
|
|
|
|
|
|
dungeon.copyToWorld(world, new Point3D(link.destXCoord, link.destYCoord, link.destZCoord), link.linkOrientation, originDimID, destDimID);
|
2013-07-15 22:58:44 +02:00
|
|
|
}
|
2013-07-30 19:58:14 +02:00
|
|
|
catch (FileNotFoundException e)
|
2013-06-27 05:54:06 +02:00
|
|
|
{
|
2013-07-30 19:58:14 +02:00
|
|
|
e.printStackTrace();
|
2013-06-27 05:54:06 +02:00
|
|
|
}
|
2013-07-30 19:58:14 +02:00
|
|
|
catch (InvalidSchematicException e)
|
2013-06-27 05:54:06 +02:00
|
|
|
{
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
2013-06-14 01:01:54 +02:00
|
|
|
}
|
2013-02-18 03:46:16 +01:00
|
|
|
}
|