Resolved Merge Conflicts

Resolved merge conflicts between recent bug fixes in DungeonSchematic
and some minor additions to the code from another branch.
This commit is contained in:
SenseiKiwi
2014-01-04 03:36:37 -04:00
parent 7aeaa46a47
commit 7ebc4e6ead
26 changed files with 307 additions and 272 deletions

View File

@@ -586,6 +586,7 @@ public class PocketManager
//Any pocket dimension must be listed with PocketManager to have a dimension ID //Any pocket dimension must be listed with PocketManager to have a dimension ID
//assigned, so it's safe to assume that any unknown dimensions don't belong to us. //assigned, so it's safe to assume that any unknown dimensions don't belong to us.
//FIXME: What's the point of this condition? Most calls to this function will crash anyway! ~SenseiKiwi
if(PocketManager.dimensionData == null) if(PocketManager.dimensionData == null)
{ {
System.out.println("Something odd happend during shutdown"); System.out.println("Something odd happend during shutdown");

View File

@@ -14,16 +14,15 @@ import net.minecraft.block.Block;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntitySign;
import net.minecraft.world.World; import net.minecraft.world.World;
import StevenDimDoors.mod_pocketDim.DDProperties; import StevenDimDoors.mod_pocketDim.DDProperties;
import StevenDimDoors.mod_pocketDim.Point3D; import StevenDimDoors.mod_pocketDim.Point3D;
import StevenDimDoors.mod_pocketDim.mod_pocketDim;
import StevenDimDoors.mod_pocketDim.blocks.IDimDoor; import StevenDimDoors.mod_pocketDim.blocks.IDimDoor;
import StevenDimDoors.mod_pocketDim.core.DimLink; import StevenDimDoors.mod_pocketDim.core.DimLink;
import StevenDimDoors.mod_pocketDim.core.LinkTypes; 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.items.ItemDimensionalDoor;
import StevenDimDoors.mod_pocketDim.schematic.BlockRotator; import StevenDimDoors.mod_pocketDim.schematic.BlockRotator;
import StevenDimDoors.mod_pocketDim.schematic.CompoundFilter; import StevenDimDoors.mod_pocketDim.schematic.CompoundFilter;
import StevenDimDoors.mod_pocketDim.schematic.InvalidSchematicException; import StevenDimDoors.mod_pocketDim.schematic.InvalidSchematicException;
@@ -35,13 +34,14 @@ import StevenDimDoors.mod_pocketDim.util.Point4D;
public class DungeonSchematic extends Schematic { public class DungeonSchematic extends Schematic {
private static final short MAX_VANILLA_BLOCK_ID = 158; private static final short MAX_VANILLA_BLOCK_ID = 173;
private static final short STANDARD_FABRIC_OF_REALITY_ID = 1973; private static final short STANDARD_FABRIC_OF_REALITY_ID = 1973;
private static final short STANDARD_ETERNAL_FABRIC_ID = 220; private static final short STANDARD_ETERNAL_FABRIC_ID = 220;
private static final short STANDARD_WARP_DOOR_ID = 1975; private static final short STANDARD_WARP_DOOR_ID = 1975;
private static final short STANDARD_DIMENSIONAL_DOOR_ID = 1970; private static final short STANDARD_DIMENSIONAL_DOOR_ID = 1970;
private static final short MONOLITH_SPAWN_MARKER_ID = (short) Block.endPortalFrame.blockID; private static final short MONOLITH_SPAWN_MARKER_ID = (short) Block.endPortalFrame.blockID;
private static final short EXIT_DOOR_MARKER_ID = (short) Block.sandStone.blockID; private static final short EXIT_DOOR_MARKER_ID = (short) Block.sandStone.blockID;
private static final int NETHER_DIMENSION_ID = -1;
private int orientation; private int orientation;
private Point3D entranceDoorLocation; private Point3D entranceDoorLocation;
@@ -242,12 +242,12 @@ public class DungeonSchematic extends Schematic {
filler.apply(world, minCorner, maxCorner); filler.apply(world, minCorner, maxCorner);
//Set up entrance door rift //Set up entrance door rift
createEntranceReverseLink(dimension, pocketCenter, entryLink, world); createEntranceReverseLink(world, dimension, pocketCenter, entryLink);
//Set up link data for dimensional doors //Set up link data for dimensional doors
for (Point3D location : dimensionalDoorLocations) for (Point3D location : dimensionalDoorLocations)
{ {
createDimensionalDoorLink(dimension, location, entranceDoorLocation, turnAngle, pocketCenter,world); createDimensionalDoorLink(world, dimension, location, entranceDoorLocation, turnAngle, pocketCenter);
} }
//Set up link data for exit door //Set up link data for exit door
@@ -262,6 +262,16 @@ public class DungeonSchematic extends Schematic {
{ {
spawnMonolith(world, location, entranceDoorLocation, turnAngle, pocketCenter, canSpawn); spawnMonolith(world, location, entranceDoorLocation, turnAngle, pocketCenter, canSpawn);
} }
// If this is a Nether dungeon, search for a sign near the entry door and write the dimension's depth.
// Checking if this is specifically a Nether pack dungeon is a bit tricky, so I'm going to use this
// approach to check - if the dungeon is rooted in the Nether, then it SHOULD be a Nether dungeon.
// This isn't necessarily true if someone uses dd-rift to spawn a dungeon, but it should work under
// normal use of the mod.
if (dimension.root().id() == NETHER_DIMENSION_ID)
{
writeDepthSign(world, pocketCenter, dimension.depth());
}
} }
private static void transformCorners(Point3D schematicEntrance, Point3D pocketCenter, int turnAngle, Point3D minCorner, Point3D maxCorner) private static void transformCorners(Point3D schematicEntrance, Point3D pocketCenter, int turnAngle, Point3D minCorner, Point3D maxCorner)
@@ -289,7 +299,7 @@ public class DungeonSchematic extends Schematic {
} }
} }
private static void createEntranceReverseLink(NewDimData dimension, Point3D pocketCenter, DimLink entryLink,World world) private static void createEntranceReverseLink(World world, NewDimData dimension, Point3D pocketCenter, DimLink entryLink)
{ {
int orientation = world.getBlockMetadata(pocketCenter.getX(), pocketCenter.getY() - 1, pocketCenter.getZ()); int orientation = world.getBlockMetadata(pocketCenter.getX(), pocketCenter.getY() - 1, pocketCenter.getZ());
DimLink reverseLink = dimension.createLink(pocketCenter.getX(), pocketCenter.getY(), pocketCenter.getZ(), LinkTypes.REVERSE, orientation); DimLink reverseLink = dimension.createLink(pocketCenter.getX(), pocketCenter.getY(), pocketCenter.getZ(), LinkTypes.REVERSE, orientation);
@@ -297,7 +307,6 @@ public class DungeonSchematic extends Schematic {
NewDimData prevDim = PocketManager.getDimensionData(destination.getDimension()); NewDimData prevDim = PocketManager.getDimensionData(destination.getDimension());
prevDim.setDestination(reverseLink, destination.getX(), destination.getY(), destination.getZ()); prevDim.setDestination(reverseLink, destination.getX(), destination.getY(), destination.getZ());
initDoorTileEntity(world, pocketCenter); initDoorTileEntity(world, pocketCenter);
} }
private static void createExitDoorLink(World world, NewDimData dimension, Point3D point, Point3D entrance, int rotation, Point3D pocketCenter) private static void createExitDoorLink(World world, NewDimData dimension, Point3D point, Point3D entrance, int rotation, Point3D pocketCenter)
@@ -318,10 +327,9 @@ public class DungeonSchematic extends Schematic {
setBlockDirectly(world, x, y + 1, z, blockID, metadata); setBlockDirectly(world, x, y + 1, z, blockID, metadata);
} }
initDoorTileEntity(world, location); initDoorTileEntity(world, location);
} }
private static void createDimensionalDoorLink(NewDimData dimension, Point3D point, Point3D entrance, int rotation, Point3D pocketCenter,World world) private static void createDimensionalDoorLink(World world, NewDimData dimension, Point3D point, Point3D entrance, int rotation, Point3D pocketCenter)
{ {
//Transform the door's location to the pocket coordinate system //Transform the door's location to the pocket coordinate system
Point3D location = point.clone(); Point3D location = point.clone();
@@ -330,8 +338,6 @@ public class DungeonSchematic extends Schematic {
dimension.createLink(location.getX(), location.getY(), location.getZ(), LinkTypes.DUNGEON, orientation); dimension.createLink(location.getX(), location.getY(), location.getZ(), LinkTypes.DUNGEON, orientation);
initDoorTileEntity(world, location); initDoorTileEntity(world, location);
} }
private static void spawnMonolith(World world, Point3D point, Point3D entrance, int rotation, Point3D pocketCenter, boolean canSpawn) private static void spawnMonolith(World world, Point3D point, Point3D entrance, int rotation, Point3D pocketCenter, boolean canSpawn)
@@ -349,6 +355,7 @@ public class DungeonSchematic extends Schematic {
world.spawnEntityInWorld(mob); world.spawnEntityInWorld(mob);
} }
} }
private static void initDoorTileEntity(World world, Point3D point) private static void initDoorTileEntity(World world, Point3D point)
{ {
Block door = Block.blocksList[world.getBlockId(point.getX(), point.getY(), point.getZ())]; Block door = Block.blocksList[world.getBlockId(point.getX(), point.getY(), point.getZ())];
@@ -358,12 +365,39 @@ public class DungeonSchematic extends Schematic {
{ {
((IDimDoor) door).initDoorTE(world, point.getX(), point.getY(), point.getZ()); ((IDimDoor) door).initDoorTE(world, point.getX(), point.getY(), point.getZ());
((IDimDoor) door).initDoorTE(world, point.getX(), point.getY() - 1, point.getZ()); ((IDimDoor) door).initDoorTE(world, point.getX(), point.getY() - 1, point.getZ());
} }
else else
{ {
throw new IllegalArgumentException("Tried to init a dim door TE on a block that isnt a Dim Door!!"); throw new IllegalArgumentException("Tried to init a dim door TE on a block that isnt a Dim Door!!");
} }
}
private static void writeDepthSign(World world, Point3D pocketCenter, int depth)
{
final int SEARCH_RANGE = 5;
int x, y, z, block;
int dx, dy, dz;
for (dy = SEARCH_RANGE; dy >= -SEARCH_RANGE; dy--)
{
for (dz = -SEARCH_RANGE; dz <= SEARCH_RANGE; dz++)
{
for (dx = -SEARCH_RANGE; dx <= SEARCH_RANGE; dx++)
{
x = pocketCenter.getX() + dx;
y = pocketCenter.getY() + dy;
z = pocketCenter.getZ() + dz;
block = world.getBlockId(x, y, z);
if (block == Block.signWall.blockID || block == Block.signPost.blockID)
{
TileEntitySign signEntity = new TileEntitySign();
signEntity.signText[1] = "Level " + depth;
world.setBlockTileEntity(x, y, z, signEntity);
return;
}
}
}
}
} }
} }

