rift render growth and removal

This commit is contained in:
StevenRS11
2014-08-21 18:42:24 -05:00
parent 910f991734
commit 7b77b268bf
2 changed files with 26 additions and 30 deletions

View File

@@ -48,17 +48,15 @@ public class TileEntityRift extends DDTileEntityBase
public Point4D nearestRiftLocation = null; public Point4D nearestRiftLocation = null;
public int spawnedEndermenID = 0; public int spawnedEndermenID = 0;
public int riftRotation; public int riftRotation = random.nextInt(360);
public int renderKey; public int renderKey = random.nextInt(LSystem.curves.size());
public int growth; public float growth = 0;
public TileEntityRift() public TileEntityRift()
{ {
// Vary the update times of rifts to prevent all the rifts in a cluster // Vary the update times of rifts to prevent all the rifts in a cluster
// from updating at the same time. // from updating at the same time.
updateTimer = random.nextInt(UPDATE_PERIOD); updateTimer = random.nextInt(UPDATE_PERIOD);
this.riftRotation = random.nextInt(360);
this.renderKey = random.nextInt(LSystem.curves.size());
} }
@@ -103,7 +101,7 @@ public class TileEntityRift extends DDTileEntityBase
updateNearestRift(); updateNearestRift();
spread(mod_pocketDim.properties); spread(mod_pocketDim.properties);
} }
growth++; growth += 1F/(growth+1);
updateTimer++; updateTimer++;
} }
@@ -151,7 +149,7 @@ public class TileEntityRift extends DDTileEntityBase
private void closeRift() private void closeRift()
{ {
NewDimData dimension = PocketManager.createDimensionData(worldObj); NewDimData dimension = PocketManager.createDimensionData(worldObj);
if (closeTimer == CLOSING_PERIOD / 2) if (growth < CLOSING_PERIOD / 2)
{ {
for (DimLink riftLink : dimension.findRiftsInRange(worldObj, 6, xCoord, yCoord, zCoord)) for (DimLink riftLink : dimension.findRiftsInRange(worldObj, 6, xCoord, yCoord, zCoord))
{ {
@@ -164,7 +162,7 @@ public class TileEntityRift extends DDTileEntityBase
} }
} }
} }
if (closeTimer >= CLOSING_PERIOD && !worldObj.isRemote) if (growth == 0 && !worldObj.isRemote)
{ {
DimLink link = PocketManager.getLink(this.xCoord, this.yCoord, this.zCoord, worldObj); DimLink link = PocketManager.getLink(this.xCoord, this.yCoord, this.zCoord, worldObj);
if (link != null) if (link != null)
@@ -174,7 +172,8 @@ public class TileEntityRift extends DDTileEntityBase
worldObj.setBlockToAir(xCoord, yCoord, zCoord); worldObj.setBlockToAir(xCoord, yCoord, zCoord);
worldObj.playSound(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "mods.DimDoors.sfx.riftClose", 0.7f, 1, false); worldObj.playSound(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "mods.DimDoors.sfx.riftClose", 0.7f, 1, false);
} }
closeTimer++;
growth --;
} }
public boolean updateNearestRift() public boolean updateNearestRift()
@@ -265,7 +264,7 @@ public class TileEntityRift extends DDTileEntityBase
this.spawnedEndermenID = nbt.getInteger("spawnedEndermenID"); this.spawnedEndermenID = nbt.getInteger("spawnedEndermenID");
this.riftRotation = nbt.getInteger("riftRotation"); this.riftRotation = nbt.getInteger("riftRotation");
this.renderKey = nbt.getInteger("renderKey"); this.renderKey = nbt.getInteger("renderKey");
this.growth = nbt.getInteger("growth"); this.growth = nbt.getFloat("growth");
} }
@@ -281,7 +280,7 @@ public class TileEntityRift extends DDTileEntityBase
nbt.setInteger("spawnedEndermenID", this.spawnedEndermenID); nbt.setInteger("spawnedEndermenID", this.spawnedEndermenID);
nbt.setInteger("renderKey", this.renderKey); nbt.setInteger("renderKey", this.renderKey);
nbt.setInteger("riftRotation", this.riftRotation); nbt.setInteger("riftRotation", this.riftRotation);
nbt.setInteger("growth", this.growth); nbt.setFloat("growth", this.growth);
} }

