Major Improvements to DungeonHelper, Minor Bug Fixes and Tweaks #25

Merged
SenseiKiwi merged 29 commits from master into master 2013-06-16 19:30:26 +00:00
2 changed files with 23 additions and 19 deletions
Showing only changes of commit 61297c3a3a - Show all commits

View File

@@ -1,13 +1,11 @@
package StevenDimDoors.mod_pocketDim.commands;
import java.util.regex.Pattern;
import java.io.File;
import net.minecraft.command.CommandBase;
import net.minecraft.command.ICommandSender;
import net.minecraft.entity.player.EntityPlayer;
import StevenDimDoors.mod_pocketDim.DDProperties;
import StevenDimDoors.mod_pocketDim.DungeonGenerator;
import StevenDimDoors.mod_pocketDim.mod_pocketDim;
import StevenDimDoors.mod_pocketDim.helpers.DungeonHelper;
public class CommandEndDungeonCreation extends CommandBase
@@ -63,8 +61,11 @@ public class CommandEndDungeonCreation extends CommandBase
//Check that the dungeon name is valid to prevent directory traversal and other forms of abuse
if (DungeonHelper.NamePattern.matcher(var2[0]).matches())
{
DungeonGenerator newDungeon = dungeonHelper.exportDungeon(player.worldObj, x, y, z, properties.CustomSchematicDirectory + "/" + var2[0] + ".schematic");
player.sendChatToPlayer("created dungeon schematic in " + properties.CustomSchematicDirectory + "/" + var2[0]+".schematic");
String exportPath = properties.CustomSchematicDirectory + "/" + var2[0] + ".schematic";
if (dungeonHelper.exportDungeon(player.worldObj, x, y, z, exportPath))
{
player.sendChatToPlayer("Saved dungeon schematic in " + exportPath);
dungeonHelper.registerCustomDungeon(new File(exportPath));
if (dungeonHelper.customDungeonStatus.containsKey(player.worldObj.provider.dimensionId) && !player.worldObj.isRemote)
{
@@ -74,6 +75,11 @@ public class CommandEndDungeonCreation extends CommandBase
}
}
else
{
player.sendChatToPlayer("Failed to save dungeon schematic!");
}
}
else
{
player.sendChatToPlayer("Invalid schematic name. Please use only letters, numbers, and underscores.");
}

View File

@@ -352,7 +352,7 @@ public class DungeonHelper
}
}
public DungeonGenerator exportDungeon(World world, int xI, int yI, int zI, String file)
public boolean exportDungeon(World world, int xI, int yI, int zI, String exportPath)
{
int xMin;
int yMin;
@@ -368,7 +368,6 @@ public class DungeonHelper
for (int count = 0; count < 50; count++)
{
if(world.getBlockId(xMin, yI, zI)!=properties.PermaFabricBlockID)
{
xMin--;
@@ -492,17 +491,16 @@ public class DungeonHelper
CompoundTag schematicTag = new CompoundTag("Schematic", schematic);
try
{
NBTOutputStream stream = new NBTOutputStream(new FileOutputStream(file));
NBTOutputStream stream = new NBTOutputStream(new FileOutputStream(exportPath));
stream.writeTag(schematicTag);
stream.close();
return true;
}
catch(Exception e)
{
e.printStackTrace();
return false;
}
this.registerCustomDungeon(new File(file));
return new DungeonGenerator(0, file, true);
}
public void generateDungeonlink(LinkData incoming)