View File

@@ -50,6 +50,8 @@ public class DungeonHelper
private static final String DUNGEON_CREATION_GUIDE_SOURCE_PATH = "/mods/DimDoors/text/How_to_add_dungeons.txt"; private static final String DUNGEON_CREATION_GUIDE_SOURCE_PATH = "/mods/DimDoors/text/How_to_add_dungeons.txt";
private static final String RUINS_PACK_PATH = "/schematics/ruins"; private static final String RUINS_PACK_PATH = "/schematics/ruins";
private static final String BUNDLED_RUINS_LIST_PATH = "/schematics/ruins.txt"; private static final String BUNDLED_RUINS_LIST_PATH = "/schematics/ruins.txt";
private static final String NETHER_PACK_PATH = "/schematics/nether";
private static final String BUNDLED_NETHER_LIST_PATH = "/schematics/nether.txt";
private static final String STANDARD_CONFIG_FILE_NAME = "rules.txt"; private static final String STANDARD_CONFIG_FILE_NAME = "rules.txt";
private static final int NETHER_DIMENSION_ID = -1; private static final int NETHER_DIMENSION_ID = -1;
@@ -72,6 +74,7 @@ public class DungeonHelper
private ArrayList<DungeonData> registeredDungeons = new ArrayList<DungeonData>(); private ArrayList<DungeonData> registeredDungeons = new ArrayList<DungeonData>();
private DungeonPack RuinsPack; private DungeonPack RuinsPack;
private DungeonPack NetherPack;
private HashMap<String, DungeonPack> dungeonPackMapping = new HashMap<String, DungeonPack>(); private HashMap<String, DungeonPack> dungeonPackMapping = new HashMap<String, DungeonPack>();
private ArrayList<DungeonPack> dungeonPackList = new ArrayList<DungeonPack>(); private ArrayList<DungeonPack> dungeonPackList = new ArrayList<DungeonPack>();
@@ -246,8 +249,7 @@ public class DungeonHelper
{ {
if (data.id() == NETHER_DIMENSION_ID) if (data.id() == NETHER_DIMENSION_ID)
{ {
//TODO: Change this to the nether-side pack later ^_^ pack = NetherPack;
pack = RuinsPack;
} }
else else
{ {
@@ -434,6 +436,9 @@ public class DungeonHelper
registerBundledPack(BUNDLED_RUINS_LIST_PATH, RUINS_PACK_PATH, "Ruins", reader); registerBundledPack(BUNDLED_RUINS_LIST_PATH, RUINS_PACK_PATH, "Ruins", reader);
RuinsPack = getDungeonPack("Ruins"); RuinsPack = getDungeonPack("Ruins");
registerBundledPack(BUNDLED_NETHER_LIST_PATH, NETHER_PACK_PATH, "Nether", reader);
NetherPack = getDungeonPack("Nether");
System.out.println("Finished registering bundled dungeon packs"); System.out.println("Finished registering bundled dungeon packs");
} }
@@ -497,7 +502,7 @@ public class DungeonHelper
public DungeonData selectDungeon(NewDimData dimension, Random random) public DungeonData selectDungeon(NewDimData dimension, Random random)
{ {
DungeonPack pack = getDimDungeonPack(dimension); DungeonPack pack = getDimDungeonPack(dimension.parent());
DungeonData selection; DungeonData selection;
DungeonPackConfig config; DungeonPackConfig config;
DungeonPack selectedPack; DungeonPack selectedPack;

View File

@@ -40,8 +40,6 @@ public class TileEntityDimDoor extends TileEntity
public void readFromNBT(NBTTagCompound nbt) public void readFromNBT(NBTTagCompound nbt)
{ {
super.readFromNBT(nbt); super.readFromNBT(nbt);
@SuppressWarnings("unused") // ???
int i = nbt.getInteger(("Size"));
try try
{ {
@@ -60,8 +58,6 @@ public class TileEntityDimDoor extends TileEntity
@Override @Override
public void writeToNBT(NBTTagCompound nbt) public void writeToNBT(NBTTagCompound nbt)
{ {
@SuppressWarnings("unused") // ?????
int i = 0;
super.writeToNBT(nbt); super.writeToNBT(nbt);
nbt.setBoolean("openOrClosed", this.openOrClosed); nbt.setBoolean("openOrClosed", this.openOrClosed);

View File

@@ -1,19 +1,14 @@
package StevenDimDoors.mod_pocketDim.tileentities; package StevenDimDoors.mod_pocketDim.tileentities;
import java.awt.List;
import StevenDimDoors.mod_pocketDim.IChunkLoader;
import StevenDimDoors.mod_pocketDim.mod_pocketDim;
import StevenDimDoors.mod_pocketDim.core.NewDimData;
import StevenDimDoors.mod_pocketDim.core.PocketManager;
import StevenDimDoors.mod_pocketDim.util.Point4D;
import StevenDimDoors.mod_pocketDim.world.PocketBuilder;
import net.minecraft.block.Block;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.ChunkCoordIntPair;
import net.minecraftforge.common.ForgeChunkManager; import net.minecraftforge.common.ForgeChunkManager;
import net.minecraftforge.common.ForgeChunkManager.Ticket; import net.minecraftforge.common.ForgeChunkManager.Ticket;
import net.minecraftforge.common.ForgeChunkManager.Type; import net.minecraftforge.common.ForgeChunkManager.Type;
import StevenDimDoors.mod_pocketDim.IChunkLoader;
import StevenDimDoors.mod_pocketDim.mod_pocketDim;
import StevenDimDoors.mod_pocketDim.core.PocketManager;
import StevenDimDoors.mod_pocketDim.util.Point4D;
import StevenDimDoors.mod_pocketDim.world.PocketBuilder;
public class TileEntityDimDoorGold extends TileEntityDimDoor implements IChunkLoader public class TileEntityDimDoorGold extends TileEntityDimDoor implements IChunkLoader
{ {
@@ -85,9 +80,6 @@ public class TileEntityDimDoorGold extends TileEntityDimDoor implements IChunkLo
ForgeChunkManager.forceChunk(chunkTicket, new ChunkCoordIntPair((origin.getX()+xOffset >> 4)+chunkX, (origin.getZ()+zOffset >> 4)+chunkZ)); ForgeChunkManager.forceChunk(chunkTicket, new ChunkCoordIntPair((origin.getX()+xOffset >> 4)+chunkX, (origin.getZ()+zOffset >> 4)+chunkZ));
} }
} }
} }
@Override @Override
@@ -96,37 +88,4 @@ public class TileEntityDimDoorGold extends TileEntityDimDoor implements IChunkLo
ForgeChunkManager.releaseTicket(chunkTicket); ForgeChunkManager.releaseTicket(chunkTicket);
super.invalidate(); super.invalidate();
} }
@Override
public void readFromNBT(NBTTagCompound nbt)
{ // this and write both call user, and super saves/reads all the same data. why override at all?
super.readFromNBT(nbt);
@SuppressWarnings("unused") // ???
int i = nbt.getInteger(("Size"));
try
{
this.openOrClosed = nbt.getBoolean("openOrClosed");
this.orientation = nbt.getInteger("orientation");
this.hasExit = nbt.getBoolean("hasExit");
this.isDungeonChainLink = nbt.getBoolean("isDungeonChainLink");
}
catch (Exception e) // ???
{
}
}
@Override
public void writeToNBT(NBTTagCompound nbt)
{
@SuppressWarnings("unused") // ?????
int i = 0;
super.writeToNBT(nbt);
nbt.setBoolean("openOrClosed", this.openOrClosed);
nbt.setBoolean("hasExit", this.hasExit);
nbt.setInteger("orientation", this.orientation);
nbt.setBoolean("isDungeonChainLink", isDungeonChainLink);
}
} }

View File

@@ -118,7 +118,6 @@ public class PocketBuilder
private static boolean buildDungeonPocket(DungeonData dungeon, NewDimData dimension, DimLink link, DungeonSchematic schematic,World world, DDProperties properties) private static boolean buildDungeonPocket(DungeonData dungeon, NewDimData dimension, DimLink link, DungeonSchematic schematic,World world, DDProperties properties)
{ {
//Calculate the destination point //Calculate the destination point
DungeonPackConfig packConfig = dungeon.dungeonType().Owner != null ? dungeon.dungeonType().Owner.getConfig() : null; DungeonPackConfig packConfig = dungeon.dungeonType().Owner != null ? dungeon.dungeonType().Owner.getConfig() : null;
Point4D source = link.source(); Point4D source = link.source();
@@ -142,9 +141,8 @@ public class PocketBuilder
//Finish up destination initialization //Finish up destination initialization
dimension.initializeDungeon(destination.getX(), destination.getY(), destination.getZ(), orientation, link, dungeon); dimension.initializeDungeon(destination.getX(), destination.getY(), destination.getZ(), orientation, link, dungeon);
dimension.setFilled(true); dimension.setFilled(true);
return true; return true;
} }
public static boolean generateSelectedDungeonPocket(DimLink link, DDProperties properties,DungeonData data) public static boolean generateSelectedDungeonPocket(DimLink link, DDProperties properties,DungeonData data)
@@ -163,8 +161,6 @@ public class PocketBuilder
throw new IllegalArgumentException("link cannot have a destination assigned already."); throw new IllegalArgumentException("link cannot have a destination assigned already.");
} }
//Register a new dimension //Register a new dimension
NewDimData parent = PocketManager.getDimensionData(link.source().getDimension()); NewDimData parent = PocketManager.getDimensionData(link.source().getDimension());
NewDimData dimension = PocketManager.registerPocket(parent, true); NewDimData dimension = PocketManager.registerPocket(parent, true);
@@ -472,7 +468,6 @@ public class PocketBuilder
Point3D door = new Point3D(x, y, z); Point3D door = new Point3D(x, y, z);
BlockRotator.transformPoint(center, door, orientation - BlockRotator.EAST_DOOR_METADATA, door); BlockRotator.transformPoint(center, door, orientation - BlockRotator.EAST_DOOR_METADATA, door);
//Build the outer layer of Eternal Fabric //Build the outer layer of Eternal Fabric
buildBox(world, center.getX(), center.getY(), center.getZ(), (size / 2), properties.PermaFabricBlockID, false, 0); buildBox(world, center.getX(), center.getY(), center.getZ(), (size / 2), properties.PermaFabricBlockID, false, 0);
@@ -483,7 +478,6 @@ public class PocketBuilder
layer < (wallThickness - 1) && properties.TNFREAKINGT_Enabled, properties.NonTntWeight); layer < (wallThickness - 1) && properties.TNFREAKINGT_Enabled, properties.NonTntWeight);
} }
//MazeBuilder.generate(world, x, y, z, random); //MazeBuilder.generate(world, x, y, z, random);
//Build the door //Build the door