View File

@@ -35,7 +35,7 @@ public class RenderRift extends TileEntitySpecialRenderer
*/ */
TileEntityRift rift = (TileEntityRift) te; TileEntityRift rift = (TileEntityRift) te;
// draws the verticies corresponding to the passed it // draws the verticies corresponding to the passed it
this.drawCrack(rift.riftRotation, rift.getCurve(), Math.log(2+rift.growth)/5D, xWorld, yWorld, zWorld); this.drawCrack(rift.riftRotation, rift.getCurve(), rift.growth/15, xWorld, yWorld, zWorld);
GL11.glDisable(GL_BLEND); GL11.glDisable(GL_BLEND);
// reenable all the stuff we disabled // reenable all the stuff we disabled
@@ -88,7 +88,6 @@ public class RenderRift extends TileEntitySpecialRenderer
jitters[i] = Math.sin((1F + i / 10F) * time) * Math.cos(1F - (i / 10F) * time) / motionMagnitude; jitters[i] = Math.sin((1F + i / 10F) * time) * Math.cos(1F - (i / 10F) * time) / motionMagnitude;
jitters[i + 1] = Math.cos((1F + i / 10F) * time) * Math.sin(1F - (i / 10F) * time) / motionMagnitude; jitters[i + 1] = Math.cos((1F + i / 10F) * time) * Math.sin(1F - (i / 10F) * time) / motionMagnitude;
} }
// determines which jitter waveform we select. Modulo so the same point // determines which jitter waveform we select. Modulo so the same point
@@ -110,10 +109,8 @@ public class RenderRift extends TileEntitySpecialRenderer
double x = (((p.x + jitters[(jIndex + 1) % jCount]) - offsetX) * Math.cos(Math.toRadians(riftRotation)) - (jitters[(jIndex + 2) % jCount]) double x = (((p.x + jitters[(jIndex + 1) % jCount]) - offsetX) * Math.cos(Math.toRadians(riftRotation)) - (jitters[(jIndex + 2) % jCount])
* Math.sin(Math.toRadians(riftRotation))); * Math.sin(Math.toRadians(riftRotation)));
double y = p.y + (jitters[jIndex % jCount]) - offsetY; double y = p.y + (jitters[jIndex % jCount]) - offsetY;
double z = (((p.x + jitters[(jIndex + 2) % jCount]) - offsetX) * Math.sin(Math.toRadians(riftRotation)) + (jitters[(jIndex + 2) % jCount]) * Math double z = (((p.x + jitters[(jIndex + 2) % jCount]) - offsetX) * Math.sin(Math.toRadians(riftRotation)) + (jitters[(jIndex + 2) % jCount])
.cos(Math.toRadians(riftRotation))); * Math.cos(Math.toRadians(riftRotation)));
// apply scaling // apply scaling
x *= scale; x *= scale;
@@ -136,8 +133,6 @@ public class RenderRift extends TileEntitySpecialRenderer
glBlendFunc(GL_ONE_MINUS_DST_COLOR, GL_ZERO); glBlendFunc(GL_ONE_MINUS_DST_COLOR, GL_ZERO);
// draw the next set of triangles to form a background and change their // draw the next set of triangles to form a background and change their
// color slightly over time // color slightly over time
GL11.glBegin(GL11.GL_TRIANGLES); GL11.glBegin(GL11.GL_TRIANGLES);
@@ -159,7 +154,9 @@ public class RenderRift extends TileEntitySpecialRenderer
if (jIndex % 3 == 0) if (jIndex % 3 == 0)
{ {
//GL11.glColor4d(1-jitters[(jIndex + 5) % jCount] / 11,1- jitters[(jIndex + 4) % jCount] / 8, 1-jitters[(jIndex+3) % jCount] / 8, 1); // GL11.glColor4d(1-jitters[(jIndex + 5) % jCount] / 11,1-
// jitters[(jIndex + 4) % jCount] / 8, 1-jitters[(jIndex+3) %
// jCount] / 8, 1);
} }
GL11.glVertex3d(xWorld + x, yWorld + y, zWorld + z); GL11.glVertex3d(xWorld + x, yWorld + y, zWorld + z);
} }