commit
a3b38a2c05
22 changed files with 606 additions and 151 deletions
135
StevenDimDoors/mod_pocketDim/CraftingManager.java
Normal file
135
StevenDimDoors/mod_pocketDim/CraftingManager.java
Normal file
|
@ -0,0 +1,135 @@
|
||||||
|
package StevenDimDoors.mod_pocketDim;
|
||||||
|
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import cpw.mods.fml.common.registry.GameRegistry;
|
||||||
|
import static StevenDimDoors.mod_pocketDim.mod_pocketDim.*;
|
||||||
|
|
||||||
|
public class CraftingManager
|
||||||
|
{
|
||||||
|
|
||||||
|
public static void registerRecipies()
|
||||||
|
{
|
||||||
|
Item coreCraftingItem = Item.enderPearl;
|
||||||
|
|
||||||
|
if(properties.enableServerMode)
|
||||||
|
{
|
||||||
|
coreCraftingItem = itemWorldThread;
|
||||||
|
}
|
||||||
|
if (properties.CraftingDimensionalDoorAllowed)
|
||||||
|
{
|
||||||
|
GameRegistry.addRecipe(new ItemStack(itemDimDoor, 1), new Object[]
|
||||||
|
{
|
||||||
|
" ", "yxy", " ", 'x', coreCraftingItem, 'y', Item.doorIron
|
||||||
|
});
|
||||||
|
|
||||||
|
GameRegistry.addRecipe(new ItemStack(itemDimDoor, 1), new Object[]
|
||||||
|
{
|
||||||
|
" ", "yxy", " ", 'x', mod_pocketDim.itemStableFabric, 'y', Item.doorIron
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if(properties.CraftingUnstableDoorAllowed)
|
||||||
|
{
|
||||||
|
GameRegistry.addRecipe(new ItemStack(itemChaosDoor, 1), new Object[]
|
||||||
|
{
|
||||||
|
" ", "yxy", " ", 'x', Item.eyeOfEnder, 'y', mod_pocketDim.itemDimDoor
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if(properties.CraftingWarpDoorAllowed)
|
||||||
|
{
|
||||||
|
GameRegistry.addRecipe(new ItemStack(itemExitDoor, 1), new Object[]
|
||||||
|
{
|
||||||
|
" ", "yxy", " ", 'x', coreCraftingItem, 'y', Item.doorWood
|
||||||
|
});
|
||||||
|
|
||||||
|
GameRegistry.addRecipe(new ItemStack(itemExitDoor, 1), new Object[]
|
||||||
|
{
|
||||||
|
" ", "yxy", " ", 'x', mod_pocketDim.itemStableFabric, 'y', Item.doorWood
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if(properties.CraftingTransTrapdoorAllowed)
|
||||||
|
{
|
||||||
|
GameRegistry.addRecipe(new ItemStack(transTrapdoor, 1), new Object[]
|
||||||
|
{
|
||||||
|
" y ", " x ", " y ", 'x', coreCraftingItem, 'y', Block.trapdoor
|
||||||
|
});
|
||||||
|
|
||||||
|
GameRegistry.addRecipe(new ItemStack(transTrapdoor, 1), new Object[]
|
||||||
|
{
|
||||||
|
" y ", " x ", " y ", 'x', mod_pocketDim.itemStableFabric, 'y', Block.trapdoor
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if(properties.CraftingRiftSignatureAllowed)
|
||||||
|
{
|
||||||
|
GameRegistry.addRecipe(new ItemStack(itemLinkSignature, 1), new Object[]
|
||||||
|
{
|
||||||
|
" y ", "yxy", " y ", 'x', coreCraftingItem, 'y', Item.ingotIron
|
||||||
|
});
|
||||||
|
|
||||||
|
GameRegistry.addRecipe(new ItemStack(itemLinkSignature, 1), new Object[]
|
||||||
|
{
|
||||||
|
" y ", "yxy", " y ", 'x', mod_pocketDim.itemStableFabric, 'y', Item.ingotIron
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if(properties.CraftingRiftRemoverAllowed)
|
||||||
|
{
|
||||||
|
GameRegistry.addRecipe(new ItemStack(itemRiftRemover, 1), new Object[]
|
||||||
|
{
|
||||||
|
" y ", "yxy", " y ", 'x', coreCraftingItem, 'y', Item.ingotGold
|
||||||
|
});
|
||||||
|
GameRegistry.addRecipe(new ItemStack(itemRiftRemover, 1), new Object[]
|
||||||
|
{
|
||||||
|
"yyy", "yxy", "yyy", 'x', mod_pocketDim.itemStableFabric, 'y', Item.ingotGold
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (properties.CraftingRiftBladeAllowed)
|
||||||
|
{
|
||||||
|
|
||||||
|
GameRegistry.addRecipe(new ItemStack(itemRiftBlade, 1), new Object[]
|
||||||
|
{
|
||||||
|
" x ", " x ", " y ", 'x', coreCraftingItem, 'y',mod_pocketDim.itemRiftRemover
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (properties.CraftingStableFabricAllowed)
|
||||||
|
{
|
||||||
|
GameRegistry.addRecipe(new ItemStack(itemStableFabric, 1), new Object[]
|
||||||
|
{
|
||||||
|
" y ", "yxy", " y ", 'x', coreCraftingItem, 'y', mod_pocketDim.itemWorldThread
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (properties.CraftingStabilizedRiftSignatureAllowed)
|
||||||
|
{
|
||||||
|
GameRegistry.addRecipe(new ItemStack(mod_pocketDim.itemStabilizedLinkSignature,1), new Object[]
|
||||||
|
{
|
||||||
|
" y ", "yxy", " y ", 'x', mod_pocketDim.itemLinkSignature, 'y', mod_pocketDim.itemStableFabric
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (properties.CraftingGoldDimDoorAllowed)
|
||||||
|
{
|
||||||
|
GameRegistry.addRecipe(new ItemStack(mod_pocketDim.itemGoldDimDoor,1), new Object[]
|
||||||
|
{
|
||||||
|
" x ", " y ", " x ", 'x', mod_pocketDim.itemGoldDoor, 'y', Item.eyeOfEnder
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (properties.CraftingGoldDoorAllowed)
|
||||||
|
{
|
||||||
|
GameRegistry.addRecipe(new ItemStack(mod_pocketDim.itemGoldDoor,1), new Object[]
|
||||||
|
{
|
||||||
|
"yy ", "yy ", "yy ", 'y', Item.ingotGold
|
||||||
|
});
|
||||||
|
|
||||||
|
GameRegistry.addRecipe(new ItemStack(mod_pocketDim.itemGoldDoor,1), new Object[]
|
||||||
|
{
|
||||||
|
" yy", " yy", " yy", 'y', Item.ingotGold
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -43,6 +43,8 @@ public class DDProperties
|
||||||
public final int DimensionalDoorItemID;
|
public final int DimensionalDoorItemID;
|
||||||
public final int UnstableDoorItemID;
|
public final int UnstableDoorItemID;
|
||||||
public final int WarpDoorItemID;
|
public final int WarpDoorItemID;
|
||||||
|
public final int ItemWorldThreadID;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Other IDs
|
* Other IDs
|
||||||
|
@ -91,6 +93,7 @@ public class DDProperties
|
||||||
* Other Flags
|
* Other Flags
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
public final boolean enableServerMode;
|
||||||
public final boolean WorldRiftGenerationEnabled;
|
public final boolean WorldRiftGenerationEnabled;
|
||||||
public final boolean RiftSpreadEnabled;
|
public final boolean RiftSpreadEnabled;
|
||||||
public final boolean RiftGriefingEnabled;
|
public final boolean RiftGriefingEnabled;
|
||||||
|
@ -101,6 +104,7 @@ public class DDProperties
|
||||||
public final boolean DoorRenderingEnabled;
|
public final boolean DoorRenderingEnabled;
|
||||||
public final boolean TNFREAKINGT_Enabled;
|
public final boolean TNFREAKINGT_Enabled;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Other
|
* Other
|
||||||
*/
|
*/
|
||||||
|
@ -112,11 +116,13 @@ public class DDProperties
|
||||||
public final int LimboReturnRange;
|
public final int LimboReturnRange;
|
||||||
public final String CustomSchematicDirectory;
|
public final String CustomSchematicDirectory;
|
||||||
|
|
||||||
|
|
||||||
//Singleton instance
|
//Singleton instance
|
||||||
private static DDProperties instance = null;
|
private static DDProperties instance = null;
|
||||||
//Path for custom dungeons within configuration directory
|
//Path for custom dungeons within configuration directory
|
||||||
private final String CUSTOM_SCHEMATIC_SUBDIRECTORY = "/DimDoors_Custom_schematics";
|
private final String CUSTOM_SCHEMATIC_SUBDIRECTORY = "/DimDoors_Custom_schematics";
|
||||||
//Names of categories
|
//Names of categories
|
||||||
|
private final String CATEGORY_SERVERMODE = "server mode";
|
||||||
private final String CATEGORY_CRAFTING = "crafting";
|
private final String CATEGORY_CRAFTING = "crafting";
|
||||||
private final String CATEGORY_ENTITY = "entity";
|
private final String CATEGORY_ENTITY = "entity";
|
||||||
private final String CATEGORY_DIMENSION = "dimension";
|
private final String CATEGORY_DIMENSION = "dimension";
|
||||||
|
@ -178,6 +184,11 @@ public class DDProperties
|
||||||
"Weighs the chance that a block will not be TNT. Must be greater than or equal to 0. " +
|
"Weighs the chance that a block will not be TNT. Must be greater than or equal to 0. " +
|
||||||
"EXPLOSIONS must be set to true for this to have any effect.").getInt();
|
"EXPLOSIONS must be set to true for this to have any effect.").getInt();
|
||||||
|
|
||||||
|
enableServerMode = config.get(CATEGORY_SERVERMODE, "Server Mode", false,
|
||||||
|
"Enables servermode, changing all crafting recipies to require stabilized fabric. " +
|
||||||
|
"Stabilized fabric, in turn, requires the item World Thread, which is not craftable or obtainable at all. "+
|
||||||
|
"It is up to the server manager on how to distribute it.").getBoolean(false);
|
||||||
|
|
||||||
DoorRenderEntityID=config.get(CATEGORY_ENTITY, "Door Render Entity ID", 89).getInt();
|
DoorRenderEntityID=config.get(CATEGORY_ENTITY, "Door Render Entity ID", 89).getInt();
|
||||||
MonolithEntityID = config.get(CATEGORY_ENTITY, "Monolith Entity ID", 125).getInt();
|
MonolithEntityID = config.get(CATEGORY_ENTITY, "Monolith Entity ID", 125).getInt();
|
||||||
|
|
||||||
|
@ -201,6 +212,7 @@ public class DDProperties
|
||||||
StabilizedRiftSignatureItemID = config.getItem("Stabilized Rift Signature Item ID", 5677).getInt();
|
StabilizedRiftSignatureItemID = config.getItem("Stabilized Rift Signature Item ID", 5677).getInt();
|
||||||
GoldDoorItemID = config.getItem("Gold Door Item ID", 5678).getInt();
|
GoldDoorItemID = config.getItem("Gold Door Item ID", 5678).getInt();
|
||||||
GoldDimDoorItemID = config.getItem("Gold Dim Door Item ID", 5679).getInt();
|
GoldDimDoorItemID = config.getItem("Gold Dim Door Item ID", 5679).getInt();
|
||||||
|
ItemWorldThreadID = config.getItem("World Thread Item ID", 5680).getInt();
|
||||||
|
|
||||||
LimboBlockID = config.getTerrainBlock("World Generation Block IDs - must be less than 256", "Limbo Block ID", 217,
|
LimboBlockID = config.getTerrainBlock("World Generation Block IDs - must be less than 256", "Limbo Block ID", 217,
|
||||||
"Blocks used for the terrain in Limbo").getInt();
|
"Blocks used for the terrain in Limbo").getInt();
|
||||||
|
|
|
@ -10,7 +10,7 @@ import java.util.Iterator;
|
||||||
|
|
||||||
import net.minecraft.util.MathHelper;
|
import net.minecraft.util.MathHelper;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
@Deprecated
|
||||||
public class DimData implements Serializable
|
public class DimData implements Serializable
|
||||||
{
|
{
|
||||||
public int dimID;
|
public int dimID;
|
||||||
|
|
|
@ -9,6 +9,7 @@ import StevenDimDoors.mod_pocketDim.dungeon.pack.DungeonPack;
|
||||||
import StevenDimDoors.mod_pocketDim.dungeon.pack.DungeonType;
|
import StevenDimDoors.mod_pocketDim.dungeon.pack.DungeonType;
|
||||||
import StevenDimDoors.mod_pocketDim.helpers.DungeonHelper;
|
import StevenDimDoors.mod_pocketDim.helpers.DungeonHelper;
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
public class DungeonGenerator implements Serializable
|
public class DungeonGenerator implements Serializable
|
||||||
{
|
{
|
||||||
//This static field is hax so that I don't have to add an instance field to DungeonGenerator to support DungeonType.
|
//This static field is hax so that I don't have to add an instance field to DungeonGenerator to support DungeonType.
|
||||||
|
|
|
@ -1,14 +1,12 @@
|
||||||
package StevenDimDoors.mod_pocketDim;
|
package StevenDimDoors.mod_pocketDim;
|
||||||
|
|
||||||
import paulscode.sound.SoundSystem;
|
import paulscode.sound.SoundSystem;
|
||||||
import net.minecraft.client.audio.SoundPool;
|
|
||||||
import net.minecraft.client.audio.SoundPoolEntry;
|
import net.minecraft.client.audio.SoundPoolEntry;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.util.ChunkCoordinates;
|
import net.minecraft.util.ChunkCoordinates;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.client.event.sound.PlayBackgroundMusicEvent;
|
import net.minecraftforge.client.event.sound.PlayBackgroundMusicEvent;
|
||||||
import net.minecraftforge.client.event.sound.PlaySoundEffectEvent;
|
|
||||||
import net.minecraftforge.client.event.sound.SoundLoadEvent;
|
import net.minecraftforge.client.event.sound.SoundLoadEvent;
|
||||||
import net.minecraftforge.event.EventPriority;
|
import net.minecraftforge.event.EventPriority;
|
||||||
import net.minecraftforge.event.ForgeSubscribe;
|
import net.minecraftforge.event.ForgeSubscribe;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package StevenDimDoors.mod_pocketDim;
|
package StevenDimDoors.mod_pocketDim;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
@Deprecated
|
||||||
public class LinkData implements Serializable
|
public class LinkData implements Serializable
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import StevenDimDoors.mod_pocketDim.util.Point4D;
|
import StevenDimDoors.mod_pocketDim.util.Point4D;
|
||||||
|
@Deprecated
|
||||||
public abstract class DimLink
|
public abstract class DimLink
|
||||||
{
|
{
|
||||||
protected Point4D source;
|
protected Point4D source;
|
||||||
|
|
|
@ -372,6 +372,18 @@ public class PocketManager
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
for(Integer dimID : dimensionIDBlackList)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
DimensionManager.unregisterDimension(dimID);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
System.err.println("An unexpected error occurred while unregistering blacklisted dim #" + dimID + ":");
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -384,7 +396,8 @@ public class PocketManager
|
||||||
File saveDir = DimensionManager.getCurrentSaveRootDirectory();
|
File saveDir = DimensionManager.getCurrentSaveRootDirectory();
|
||||||
if (saveDir != null)
|
if (saveDir != null)
|
||||||
{
|
{
|
||||||
// Load and register blacklisted dimension IDs
|
//Try to import data from old DD versions
|
||||||
|
//TODO - remove this code in a few versions
|
||||||
File oldSaveData = new File(saveDir+"/DimensionalDoorsData");
|
File oldSaveData = new File(saveDir+"/DimensionalDoorsData");
|
||||||
if(oldSaveData.exists())
|
if(oldSaveData.exists())
|
||||||
{
|
{
|
||||||
|
@ -395,7 +408,6 @@ public class PocketManager
|
||||||
oldSaveData.delete();
|
oldSaveData.delete();
|
||||||
|
|
||||||
System.out.println("Import Succesful!");
|
System.out.println("Import Succesful!");
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
@ -436,7 +448,7 @@ public class PocketManager
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
System.out.println("Writing Dimensional Doors save data...");
|
System.out.println("Writing Dimensional Doors save data...");
|
||||||
if ( DDSaveHandler.saveAll(dimensionData.values()) )
|
if ( DDSaveHandler.saveAll(dimensionData.values(),dimensionIDBlackList) )
|
||||||
{
|
{
|
||||||
System.out.println("Saved successfully!");
|
System.out.println("Saved successfully!");
|
||||||
}
|
}
|
||||||
|
@ -648,6 +660,15 @@ public class PocketManager
|
||||||
return dimensionData.containsKey(dimensionID);
|
return dimensionData.containsKey(dimensionID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void createAndRegisterBlacklist(List<Integer> blacklist)
|
||||||
|
{
|
||||||
|
//TODO - create a special blacklist provider
|
||||||
|
for(Integer dimID : blacklist)
|
||||||
|
{
|
||||||
|
PocketManager.dimensionIDBlackList.add(dimID);
|
||||||
|
DimensionManager.registerDimension(dimID, DDProperties.instance().PocketProviderID);
|
||||||
|
}
|
||||||
|
}
|
||||||
public static void readPacket(DataInputStream input) throws IOException
|
public static void readPacket(DataInputStream input) throws IOException
|
||||||
{
|
{
|
||||||
if (isLoaded)
|
if (isLoaded)
|
||||||
|
|
|
@ -1,17 +1,23 @@
|
||||||
package StevenDimDoors.mod_pocketDim.helpers;
|
package StevenDimDoors.mod_pocketDim.helpers;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.common.DimensionManager;
|
||||||
import net.minecraftforge.common.ForgeChunkManager;
|
import net.minecraftforge.common.ForgeChunkManager;
|
||||||
import net.minecraftforge.common.ForgeChunkManager.LoadingCallback;
|
import net.minecraftforge.common.ForgeChunkManager.LoadingCallback;
|
||||||
import net.minecraftforge.common.ForgeChunkManager.Ticket;
|
import net.minecraftforge.common.ForgeChunkManager.Ticket;
|
||||||
import StevenDimDoors.mod_pocketDim.IChunkLoader;
|
import StevenDimDoors.mod_pocketDim.IChunkLoader;
|
||||||
import StevenDimDoors.mod_pocketDim.mod_pocketDim;
|
import StevenDimDoors.mod_pocketDim.mod_pocketDim;
|
||||||
|
import StevenDimDoors.mod_pocketDim.core.NewDimData;
|
||||||
|
import StevenDimDoors.mod_pocketDim.core.PocketManager;
|
||||||
import StevenDimDoors.mod_pocketDim.tileentities.TileEntityDimDoorGold;
|
import StevenDimDoors.mod_pocketDim.tileentities.TileEntityDimDoorGold;
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
|
|
||||||
|
import cpw.mods.fml.common.event.FMLServerStartingEvent;
|
||||||
|
|
||||||
|
|
||||||
public class ChunkLoaderHelper implements LoadingCallback
|
public class ChunkLoaderHelper implements LoadingCallback
|
||||||
{
|
{
|
||||||
|
@ -29,4 +35,25 @@ public class ChunkLoaderHelper implements LoadingCallback
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void loadChunkForcedWorlds(FMLServerStartingEvent event)
|
||||||
|
{
|
||||||
|
for(NewDimData data : PocketManager.getDimensions())
|
||||||
|
{
|
||||||
|
if(data.isPocketDimension())
|
||||||
|
{
|
||||||
|
String chunkDir = DimensionManager.getCurrentSaveRootDirectory()+"/DimensionalDoors/pocketDimID" + data.id();
|
||||||
|
|
||||||
|
File file = new File(chunkDir);
|
||||||
|
|
||||||
|
if(file.exists())
|
||||||
|
{
|
||||||
|
if(ForgeChunkManager.savedWorldHasForcedChunkTickets(file))
|
||||||
|
{
|
||||||
|
PocketManager.loadDimension(data.id());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
19
StevenDimDoors/mod_pocketDim/items/ItemWorldThread.java
Normal file
19
StevenDimDoors/mod_pocketDim/items/ItemWorldThread.java
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
package StevenDimDoors.mod_pocketDim.items;
|
||||||
|
|
||||||
|
import net.minecraft.client.renderer.texture.IconRegister;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import StevenDimDoors.mod_pocketDim.mod_pocketDim;
|
||||||
|
|
||||||
|
public class ItemWorldThread extends Item
|
||||||
|
{
|
||||||
|
public ItemWorldThread(int itemID)
|
||||||
|
{
|
||||||
|
super(itemID);
|
||||||
|
this.setCreativeTab(mod_pocketDim.dimDoorsCreativeTab);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void registerIcons(IconRegister par1IconRegister)
|
||||||
|
{
|
||||||
|
this.itemIcon = par1IconRegister.registerIcon(mod_pocketDim.modid + ":" + this.getUnlocalizedName().replace("item.", ""));
|
||||||
|
}
|
||||||
|
}
|
|
@ -44,6 +44,7 @@ import StevenDimDoors.mod_pocketDim.items.ItemStabilizedRiftSignature;
|
||||||
import StevenDimDoors.mod_pocketDim.items.ItemStableFabric;
|
import StevenDimDoors.mod_pocketDim.items.ItemStableFabric;
|
||||||
import StevenDimDoors.mod_pocketDim.items.ItemUnstableDoor;
|
import StevenDimDoors.mod_pocketDim.items.ItemUnstableDoor;
|
||||||
import StevenDimDoors.mod_pocketDim.items.ItemWarpDoor;
|
import StevenDimDoors.mod_pocketDim.items.ItemWarpDoor;
|
||||||
|
import StevenDimDoors.mod_pocketDim.items.ItemWorldThread;
|
||||||
import StevenDimDoors.mod_pocketDim.items.itemRiftRemover;
|
import StevenDimDoors.mod_pocketDim.items.itemRiftRemover;
|
||||||
import StevenDimDoors.mod_pocketDim.ticking.CommonTickHandler;
|
import StevenDimDoors.mod_pocketDim.ticking.CommonTickHandler;
|
||||||
import StevenDimDoors.mod_pocketDim.ticking.LimboDecay;
|
import StevenDimDoors.mod_pocketDim.ticking.LimboDecay;
|
||||||
|
@ -117,6 +118,8 @@ public class mod_pocketDim
|
||||||
|
|
||||||
public static Item itemGoldDimDoor;
|
public static Item itemGoldDimDoor;
|
||||||
public static Item itemGoldDoor;
|
public static Item itemGoldDoor;
|
||||||
|
public static Item itemWorldThread;
|
||||||
|
|
||||||
public static Item itemRiftBlade;
|
public static Item itemRiftBlade;
|
||||||
public static Item itemDimDoor;
|
public static Item itemDimDoor;
|
||||||
public static Item itemExitDoor;
|
public static Item itemExitDoor;
|
||||||
|
@ -201,6 +204,8 @@ public class mod_pocketDim
|
||||||
itemChaosDoor = (new ItemUnstableDoor(properties.UnstableDoorItemID, Material.iron)).setUnlocalizedName("itemChaosDoor");
|
itemChaosDoor = (new ItemUnstableDoor(properties.UnstableDoorItemID, Material.iron)).setUnlocalizedName("itemChaosDoor");
|
||||||
itemRiftBlade = (new ItemRiftBlade(properties.RiftBladeItemID, EnumToolMaterial.GOLD, properties)).setUnlocalizedName("ItemRiftBlade");
|
itemRiftBlade = (new ItemRiftBlade(properties.RiftBladeItemID, EnumToolMaterial.GOLD, properties)).setUnlocalizedName("ItemRiftBlade");
|
||||||
itemStabilizedLinkSignature = (new ItemStabilizedRiftSignature(properties.StabilizedRiftSignatureItemID)).setUnlocalizedName("itemStabilizedRiftSig");
|
itemStabilizedLinkSignature = (new ItemStabilizedRiftSignature(properties.StabilizedRiftSignatureItemID)).setUnlocalizedName("itemStabilizedRiftSig");
|
||||||
|
itemWorldThread = (new ItemWorldThread(properties.ItemWorldThreadID)).setUnlocalizedName("itemWorldThread");
|
||||||
|
|
||||||
|
|
||||||
mod_pocketDim.limboBiome= (new BiomeGenLimbo(properties.LimboBiomeID));
|
mod_pocketDim.limboBiome= (new BiomeGenLimbo(properties.LimboBiomeID));
|
||||||
mod_pocketDim.pocketBiome= (new BiomeGenPocket(properties.PocketBiomeID));
|
mod_pocketDim.pocketBiome= (new BiomeGenPocket(properties.PocketBiomeID));
|
||||||
|
@ -246,6 +251,8 @@ public class mod_pocketDim
|
||||||
LanguageRegistry.addName(itemChaosDoor , "Unstable Door");
|
LanguageRegistry.addName(itemChaosDoor , "Unstable Door");
|
||||||
LanguageRegistry.addName(itemDimDoor, "Dimensional Door");
|
LanguageRegistry.addName(itemDimDoor, "Dimensional Door");
|
||||||
LanguageRegistry.addName(itemRiftBlade , "Rift Blade");
|
LanguageRegistry.addName(itemRiftBlade , "Rift Blade");
|
||||||
|
LanguageRegistry.addName(itemWorldThread, "World Thread");
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add names for multiblock inventory item
|
* Add names for multiblock inventory item
|
||||||
|
@ -266,120 +273,8 @@ public class mod_pocketDim
|
||||||
EntityList.entityEggs.put(properties.MonolithEntityID, new EntityEggInfo(properties.MonolithEntityID, 0, 0xffffff));
|
EntityList.entityEggs.put(properties.MonolithEntityID, new EntityEggInfo(properties.MonolithEntityID, 0, 0xffffff));
|
||||||
LanguageRegistry.instance().addStringLocalization("entity.DimDoors.Obelisk.name", "Monolith");
|
LanguageRegistry.instance().addStringLocalization("entity.DimDoors.Obelisk.name", "Monolith");
|
||||||
|
|
||||||
//GameRegistry.addBiome(this.limboBiome);
|
|
||||||
//GameRegistry.addBiome(this.pocketBiome);
|
|
||||||
|
|
||||||
if (properties.CraftingDimensionalDoorAllowed)
|
CraftingManager.registerRecipies();
|
||||||
{
|
|
||||||
GameRegistry.addRecipe(new ItemStack(itemDimDoor, 1), new Object[]
|
|
||||||
{
|
|
||||||
" ", "yxy", " ", 'x', Item.enderPearl, 'y', Item.doorIron
|
|
||||||
});
|
|
||||||
|
|
||||||
GameRegistry.addRecipe(new ItemStack(itemDimDoor, 1), new Object[]
|
|
||||||
{
|
|
||||||
" ", "yxy", " ", 'x', mod_pocketDim.itemStableFabric, 'y', Item.doorIron
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if(properties.CraftingUnstableDoorAllowed)
|
|
||||||
{
|
|
||||||
GameRegistry.addRecipe(new ItemStack(itemChaosDoor, 1), new Object[]
|
|
||||||
{
|
|
||||||
" ", "yxy", " ", 'x', Item.eyeOfEnder, 'y', mod_pocketDim.itemDimDoor
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if(properties.CraftingWarpDoorAllowed)
|
|
||||||
{
|
|
||||||
GameRegistry.addRecipe(new ItemStack(itemExitDoor, 1), new Object[]
|
|
||||||
{
|
|
||||||
" ", "yxy", " ", 'x', Item.enderPearl, 'y', Item.doorWood
|
|
||||||
});
|
|
||||||
|
|
||||||
GameRegistry.addRecipe(new ItemStack(itemExitDoor, 1), new Object[]
|
|
||||||
{
|
|
||||||
" ", "yxy", " ", 'x', mod_pocketDim.itemStableFabric, 'y', Item.doorWood
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if(properties.CraftingTransTrapdoorAllowed)
|
|
||||||
{
|
|
||||||
GameRegistry.addRecipe(new ItemStack(transTrapdoor, 1), new Object[]
|
|
||||||
{
|
|
||||||
" y ", " x ", " y ", 'x', Item.enderPearl, 'y', Block.trapdoor
|
|
||||||
});
|
|
||||||
|
|
||||||
GameRegistry.addRecipe(new ItemStack(transTrapdoor, 1), new Object[]
|
|
||||||
{
|
|
||||||
" y ", " x ", " y ", 'x', mod_pocketDim.itemStableFabric, 'y', Block.trapdoor
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if(properties.CraftingRiftSignatureAllowed)
|
|
||||||
{
|
|
||||||
GameRegistry.addRecipe(new ItemStack(itemLinkSignature, 1), new Object[]
|
|
||||||
{
|
|
||||||
" y ", "yxy", " y ", 'x', Item.enderPearl, 'y', Item.ingotIron
|
|
||||||
});
|
|
||||||
|
|
||||||
GameRegistry.addRecipe(new ItemStack(itemLinkSignature, 1), new Object[]
|
|
||||||
{
|
|
||||||
" y ", "yxy", " y ", 'x', mod_pocketDim.itemStableFabric, 'y', Item.ingotIron
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if(properties.CraftingRiftRemoverAllowed)
|
|
||||||
{
|
|
||||||
GameRegistry.addRecipe(new ItemStack(itemRiftRemover, 1), new Object[]
|
|
||||||
{
|
|
||||||
" y ", "yxy", " y ", 'x', Item.enderPearl, 'y', Item.ingotGold
|
|
||||||
});
|
|
||||||
GameRegistry.addRecipe(new ItemStack(itemRiftRemover, 1), new Object[]
|
|
||||||
{
|
|
||||||
"yyy", "yxy", "yyy", 'x', mod_pocketDim.itemStableFabric, 'y', Item.ingotGold
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (properties.CraftingRiftBladeAllowed)
|
|
||||||
{
|
|
||||||
|
|
||||||
GameRegistry.addRecipe(new ItemStack(itemRiftBlade, 1), new Object[]
|
|
||||||
{
|
|
||||||
" x ", " x ", " y ", 'x', Item.enderPearl, 'y',mod_pocketDim.itemRiftRemover
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (properties.CraftingStableFabricAllowed)
|
|
||||||
{
|
|
||||||
GameRegistry.addRecipe(new ItemStack(itemStableFabric, 4), new Object[]
|
|
||||||
{
|
|
||||||
" y ", "yxy", " y ", 'x', Item.enderPearl, 'y', mod_pocketDim.blockDimWall
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (properties.CraftingStabilizedRiftSignatureAllowed)
|
|
||||||
{
|
|
||||||
GameRegistry.addRecipe(new ItemStack(mod_pocketDim.itemStabilizedLinkSignature,1), new Object[]
|
|
||||||
{
|
|
||||||
" y ", "yxy", " y ", 'x', mod_pocketDim.itemLinkSignature, 'y', mod_pocketDim.itemStableFabric
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if (properties.CraftingGoldDimDoorAllowed)
|
|
||||||
{
|
|
||||||
GameRegistry.addRecipe(new ItemStack(mod_pocketDim.itemGoldDimDoor,1), new Object[]
|
|
||||||
{
|
|
||||||
" x ", " y ", " x ", 'x', mod_pocketDim.itemGoldDoor, 'y', Item.eyeOfEnder
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if (properties.CraftingGoldDoorAllowed)
|
|
||||||
{
|
|
||||||
GameRegistry.addRecipe(new ItemStack(mod_pocketDim.itemGoldDoor,1), new Object[]
|
|
||||||
{
|
|
||||||
"yy ", "yy ", "yy ", 'y', Item.ingotGold
|
|
||||||
});
|
|
||||||
|
|
||||||
GameRegistry.addRecipe(new ItemStack(mod_pocketDim.itemGoldDoor,1), new Object[]
|
|
||||||
{
|
|
||||||
" yy", " yy", " yy", 'y', Item.ingotGold
|
|
||||||
});
|
|
||||||
}
|
|
||||||
DungeonHelper.initialize();
|
DungeonHelper.initialize();
|
||||||
|
|
||||||
proxy.loadTextures();
|
proxy.loadTextures();
|
||||||
|
@ -424,5 +319,7 @@ public class mod_pocketDim
|
||||||
CommandCreatePocket.instance().register(event);
|
CommandCreatePocket.instance().register(event);
|
||||||
CommandTeleportPlayer.instance().register(event);
|
CommandTeleportPlayer.instance().register(event);
|
||||||
|
|
||||||
|
|
||||||
|
ChunkLoaderHelper.loadChunkForcedWorlds(event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
76
StevenDimDoors/mod_pocketDim/saving/BlacklistProcessor.java
Normal file
76
StevenDimDoors/mod_pocketDim/saving/BlacklistProcessor.java
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
package StevenDimDoors.mod_pocketDim.saving;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.io.OutputStream;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
import com.google.gson.GsonBuilder;
|
||||||
|
import com.google.gson.stream.JsonReader;
|
||||||
|
import com.google.gson.stream.JsonToken;
|
||||||
|
|
||||||
|
import StevenDimDoors.mod_pocketDim.util.BaseConfigurationProcessor;
|
||||||
|
import StevenDimDoors.mod_pocketDim.util.ConfigurationProcessingException;
|
||||||
|
|
||||||
|
public class BlacklistProcessor extends BaseConfigurationProcessor<List<Integer>>
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Integer> readFromStream(InputStream inputStream) throws ConfigurationProcessingException
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
JsonReader reader = new JsonReader(new InputStreamReader(inputStream, "UTF-8"));
|
||||||
|
List<Integer> data = this.createBlacklistFromJson(reader);
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
catch (IOException e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
throw new ConfigurationProcessingException("Could not read blacklist");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<Integer> createBlacklistFromJson(JsonReader reader) throws IOException
|
||||||
|
{
|
||||||
|
List<Integer> blacklist;
|
||||||
|
blacklist = this.createIntListFromJson(reader);
|
||||||
|
return blacklist;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void writeToStream(OutputStream outputStream, List<Integer> data) throws ConfigurationProcessingException
|
||||||
|
{
|
||||||
|
GsonBuilder gsonBuilder = new GsonBuilder();
|
||||||
|
Gson gson = gsonBuilder.setPrettyPrinting().create();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
outputStream.write(gson.toJson(data).getBytes("UTF-8"));
|
||||||
|
outputStream.close();
|
||||||
|
}
|
||||||
|
catch (IOException e)
|
||||||
|
{
|
||||||
|
// not sure if this is kosher, we need it to explode, but not by throwing the IO exception.
|
||||||
|
throw new ConfigurationProcessingException("Incorrectly formatted save data");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<Integer> createIntListFromJson(JsonReader reader) throws IOException
|
||||||
|
{
|
||||||
|
List<Integer> list = new ArrayList<Integer>();
|
||||||
|
reader.beginArray();
|
||||||
|
|
||||||
|
while(reader.peek()!= JsonToken.END_ARRAY)
|
||||||
|
{
|
||||||
|
list.add(reader.nextInt());
|
||||||
|
}
|
||||||
|
reader.endArray();
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -2,6 +2,7 @@ package StevenDimDoors.mod_pocketDim.saving;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileFilter;
|
import java.io.FileFilter;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -9,12 +10,14 @@ import java.util.List;
|
||||||
import net.minecraftforge.common.DimensionManager;
|
import net.minecraftforge.common.DimensionManager;
|
||||||
import StevenDimDoors.mod_pocketDim.Point3D;
|
import StevenDimDoors.mod_pocketDim.Point3D;
|
||||||
import StevenDimDoors.mod_pocketDim.core.DimLink;
|
import StevenDimDoors.mod_pocketDim.core.DimLink;
|
||||||
|
import StevenDimDoors.mod_pocketDim.core.LinkTypes;
|
||||||
import StevenDimDoors.mod_pocketDim.core.NewDimData;
|
import StevenDimDoors.mod_pocketDim.core.NewDimData;
|
||||||
import StevenDimDoors.mod_pocketDim.core.PocketManager;
|
import StevenDimDoors.mod_pocketDim.core.PocketManager;
|
||||||
import StevenDimDoors.mod_pocketDim.dungeon.DungeonData;
|
import StevenDimDoors.mod_pocketDim.dungeon.DungeonData;
|
||||||
import StevenDimDoors.mod_pocketDim.dungeon.pack.DungeonPack;
|
import StevenDimDoors.mod_pocketDim.dungeon.pack.DungeonPack;
|
||||||
import StevenDimDoors.mod_pocketDim.dungeon.pack.DungeonType;
|
import StevenDimDoors.mod_pocketDim.dungeon.pack.DungeonType;
|
||||||
import StevenDimDoors.mod_pocketDim.helpers.DungeonHelper;
|
import StevenDimDoors.mod_pocketDim.helpers.DungeonHelper;
|
||||||
|
import StevenDimDoors.mod_pocketDim.util.ConfigurationProcessingException;
|
||||||
import StevenDimDoors.mod_pocketDim.util.FileFilters;
|
import StevenDimDoors.mod_pocketDim.util.FileFilters;
|
||||||
import StevenDimDoors.mod_pocketDim.util.Point4D;
|
import StevenDimDoors.mod_pocketDim.util.Point4D;
|
||||||
|
|
||||||
|
@ -45,7 +48,14 @@ public class DDSaveHandler
|
||||||
}
|
}
|
||||||
|
|
||||||
// Load the dimension blacklist
|
// Load the dimension blacklist
|
||||||
// --insert code here--
|
File blacklistFile = new File(basePath+"blacklist.txt");
|
||||||
|
|
||||||
|
if(blacklistFile.exists())
|
||||||
|
{
|
||||||
|
BlacklistProcessor blacklistReader = new BlacklistProcessor();
|
||||||
|
List<Integer> blacklist = readBlacklist(blacklistFile,blacklistReader);
|
||||||
|
PocketManager.createAndRegisterBlacklist(blacklist);
|
||||||
|
}
|
||||||
|
|
||||||
// List any dimension data files and read each dimension
|
// List any dimension data files and read each dimension
|
||||||
DimDataProcessor reader = new DimDataProcessor();
|
DimDataProcessor reader = new DimDataProcessor();
|
||||||
|
@ -127,7 +137,14 @@ public class DDSaveHandler
|
||||||
if(packedLink.parent.equals(fakePoint))
|
if(packedLink.parent.equals(fakePoint))
|
||||||
{
|
{
|
||||||
NewDimData data = PocketManager.getDimensionData(packedLink.source.getDimension());
|
NewDimData data = PocketManager.getDimensionData(packedLink.source.getDimension());
|
||||||
DimLink link = data.createLink(packedLink.source, packedLink.tail.linkType, packedLink.orientation);
|
int linkType = packedLink.tail.linkType;
|
||||||
|
|
||||||
|
if((linkType < LinkTypes.ENUM_MIN || linkType > LinkTypes.ENUM_MAX) && linkType != LinkTypes.CLIENT_SIDE)
|
||||||
|
{
|
||||||
|
linkType = LinkTypes.NORMAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
DimLink link = data.createLink(packedLink.source, linkType, packedLink.orientation);
|
||||||
Point4D destination = packedLink.tail.destination;
|
Point4D destination = packedLink.tail.destination;
|
||||||
if(destination!=null)
|
if(destination!=null)
|
||||||
{
|
{
|
||||||
|
@ -171,7 +188,7 @@ public class DDSaveHandler
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean saveAll(Iterable<? extends IPackable<PackedDimData>> dimensions) throws IOException
|
public static boolean saveAll(Iterable<? extends IPackable<PackedDimData>> dimensions, List<Integer> blacklist) throws IOException
|
||||||
{
|
{
|
||||||
// Create the data directory for our dimensions
|
// Create the data directory for our dimensions
|
||||||
// Don't catch exceptions here. If we can't create this folder,
|
// Don't catch exceptions here. If we can't create this folder,
|
||||||
|
@ -182,6 +199,9 @@ public class DDSaveHandler
|
||||||
Files.createParentDirs(basePathFile);
|
Files.createParentDirs(basePathFile);
|
||||||
basePathFile.mkdir();
|
basePathFile.mkdir();
|
||||||
|
|
||||||
|
BlacklistProcessor blacklistReader = new BlacklistProcessor();
|
||||||
|
writeBlacklist(blacklist, blacklistReader,basePath);
|
||||||
|
|
||||||
FileFilter dataFileFilter = new FileFilters.RegexFileFilter("dim_-?\\d+\\.txt");
|
FileFilter dataFileFilter = new FileFilters.RegexFileFilter("dim_-?\\d+\\.txt");
|
||||||
|
|
||||||
//TODO Deal with temp files correctly
|
//TODO Deal with temp files correctly
|
||||||
|
@ -204,6 +224,25 @@ public class DDSaveHandler
|
||||||
return succeeded;
|
return succeeded;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static boolean writeBlacklist(List<Integer> blacklist, BlacklistProcessor writer, String basePath)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
File tempFile = new File(basePath + "blacklist.tmp");
|
||||||
|
File saveFile = new File(basePath + "blacklist.txt");
|
||||||
|
writer.writeToFile(tempFile, blacklist);
|
||||||
|
saveFile.delete();
|
||||||
|
tempFile.renameTo(saveFile);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
System.err.println("Could not save blacklist. The following error occurred:");
|
||||||
|
printException(e, true);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
private static boolean writeDimension(IPackable<PackedDimData> dimension, DimDataProcessor writer, String basePath)
|
private static boolean writeDimension(IPackable<PackedDimData> dimension, DimDataProcessor writer, String basePath)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -254,16 +293,28 @@ public class DDSaveHandler
|
||||||
//TODO - make this more robust
|
//TODO - make this more robust
|
||||||
public static DungeonData unpackDungeonData(PackedDungeonData packedDungeon)
|
public static DungeonData unpackDungeonData(PackedDungeonData packedDungeon)
|
||||||
{
|
{
|
||||||
DungeonPack pack;
|
|
||||||
DungeonType type;
|
|
||||||
|
|
||||||
for(DungeonData data : DungeonHelper.instance().getRegisteredDungeons())
|
for(DungeonData data : DungeonHelper.instance().getRegisteredDungeons())
|
||||||
{
|
{
|
||||||
if(data.schematicName().equals(packedDungeon.SchematicName))
|
if(data.schematicName().equals(packedDungeon.SchematicName))
|
||||||
{
|
{
|
||||||
//return data;
|
return data;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static List<Integer> readBlacklist(File blacklistFile, BlacklistProcessor reader)
|
||||||
|
{
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
return reader.readFromFile(blacklistFile);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -68,8 +68,6 @@ public class DimDataProcessor extends BaseConfigurationProcessor<PackedDimData>
|
||||||
// not sure if this is kosher, we need it to explode, but not by throwing the IO exception.
|
// not sure if this is kosher, we need it to explode, but not by throwing the IO exception.
|
||||||
throw new ConfigurationProcessingException("Incorrectly formatted save data");
|
throw new ConfigurationProcessingException("Incorrectly formatted save data");
|
||||||
}
|
}
|
||||||
// TODO Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Nightmare method that takes a JsonReader pointed at a serialized instance of PackedDimData
|
* Nightmare method that takes a JsonReader pointed at a serialized instance of PackedDimData
|
||||||
|
|
Binary file not shown.
Binary file not shown.
33
build.xml
33
build.xml
|
@ -15,6 +15,9 @@
|
||||||
<property name="mcpsrc.dir" value="${mcp.dir}/src/minecraft" />
|
<property name="mcpsrc.dir" value="${mcp.dir}/src/minecraft" />
|
||||||
<property name="resources.dir" value="resources" />
|
<property name="resources.dir" value="resources" />
|
||||||
|
|
||||||
|
<property name="gson.url" value="https://google-gson.googlecode.com/files/google-gson-2.2.4-release.zip" />
|
||||||
|
<property name="gson.name" value="gson-2.2.4.zip" />
|
||||||
|
|
||||||
<property name="package.meta-inf" value="META-INF" />
|
<property name="package.meta-inf" value="META-INF" />
|
||||||
<property name="build.ver" value="1.5.2" />
|
<property name="build.ver" value="1.5.2" />
|
||||||
<property name="dist.dir" value="${build.dir}/dist" />
|
<property name="dist.dir" value="${build.dir}/dist" />
|
||||||
|
@ -41,8 +44,6 @@
|
||||||
<fileset dir="StevenDimDoors" />
|
<fileset dir="StevenDimDoors" />
|
||||||
</copy>
|
</copy>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<exec dir="${verclass.dir}" executable="sh" osfamily="unix" outputproperty="grep.out">
|
<exec dir="${verclass.dir}" executable="sh" osfamily="unix" outputproperty="grep.out">
|
||||||
<arg value="-c"/>
|
<arg value="-c"/>
|
||||||
<arg value="grep -o -P '[0-9.]+R[0-9.]+(RC[0-9]+)?(B[0-9]+)?' ${verclass.name}"/>
|
<arg value="grep -o -P '[0-9.]+R[0-9.]+(RC[0-9]+)?(B[0-9]+)?' ${verclass.name}"/>
|
||||||
|
@ -56,6 +57,7 @@
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<available property="forge-exists" file="${download.dir}/minecraftforge-src-${forge.version}.zip" />
|
<available property="forge-exists" file="${download.dir}/minecraftforge-src-${forge.version}.zip" />
|
||||||
|
<available property="gson-exists" file="${mcpsrc.dir}/com/google/gson/Gson.java" />
|
||||||
<available property="already-compiled" file="${classes.dir}/deathrat" />
|
<available property="already-compiled" file="${classes.dir}/deathrat" />
|
||||||
<condition property="should-download-ant-contrib">
|
<condition property="should-download-ant-contrib">
|
||||||
<or>
|
<or>
|
||||||
|
@ -71,11 +73,21 @@
|
||||||
<zip destfile="${dist.dir}/DimensionalDoors-${grep.out}-${build.number}.zip" basedir="${classes.dir}"/>
|
<zip destfile="${dist.dir}/DimensionalDoors-${grep.out}-${build.number}.zip" basedir="${classes.dir}"/>
|
||||||
<delete dir="${classes.dir}" />
|
<delete dir="${classes.dir}" />
|
||||||
<delete dir="${mcp.dir}/reobf"/>
|
<delete dir="${mcp.dir}/reobf"/>
|
||||||
<delete dir="${mcpsrc}/StevenDimDoors" />
|
<delete dir="${mcpsrc.dir}/StevenDimDoors" />
|
||||||
<delete dir="${mcpsrc}/Steven" />
|
<delete dir="${mcpsrc.dir}/Steven" />
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="build" depends="get-version" unless="already-compiled">
|
<target name="get-gson" unless="gson-exists">
|
||||||
|
<get src="${gson.url}" dest="${download.dir}/${gson.name}" />
|
||||||
|
<unzip src="${download.dir}/${gson.name}" dest="${download.dir}" />
|
||||||
|
<unzip src="${download.dir}/google-gson-2.2.4/gson-2.2.4-sources.jar" dest="${download.dir}/google-gson-2.2.4/"/>
|
||||||
|
<copy todir="${mcpsrc.dir}/com">
|
||||||
|
<fileset dir="${download.dir}/google-gson-2.2.4/com"/>
|
||||||
|
</copy>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="build" depends="get-version,get-gson" unless="already-compiled">
|
||||||
|
|
||||||
<!-- Recompile -->
|
<!-- Recompile -->
|
||||||
<exec dir="${mcp.dir}" executable="cmd" osfamily="windows" failonerror="true">
|
<exec dir="${mcp.dir}" executable="cmd" osfamily="windows" failonerror="true">
|
||||||
<arg line="/c recompile.bat"/>
|
<arg line="/c recompile.bat"/>
|
||||||
|
@ -138,9 +150,18 @@
|
||||||
|
|
||||||
<exec dir="${forge.dir}" executable="sh" osfamily="unix" inputstring="Yes\n">
|
<exec dir="${forge.dir}" executable="sh" osfamily="unix" inputstring="Yes\n">
|
||||||
<arg value="install.sh" />
|
<arg value="install.sh" />
|
||||||
|
|
||||||
</exec>
|
</exec>
|
||||||
|
|
||||||
|
<get src="http://mirror.technicpack.net/Technic/lib/fml/fml_libs15.zip" dest="${download.dir}/fml_libs15.zip" />
|
||||||
|
<unzip src="${download.dir}/fml_libs15.zip" dest="${lib.dir}/" />
|
||||||
|
|
||||||
|
<exec dir="${forge.dir}" executable="cmd" osfamily="windows" inputstring="Yes">
|
||||||
|
<arg line="/c install.cmd"/>
|
||||||
|
</exec>
|
||||||
|
|
||||||
|
<exec dir="${forge.dir}" executable="sh" osfamily="unix" inputstring="Yes">
|
||||||
|
<arg value="install.sh" />
|
||||||
|
</exec>
|
||||||
|
|
||||||
<chmod file="${mcp.dir}/updatemd5.sh" perm="+x"/>
|
<chmod file="${mcp.dir}/updatemd5.sh" perm="+x"/>
|
||||||
<chmod file="${mcp.dir}/recompile.sh" perm="+x"/>
|
<chmod file="${mcp.dir}/recompile.sh" perm="+x"/>
|
||||||
|
|
199
buildOLD.xml
Normal file
199
buildOLD.xml
Normal file
|
@ -0,0 +1,199 @@
|
||||||
|
|
||||||
|
|
||||||
|
<project name="DimensionalDoors" default="install" basedir=".">
|
||||||
|
|
||||||
|
<property environment="env" />
|
||||||
|
|
||||||
|
<property name="build.dir" value="build" />
|
||||||
|
<property name="classes.dir" value="${build.dir}/packaging" />
|
||||||
|
<property name="src.dir" value="src" />
|
||||||
|
<property name="forge.version" value="1.5.2-7.8.0.691" />
|
||||||
|
<property name="forge.url" value="http://files.minecraftforge.net/minecraftforge/minecraftforge-src-${forge.version}.zip" />
|
||||||
|
<property name="mcp.version" value="751" />
|
||||||
|
<property name="forge.dir" value="${build.dir}/forge" />
|
||||||
|
<property name="mcp.dir" value="${forge.dir}/mcp" />
|
||||||
|
<property name="mcpsrc.dir" value="${mcp.dir}/src/minecraft" />
|
||||||
|
<property name="resources.dir" value="resources" />
|
||||||
|
|
||||||
|
<property name="package.meta-inf" value="META-INF" />
|
||||||
|
<property name="build.ver" value="1.5.2" />
|
||||||
|
<property name="dist.dir" value="${build.dir}/dist" />
|
||||||
|
|
||||||
|
<property name="download.dir" value="downloads" />
|
||||||
|
|
||||||
|
<property name="lib.dir" value="${mcp.dir}/lib" />
|
||||||
|
|
||||||
|
<property file="${forge.dir}/forgeversion.properties" />
|
||||||
|
<condition property="forge.already.installed">
|
||||||
|
<equals arg1="${forge.build.number}" arg2="691" />
|
||||||
|
</condition>
|
||||||
|
|
||||||
|
<property name="verclass.dir" value="${mcpsrc.dir}/StevenDimDoors/mod_pocketDim/" />
|
||||||
|
<property name="verclass.name" value="mod_pocketDim.java"/>
|
||||||
|
|
||||||
|
|
||||||
|
<mkdir dir="${download.dir}"/>
|
||||||
|
<mkdir dir="${build.dir}" />
|
||||||
|
|
||||||
|
<target name="get-version" depends="setup-forge">
|
||||||
|
<mkdir dir="${mcpsrc.dir}/StevenDimDoors" />
|
||||||
|
<copy todir="${mcpsrc.dir}/StevenDimDoors" overwrite="true">
|
||||||
|
<fileset dir="StevenDimDoors" />
|
||||||
|
</copy>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<exec dir="${verclass.dir}" executable="sh" osfamily="unix" outputproperty="grep.out">
|
||||||
|
<arg value="-c"/>
|
||||||
|
<arg value="grep -o -P '[0-9.]+R[0-9.]+(RC[0-9]+)?(B[0-9]+)?' ${verclass.name}"/>
|
||||||
|
</exec>
|
||||||
|
<exec executable="python" osfamily="unix">
|
||||||
|
<arg value="versionscript.py" />
|
||||||
|
<arg value="${grep.out}" />
|
||||||
|
</exec>
|
||||||
|
<echo message="Grepped version: ${grep.out}"/>
|
||||||
|
<copy todir="${classes.dir}" file="mcmod.info" overwrite="true"/>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<available property="forge-exists" file="${download.dir}/minecraftforge-src-${forge.version}.zip" />
|
||||||
|
<available property="already-compiled" file="${classes.dir}/deathrat" />
|
||||||
|
<condition property="should-download-ant-contrib">
|
||||||
|
<or>
|
||||||
|
<available file="${download.dir}/ant-contrib/ant-contrib-1.0b3.jar"/>
|
||||||
|
<available file="${download.dir}/minecraftforge-src-${forge.version}.zip"/>
|
||||||
|
</or>
|
||||||
|
</condition>
|
||||||
|
|
||||||
|
<target name="install" depends="build">
|
||||||
|
<copy todir="${classes.dir}/schematics" overwrite="true">
|
||||||
|
<fileset dir="schematics" />
|
||||||
|
</copy>
|
||||||
|
<zip destfile="${dist.dir}/DimensionalDoors-${grep.out}-${build.number}.zip" basedir="${classes.dir}"/>
|
||||||
|
<delete dir="${classes.dir}" />
|
||||||
|
<delete dir="${mcp.dir}/reobf"/>
|
||||||
|
<delete dir="${mcpsrc}/StevenDimDoors" />
|
||||||
|
<delete dir="${mcpsrc}/Steven" />
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="build" depends="get-version" unless="already-compiled">
|
||||||
|
<!-- Recompile -->
|
||||||
|
<exec dir="${mcp.dir}" executable="cmd" osfamily="windows" failonerror="true">
|
||||||
|
<arg line="/c recompile.bat"/>
|
||||||
|
</exec>
|
||||||
|
|
||||||
|
<exec dir="${mcp.dir}" executable="sh" osfamily="unix" failonerror="true">
|
||||||
|
<arg value="recompile.sh" />
|
||||||
|
</exec>
|
||||||
|
|
||||||
|
<!-- Reobf -->
|
||||||
|
<exec dir="${mcp.dir}" executable="cmd" osfamily="windows">
|
||||||
|
<arg line="/c reobfuscate_srg.bat"/>
|
||||||
|
</exec>
|
||||||
|
|
||||||
|
<exec dir="${mcp.dir}" executable="sh" osfamily="unix">
|
||||||
|
<arg value="reobfuscate_srg.sh" />
|
||||||
|
</exec>
|
||||||
|
|
||||||
|
<copy todir="${classes.dir}">
|
||||||
|
<fileset dir="${mcp.dir}/reobf/minecraft"/>
|
||||||
|
</copy>
|
||||||
|
<copy todir="${classes.dir}">
|
||||||
|
<fileset dir="${resources.dir}"/>
|
||||||
|
</copy>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="build-number-there" if="env.BUILD_NUMBER" >
|
||||||
|
<echo message="Using build number ${env.BUILD_NUMBER}..." />
|
||||||
|
<property name="build.number" value="${env.BUILD_NUMBER}" />
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="build-number-not-there" unless="env.BUILD_NUMBER" >
|
||||||
|
<echo message="!! No build number set !!" />
|
||||||
|
<property name="build.number" value="CUSTOM_BUILD" />
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="setup-forge" depends="download-forge,build-number-there,build-number-not-there" unless="forge.already.installed">
|
||||||
|
|
||||||
|
<property name="build.full" value="${build.number}" />
|
||||||
|
<unzip dest="${build.dir}">
|
||||||
|
<fileset dir="${download.dir}">
|
||||||
|
<include name="minecraftforge-src-${forge.version}.zip"/>
|
||||||
|
</fileset>
|
||||||
|
</unzip>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Change executables' permitions -->
|
||||||
|
|
||||||
|
<chmod file="${forge.dir}/install.sh" perm="+x"/>
|
||||||
|
|
||||||
|
<!-- if your building on OSX these 2 should be executable -->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Install forge -->
|
||||||
|
<delete dir="${mcp.dir}" failonerror="no"/>
|
||||||
|
<exec dir="${forge.dir}" executable="cmd" osfamily="windows" inputstring="Yes\n">
|
||||||
|
<arg line="/c install.cmd"/>
|
||||||
|
</exec>
|
||||||
|
|
||||||
|
<exec dir="${forge.dir}" executable="sh" osfamily="unix" inputstring="Yes\n">
|
||||||
|
<arg value="install.sh" />
|
||||||
|
|
||||||
|
</exec>
|
||||||
|
|
||||||
|
|
||||||
|
<chmod file="${mcp.dir}/updatemd5.sh" perm="+x"/>
|
||||||
|
<chmod file="${mcp.dir}/recompile.sh" perm="+x"/>
|
||||||
|
<chmod file="${mcp.dir}/reobfuscate_srg.sh" perm="+x"/>
|
||||||
|
<chmod file="${mcp.dir}/runtime/bin/astyle-osx" perm="+x" />
|
||||||
|
<chmod file="${mcp.dir}/runtime/bin/jad-osx" perm="+x" />
|
||||||
|
<!-- Copy libraries -->
|
||||||
|
<!-- <copy todir="${mcp.dir}/lib" >
|
||||||
|
<fileset dir="lib" >
|
||||||
|
<patternset includes="*.jar" />
|
||||||
|
</fileset>
|
||||||
|
</copy> -->
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="download-forge" depends="download-ant-contrib" unless="forge-exists">
|
||||||
|
<taskdef resource="net/sf/antcontrib/antlib.xml">
|
||||||
|
<classpath>
|
||||||
|
<pathelement location="${download.dir}/ant-contrib/ant-contrib-1.0b3.jar"/>
|
||||||
|
<fileset dir="${download.dir}/ant-contrib/lib">
|
||||||
|
<include name="*.jar"/>
|
||||||
|
</fileset>
|
||||||
|
</classpath>
|
||||||
|
</taskdef>
|
||||||
|
<echo message="Downloading forge... " />
|
||||||
|
<get src="${forge.url}" dest="${download.dir}/minecraftforge-src-${forge.version}.zip" />
|
||||||
|
</target>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<target name="download-ant-contrib" unless="should-download-ant-contrib">
|
||||||
|
<echo message="Getting: ant-contrib"/>
|
||||||
|
<mkdir dir="${download.dir}/tmp"/>
|
||||||
|
<mkdir dir="${download.dir}/ant-contrib/lib" />
|
||||||
|
<get src="http://sourceforge.net/projects/ant-contrib/files/ant-contrib/1.0b3/ant-contrib-1.0b3-bin.zip/download" dest="${download.dir}/tmp/ant-contrib-1.0b3-bin.zip"/>
|
||||||
|
<get src="http://archive.apache.org/dist/commons/codec/binaries/commons-codec-1.6-bin.zip" dest="${download.dir}/tmp/commons-codec-1.6-bin.zip"/>
|
||||||
|
|
||||||
|
<unzip src="${download.dir}/tmp/ant-contrib-1.0b3-bin.zip" dest="${download.dir}"/>
|
||||||
|
<unzip src="${download.dir}/tmp/commons-codec-1.6-bin.zip" dest="${download.dir}/tmp"/>
|
||||||
|
|
||||||
|
<move todir="${download.dir}/ant-contrib/lib">
|
||||||
|
<fileset file="${download.dir}/tmp/commons-codec-1.6/commons-codec-1.6.jar"/>
|
||||||
|
</move>
|
||||||
|
|
||||||
|
<!-- Delete useless files -->
|
||||||
|
<delete dir="${download.dir}/ant-contrib/docs"/>
|
||||||
|
<delete dir="${download.dir}/tmp"/>
|
||||||
|
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="clean" >
|
||||||
|
<delete dir="${build.dir}" />
|
||||||
|
</target>
|
||||||
|
|
||||||
|
|
||||||
|
</project>
|
||||||
|
|
BIN
resources/mods/DimDoors/textures/items/ItemWorldThread.png
Normal file
BIN
resources/mods/DimDoors/textures/items/ItemWorldThread.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.2 KiB |
BIN
resources/mods/DimDoors/textures/other/RIFT.png
Normal file
BIN
resources/mods/DimDoors/textures/other/RIFT.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 345 KiB |
BIN
resources/mods/DimDoors/textures/other/WARP.png
Normal file
BIN
resources/mods/DimDoors/textures/other/WARP.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 471 KiB |
BIN
resources/mods/DimDoors/textures/other/dimdoors_logo.png
Normal file
BIN
resources/mods/DimDoors/textures/other/dimdoors_logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 21 KiB |
Loading…
Reference in a new issue