View File

@@ -4,7 +4,6 @@ import java.nio.FloatBuffer;
import java.util.Random; import java.util.Random;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.ActiveRenderInfo;
import net.minecraft.client.renderer.GLAllocation; import net.minecraft.client.renderer.GLAllocation;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
@@ -14,6 +13,9 @@ import org.lwjgl.opengl.GL11;
import StevenDimDoors.mod_pocketDim.DDProperties; import StevenDimDoors.mod_pocketDim.DDProperties;
import StevenDimDoors.mod_pocketDim.mod_pocketDim; import StevenDimDoors.mod_pocketDim.mod_pocketDim;
import StevenDimDoors.mod_pocketDim.core.DimLink;
import StevenDimDoors.mod_pocketDim.core.NewDimData;
import StevenDimDoors.mod_pocketDim.core.PocketManager;
import StevenDimDoors.mod_pocketDim.tileentities.TileEntityDimDoor; import StevenDimDoors.mod_pocketDim.tileentities.TileEntityDimDoor;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
@@ -21,23 +23,24 @@ import cpw.mods.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class RenderDimDoor extends TileEntitySpecialRenderer public class RenderDimDoor extends TileEntitySpecialRenderer
{ {
FloatBuffer field_76908_a = GLAllocation.createDirectFloatBuffer(16); private FloatBuffer buffer = GLAllocation.createDirectFloatBuffer(16);
private ResourceLocation riftPath= new ResourceLocation(mod_pocketDim.modid + ":textures/other/RIFT.png"); private ResourceLocation riftPath= new ResourceLocation(mod_pocketDim.modid + ":textures/other/RIFT.png");
private ResourceLocation warpPath= new ResourceLocation(mod_pocketDim.modid + ":textures/other/WARP.png"); private ResourceLocation warpPath= new ResourceLocation(mod_pocketDim.modid + ":textures/other/WARP.png");
private static final int NETHER_DIMENSION_ID = -1;
private static DDProperties properties = null;
public RenderDimDoor() public RenderDimDoor()
{ {
if (properties == null) if (properties == null)
properties = DDProperties.instance(); properties = DDProperties.instance();
} }
private static DDProperties properties = null;
/** /**
* Renders the dimdoor. * Renders the dimdoor.
*/ */
public void renderDimDoorTileEntity(TileEntityDimDoor tile, double x, public void renderDimDoorTileEntity(TileEntityDimDoor tile, double x,
double y, double z, float par8) double y, double z)
{ {
try try
{ {
@@ -108,7 +111,6 @@ public class RenderDimDoor extends TileEntitySpecialRenderer
GL11.glTranslatef(0, GL11.glTranslatef(0,
Minecraft.getSystemTime() % 200000L / 200000.0F, Minecraft.getSystemTime() % 200000L / 200000.0F,
0.0F); 0.0F);
GL11.glTranslatef(0, 0, GL11.glTranslatef(0, 0,
Minecraft.getSystemTime() % 200000L / 200000.0F); Minecraft.getSystemTime() % 200000L / 200000.0F);
@@ -187,16 +189,31 @@ public class RenderDimDoor extends TileEntitySpecialRenderer
GL11.glBegin(GL11.GL_QUADS); GL11.glBegin(GL11.GL_QUADS);
float var21 = rand.nextFloat() * 0.5F + 0.1F; // Set the portal's color depending on whether it's in the Nether
float var22 = rand.nextFloat() * 0.4F + 0.4F; float var21, var22, var23;
float var23 = rand.nextFloat() * 0.6F + 0.5F; 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) if (count == 0)
{ {
var23 = 1.0F; var23 = 1.0F;
var22 = 1.0F; var22 = 1.0F;
// yConverted = 1.0F;
} }
}
GL11.glColor4d(var21 * var17, var22 * var17, var23 * var17, 1.0F); GL11.glColor4d(var21 * var17, var22 * var17, var23 * var17, 1.0F);
if (tile.openOrClosed) if (tile.openOrClosed)
{ {
@@ -215,9 +232,8 @@ public class RenderDimDoor extends TileEntitySpecialRenderer
GL11.glVertex3d(x + 1, y + 1, z + .01); GL11.glVertex3d(x + 1, y + 1, z + .01);
GL11.glVertex3d(x + 1, y - 1, z + .01); GL11.glVertex3d(x + 1, y - 1, z + .01);
GL11.glVertex3d(x, y - 1, z + .01); GL11.glVertex3d(x, y - 1, z + .01);
break; break;
case 2: // case 2:
GL11.glVertex3d(x + .99, y + 1, z); GL11.glVertex3d(x + .99, y + 1, z);
GL11.glVertex3d(x + .99, y + 1, z + 1.0D); GL11.glVertex3d(x + .99, y + 1, z + 1.0D);
GL11.glVertex3d(x + .99, y - 1, z + 1.0D); GL11.glVertex3d(x + .99, y - 1, z + 1.0D);
@@ -229,9 +245,7 @@ public class RenderDimDoor extends TileEntitySpecialRenderer
GL11.glVertex3d(x + 1, y + 1, z + .99); GL11.glVertex3d(x + 1, y + 1, z + .99);
GL11.glVertex3d(x, y + 1, z + .99); GL11.glVertex3d(x, y + 1, z + .99);
break; break;
case 4:// case 4:
// GL11.glTranslatef();
GL11.glVertex3d(x + .15F, y - 1, z); GL11.glVertex3d(x + .15F, y - 1, z);
GL11.glVertex3d(x + .15, y - 1, z + 1.0D); GL11.glVertex3d(x + .15, y - 1, z + 1.0D);
GL11.glVertex3d(x + .15, y + 1, z + 1.0D); GL11.glVertex3d(x + .15, y + 1, z + 1.0D);
@@ -242,9 +256,8 @@ public class RenderDimDoor extends TileEntitySpecialRenderer
GL11.glVertex3d(x + 1, y + 1, z + .15); GL11.glVertex3d(x + 1, y + 1, z + .15);
GL11.glVertex3d(x + 1, y - 1, z + .15); GL11.glVertex3d(x + 1, y - 1, z + .15);
GL11.glVertex3d(x, y - 1, z + .15); GL11.glVertex3d(x, y - 1, z + .15);
break; break;
case 6: // case 6:
GL11.glVertex3d(x + .85, y + 1, z); GL11.glVertex3d(x + .85, y + 1, z);
GL11.glVertex3d(x + .85, y + 1, z + 1.0D); GL11.glVertex3d(x + .85, y + 1, z + 1.0D);
GL11.glVertex3d(x + .85, y - 1, z + 1.0D); GL11.glVertex3d(x + .85, y - 1, z + 1.0D);
@@ -256,8 +269,6 @@ public class RenderDimDoor extends TileEntitySpecialRenderer
GL11.glVertex3d(x + 1, y + 1, z + .85); GL11.glVertex3d(x + 1, y + 1, z + .85);
GL11.glVertex3d(x, y + 1, z + .85); GL11.glVertex3d(x, y + 1, z + .85);
break; break;
default:
break;
} }
} }
@@ -275,22 +286,20 @@ public class RenderDimDoor extends TileEntitySpecialRenderer
GL11.glEnable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_LIGHTING);
} }
private FloatBuffer getFloatBuffer(float par1, float par2, float par3, private FloatBuffer getFloatBuffer(float par1, float par2, float par3, float par4)
float par4)
{ {
this.field_76908_a.clear(); buffer.clear();
this.field_76908_a.put(par1).put(par2).put(par3).put(par4); buffer.put(par1).put(par2).put(par3).put(par4);
this.field_76908_a.flip(); buffer.flip();
return this.field_76908_a; return buffer;
} }
public void renderTileEntityAt(TileEntity par1TileEntity, double par2, @Override
double par4, double par6, float par8) public void renderTileEntityAt(TileEntity par1TileEntity, double par2, double par4, double par6, float par8)
{ {
if (properties.DoorRenderingEnabled) if (properties.DoorRenderingEnabled)
{ {
this.renderDimDoorTileEntity((TileEntityDimDoor) par1TileEntity, renderDimDoorTileEntity((TileEntityDimDoor) par1TileEntity, par2, par4, par6);
par2, par4, par6, par8);
} }
} }
} }

