From d020dd384bdb05aa3c716ac43d22bcd740df9105 Mon Sep 17 00:00:00 2001 From: StevenRS11 Date: Thu, 15 May 2014 05:53:28 -0400 Subject: [PATCH 1/3] toString ftw --- .../mod_pocketDim/dungeon/pack/DungeonPack.java | 5 +++++ .../mod_pocketDim/dungeon/pack/DungeonType.java | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/src/main/java/StevenDimDoors/mod_pocketDim/dungeon/pack/DungeonPack.java b/src/main/java/StevenDimDoors/mod_pocketDim/dungeon/pack/DungeonPack.java index 4a37e85c..732f5dfa 100644 --- a/src/main/java/StevenDimDoors/mod_pocketDim/dungeon/pack/DungeonPack.java +++ b/src/main/java/StevenDimDoors/mod_pocketDim/dungeon/pack/DungeonPack.java @@ -298,4 +298,9 @@ public class DungeonPack WeightedContainer resultContainer = (WeightedContainer) WeightedRandom.getRandomItem(random, weights); return (resultContainer != null) ? resultContainer.getData() : null; } + @Override + public String toString() + { + return this.name; + } } diff --git a/src/main/java/StevenDimDoors/mod_pocketDim/dungeon/pack/DungeonType.java b/src/main/java/StevenDimDoors/mod_pocketDim/dungeon/pack/DungeonType.java index 50e5921a..98c0a146 100644 --- a/src/main/java/StevenDimDoors/mod_pocketDim/dungeon/pack/DungeonType.java +++ b/src/main/java/StevenDimDoors/mod_pocketDim/dungeon/pack/DungeonType.java @@ -45,4 +45,9 @@ public class DungeonType implements Comparable final int prime = 2039; return prime * ID; } + @Override + public String toString() + { + return this.Name+" owned by "+this.Owner; + } } From ac9b3d73e8e3a48ee2c9a7572e6d12a826dce61c Mon Sep 17 00:00:00 2001 From: StevenRS11 Date: Fri, 16 May 2014 21:42:59 -0400 Subject: [PATCH 2/3] Various Fixed bug in converting old saves Started color work --- .../mod_pocketDim/core/PocketManager.java | 3 +- .../mod_pocketDim/mod_pocketDim.java | 3 ++ .../mod_pocketDim/saving/OldSaveImporter.java | 53 +++++++++++++++---- .../tileentities/DDTileEntityBase.java | 13 +++++ .../tileentities/TileEntityDimDoor.java | 29 +++++++--- .../tileentities/TileEntityRift.java | 18 ++++--- .../tileentities/TileEntityTransTrapdoor.java | 38 ++++++------- .../mod_pocketDimClient/RenderDimDoor.java | 29 +--------- 8 files changed, 110 insertions(+), 76 deletions(-) create mode 100644 src/main/java/StevenDimDoors/mod_pocketDim/tileentities/DDTileEntityBase.java diff --git a/src/main/java/StevenDimDoors/mod_pocketDim/core/PocketManager.java b/src/main/java/StevenDimDoors/mod_pocketDim/core/PocketManager.java index 4eae6661..1882bba6 100644 --- a/src/main/java/StevenDimDoors/mod_pocketDim/core/PocketManager.java +++ b/src/main/java/StevenDimDoors/mod_pocketDim/core/PocketManager.java @@ -424,7 +424,8 @@ public class PocketManager { System.out.println("Importing old DD save data..."); OldSaveImporter.importOldSave(oldSaveData); - oldSaveData.delete(); + + oldSaveData.renameTo(new File(oldSaveData.getAbsolutePath()+"_IMPORTED")); System.out.println("Import Succesful!"); } diff --git a/src/main/java/StevenDimDoors/mod_pocketDim/mod_pocketDim.java b/src/main/java/StevenDimDoors/mod_pocketDim/mod_pocketDim.java index 8e1ee949..239b1370 100644 --- a/src/main/java/StevenDimDoors/mod_pocketDim/mod_pocketDim.java +++ b/src/main/java/StevenDimDoors/mod_pocketDim/mod_pocketDim.java @@ -101,6 +101,9 @@ public class mod_pocketDim { public static final String version = "1.6.4-R2.2.3"; public static final String modid = "dimdoors"; + + //TODO need a place to stick all these constants + public static final int NETHER_DIMENSION_ID = -1; //need to clean up @SidedProxy(clientSide = "StevenDimDoors.mod_pocketDimClient.ClientProxy", serverSide = "StevenDimDoors.mod_pocketDim.CommonProxy") diff --git a/src/main/java/StevenDimDoors/mod_pocketDim/saving/OldSaveImporter.java b/src/main/java/StevenDimDoors/mod_pocketDim/saving/OldSaveImporter.java index 42b8d01a..bc1a8c9f 100644 --- a/src/main/java/StevenDimDoors/mod_pocketDim/saving/OldSaveImporter.java +++ b/src/main/java/StevenDimDoors/mod_pocketDim/saving/OldSaveImporter.java @@ -39,10 +39,39 @@ public class OldSaveImporter return; } + //build the child list + HashMap> parentChildMapping = new HashMap>(); + for(DimData data : dimMap.values()) + { + if(data.isPocket) + { + LinkData link = data.exitDimLink; + + if(parentChildMapping.containsKey(link.destDimID)) + { + parentChildMapping.get(link.destDimID).add(data.dimID); + } + else + { + parentChildMapping.put(link.destDimID, new ArrayList()); + parentChildMapping.get(link.destDimID).add(data.dimID); + } + parentChildMapping.remove(data.dimID); + } + } + for(DimData data : dimMap.values()) { List newPackedLinkData = new ArrayList(); - List childDims = new ArrayList(); + List childDims; + if(parentChildMapping.containsKey(data.dimID)) + { + childDims =parentChildMapping.get(data.dimID); + } + else + { + childDims = new ArrayList(); + } for(LinkData link : data.getLinksInDim()) { @@ -55,19 +84,21 @@ public class OldSaveImporter newPackedLinkData.add(newPackedLink); allPackedLinks.add(newPackedLink); - } - - PackedDimData dim = new PackedDimData(data.dimID, data.depth, data.depth, data.exitDimLink.locDimID, data.exitDimLink.locDimID, 0, data.dungeonGenerator!=null, data.hasBeenFilled, null, new Point3D(0,64,0), childDims, newPackedLinkData, null); + PackedDimData dim; + if(data.isPocket) + { + dim = new PackedDimData(data.dimID, data.depth, data.depth, data.exitDimLink.locDimID, data.exitDimLink.locDimID, 0, data.dungeonGenerator!=null, data.hasBeenFilled, null, new Point3D(0,64,0), childDims, newPackedLinkData, null); + } + else + { + dim = new PackedDimData(data.dimID, data.depth, data.depth, data.dimID, data.dimID, 0, data.dungeonGenerator!=null, data.hasBeenFilled, null, new Point3D(0,64,0), childDims, newPackedLinkData, null); + } newPackedDimData.put(dim.ID,dim); - - DDSaveHandler.unpackDimData(newPackedDimData); - DDSaveHandler.unpackLinkData(allPackedLinks); - - } - - + + DDSaveHandler.unpackDimData(newPackedDimData); + DDSaveHandler.unpackLinkData(allPackedLinks); } } diff --git a/src/main/java/StevenDimDoors/mod_pocketDim/tileentities/DDTileEntityBase.java b/src/main/java/StevenDimDoors/mod_pocketDim/tileentities/DDTileEntityBase.java new file mode 100644 index 00000000..a8cff85e --- /dev/null +++ b/src/main/java/StevenDimDoors/mod_pocketDim/tileentities/DDTileEntityBase.java @@ -0,0 +1,13 @@ +package StevenDimDoors.mod_pocketDim.tileentities; +import java.util.Random; +import net.minecraft.tileentity.TileEntity; + +public abstract class DDTileEntityBase extends TileEntity +{ + /** + * + * @return an array of floats representing RGBA color where 1.0 = 255. + */ + public abstract float[] getRenderColor(Random rand); + +} diff --git a/src/main/java/StevenDimDoors/mod_pocketDim/tileentities/TileEntityDimDoor.java b/src/main/java/StevenDimDoors/mod_pocketDim/tileentities/TileEntityDimDoor.java index 923ecb11..115aa646 100644 --- a/src/main/java/StevenDimDoors/mod_pocketDim/tileentities/TileEntityDimDoor.java +++ b/src/main/java/StevenDimDoors/mod_pocketDim/tileentities/TileEntityDimDoor.java @@ -1,8 +1,10 @@ package StevenDimDoors.mod_pocketDim.tileentities; +import java.util.Random; import StevenDimDoors.mod_pocketDim.ServerPacketHandler; import StevenDimDoors.mod_pocketDim.mod_pocketDim; import StevenDimDoors.mod_pocketDim.blocks.IDimDoor; +import StevenDimDoors.mod_pocketDim.core.NewDimData; import StevenDimDoors.mod_pocketDim.core.PocketManager; import net.minecraft.block.Block; import net.minecraft.nbt.NBTTagCompound; @@ -11,7 +13,7 @@ import net.minecraft.network.packet.Packet130UpdateSign; import net.minecraft.network.packet.Packet250CustomPayload; import net.minecraft.tileentity.TileEntity; -public class TileEntityDimDoor extends TileEntity +public class TileEntityDimDoor extends DDTileEntityBase { public boolean openOrClosed; public int orientation; @@ -22,13 +24,9 @@ public class TileEntityDimDoor extends TileEntity @Override public boolean canUpdate() { - return true; + return false; } - @Override - public void updateEntity() - { - } @Override public Packet getDescriptionPacket() { @@ -83,5 +81,22 @@ public class TileEntityDimDoor extends TileEntity nbt.setBoolean("hasGennedPair", hasGennedPair); } - + @Override + public float[] getRenderColor(Random rand) + { + float[] rgbaColor = {1,1,1,1}; + if (this.worldObj.provider.dimensionId == mod_pocketDim.NETHER_DIMENSION_ID) + { + rgbaColor[0] = rand.nextFloat() * 0.5F + 0.4F; + rgbaColor[1] = rand.nextFloat() * 0.05F; + rgbaColor[2] = rand.nextFloat() * 0.05F; + } + else + { + rgbaColor[0] = rand.nextFloat() * 0.5F + 0.1F; + rgbaColor[1] = rand.nextFloat() * 0.4F + 0.4F; + rgbaColor[2] = rand.nextFloat() * 0.6F + 0.5F; + } + return rgbaColor; + } } diff --git a/src/main/java/StevenDimDoors/mod_pocketDim/tileentities/TileEntityRift.java b/src/main/java/StevenDimDoors/mod_pocketDim/tileentities/TileEntityRift.java index 135235e5..d6e781b6 100644 --- a/src/main/java/StevenDimDoors/mod_pocketDim/tileentities/TileEntityRift.java +++ b/src/main/java/StevenDimDoors/mod_pocketDim/tileentities/TileEntityRift.java @@ -33,7 +33,7 @@ import StevenDimDoors.mod_pocketDim.core.NewDimData; import StevenDimDoors.mod_pocketDim.core.PocketManager; import StevenDimDoors.mod_pocketDim.util.Point4D; -public class TileEntityRift extends TileEntity +public class TileEntityRift extends DDTileEntityBase { private static final int RIFT_INTERACTION_RANGE = 5; private static final int MAX_ANCESTOR_LINKS = 2; @@ -44,7 +44,9 @@ public class TileEntityRift extends TileEntity private static final int MAX_RIFT_SPREAD_CHANCE = 256; private static final int HOSTILE_ENDERMAN_CHANCE = 1; private static final int MAX_HOSTILE_ENDERMAN_CHANCE = 3; - + private static final float[] POCKET_RENDER_COLOR= {1,1,1,.7F}; + private static final float[] DEFAULT_RENDER_COLOR= {1,1,1,1}; + private static Random random = new Random(); private int age = 0; @@ -112,11 +114,7 @@ public class TileEntityRift extends TileEntity updateTimer++; } - @Override - public boolean canUpdate() - { - return true; - } + private void clearBlocksOnRift() { @@ -387,4 +385,10 @@ public class TileEntityRift extends TileEntity { readFromNBT(pkt.data); } + + @Override + public float[] getRenderColor(Random rand) + { + return null; + } } diff --git a/src/main/java/StevenDimDoors/mod_pocketDim/tileentities/TileEntityTransTrapdoor.java b/src/main/java/StevenDimDoors/mod_pocketDim/tileentities/TileEntityTransTrapdoor.java index 125a2256..d26b46fd 100644 --- a/src/main/java/StevenDimDoors/mod_pocketDim/tileentities/TileEntityTransTrapdoor.java +++ b/src/main/java/StevenDimDoors/mod_pocketDim/tileentities/TileEntityTransTrapdoor.java @@ -1,44 +1,36 @@ package StevenDimDoors.mod_pocketDim.tileentities; +import java.util.Random; +import StevenDimDoors.mod_pocketDim.mod_pocketDim; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -public class TileEntityTransTrapdoor extends TileEntity +public class TileEntityTransTrapdoor extends DDTileEntityBase { public boolean hasRift; - - @Override public boolean canUpdate() { - return true; + return false; } @Override - public void updateEntity() + public float[] getRenderColor(Random rand) { - - } - - @Override - public void readFromNBT(NBTTagCompound nbt) - { - super.readFromNBT(nbt); - try + float[] rgbaColor = {1,1,1,1}; + if (this.worldObj.provider.dimensionId == mod_pocketDim.NETHER_DIMENSION_ID) { - this.hasRift = nbt.getBoolean("hasRift"); + rgbaColor[0] = worldObj.rand.nextFloat() * 0.5F + 0.4F; + rgbaColor[1] = worldObj.rand.nextFloat() * 0.05F; + rgbaColor[2] = worldObj.rand.nextFloat() * 0.05F; } - catch (Exception e) + else { - + rgbaColor[0] = worldObj.rand.nextFloat() * 0.5F + 0.1F; + rgbaColor[1] = worldObj.rand.nextFloat() * 0.4F + 0.4F; + rgbaColor[2] = worldObj.rand.nextFloat() * 0.6F + 0.5F; } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) - { - super.writeToNBT(nbt); - nbt.setBoolean("hasRift", this.hasRift); + return rgbaColor; } } diff --git a/src/main/java/StevenDimDoors/mod_pocketDimClient/RenderDimDoor.java b/src/main/java/StevenDimDoors/mod_pocketDimClient/RenderDimDoor.java index aad9ef5f..6e5abea0 100644 --- a/src/main/java/StevenDimDoors/mod_pocketDimClient/RenderDimDoor.java +++ b/src/main/java/StevenDimDoors/mod_pocketDimClient/RenderDimDoor.java @@ -181,33 +181,8 @@ public class RenderDimDoor extends TileEntitySpecialRenderer GL11.glBegin(GL11.GL_QUADS); - // Set the portal's color depending on whether it's in the Nether - float var21, var22, var23; - NewDimData dimension = PocketManager.getDimensionData(tile.worldObj); - if (dimension.root().id() == NETHER_DIMENSION_ID) - { - var21 = rand.nextFloat() * 0.5F + 0.4F; - var22 = rand.nextFloat() * 0.05F; - var23 = rand.nextFloat() * 0.05F; - if (count == 0) - { - var21 = 1.0F; - } - } - else - { - var21 = rand.nextFloat() * 0.5F + 0.1F; - var22 = rand.nextFloat() * 0.4F + 0.4F; - var23 = rand.nextFloat() * 0.6F + 0.5F; - if (count == 0) - { - var23 = 1.0F; - var22 = 1.0F; - } - } - - GL11.glColor4d(var21 * var17, var22 * var17, var23 * var17, 1.0F); - + float[] color = tile.getRenderColor(rand); + GL11.glColor4f(color[0] * var17, color[1] * var17, color[2] * var17, color[3]); switch (tile.orientation) { From 7da3b7fc62d6bf1b3c37a10894942a87f0119776 Mon Sep 17 00:00:00 2001 From: StevenRS11 Date: Mon, 26 May 2014 22:23:36 -0400 Subject: [PATCH 3/3] Patched a door crash bug thanks LClouds --- .../mod_pocketDim/EventHookContainer.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main/java/StevenDimDoors/mod_pocketDim/EventHookContainer.java b/src/main/java/StevenDimDoors/mod_pocketDim/EventHookContainer.java index 9f7fd0c5..4e47d8fc 100644 --- a/src/main/java/StevenDimDoors/mod_pocketDim/EventHookContainer.java +++ b/src/main/java/StevenDimDoors/mod_pocketDim/EventHookContainer.java @@ -75,7 +75,6 @@ public class EventHookContainer public void onSoundEffectResult(PlayBackgroundMusicEvent event) { if (FMLClientHandler.instance().getClient().thePlayer.worldObj.provider.dimensionId == mod_pocketDim.properties.LimboDimensionID) - ; { this.playMusicForDim(FMLClientHandler.instance().getClient().thePlayer.worldObj); } @@ -93,11 +92,14 @@ public class EventHookContainer ItemStack stack = event.entityPlayer.inventory.getCurrentItem(); if (stack != null && stack.getItem() instanceof ItemDoor) { - if (mod_pocketDim.itemDimensionalDoor.tryToPlaceDoor(stack, event.entityPlayer, world, - event.x, event.y, event.z, event.face)) + if(BaseItemDoor.getDoorToPlace(stack.getItem())!=null) { - // Cancel the event so that we don't get two doors from vanilla doors - event.setCanceled(true); + if (mod_pocketDim.itemDimensionalDoor.tryToPlaceDoor(stack, event.entityPlayer, world, + event.x, event.y, event.z, event.face)) + { + // Cancel the event so that we don't get two doors from vanilla doors + event.setCanceled(true); + } } } }