View File

@@ -0,0 +1,16 @@
/schematics/nether/ComplexHall_SK-CourtyardAmbush_Open_100.schematic
/schematics/nether/ComplexHall_SK-Intersection_Open_100.schematic
/schematics/nether/ComplexHall_SK-SoulWastes_Open_100.schematic
/schematics/nether/ComplexHall_SK-Starfall_Open_100.schematic
/schematics/nether/ComplexHall_SK-TheCauldron_Open_100.schematic
/schematics/nether/Maze_SK-BrimstoneMines_Open_80.schematic
/schematics/nether/Maze_SK-QuartzfoldCave_Open_40.schematic
/schematics/nether/Maze_SK-Tangle_Open_80.schematic
/schematics/nether/SimpleHall_SK-AnvilValley_Open_100.schematic
/schematics/nether/SimpleHall_SK-Arena_Open_100.schematic
/schematics/nether/SimpleHall_SK-DarkPathLeft_Open_50.schematic
/schematics/nether/SimpleHall_SK-DarkPathRight_Open_50.schematic
/schematics/nether/SimpleHall_SK-DiamondRoom_Open_100.schematic
/schematics/nether/SimpleHall_SK-LongBridge_Open_100.schematic
/schematics/nether/SimpleHall_SK-SpiralStairsDown_Open_100.schematic
/schematics/nether/SimpleHall_SK-TheFurnace_Open_100.schematic

View File

@@ -0,0 +1,21 @@
Version 1
Types:
SimpleHall
ComplexHall
Maze
Settings:
AllowDuplicatesInChain = false
AllowPackChangeOut = false
DistortDoorCoordinates = false
## Prevent this pack from being selected for transitioning in once we've transitioned out
AllowPackChangeIn = false
Rules:
Maze ? ? ? ? ? ? ? ? ? -> Maze
? -> SimpleHall ComplexHall
-> Maze