aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core/client
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus/core/client')
-rw-r--r--src/Java/gtPlusPlus/core/client/renderer/RenderMiningExplosivesPrimed.java11
-rw-r--r--src/Java/gtPlusPlus/core/client/renderer/RenderPlasmaBolt.java165
2 files changed, 172 insertions, 4 deletions
diff --git a/src/Java/gtPlusPlus/core/client/renderer/RenderMiningExplosivesPrimed.java b/src/Java/gtPlusPlus/core/client/renderer/RenderMiningExplosivesPrimed.java
index 42071428a7..359229adaa 100644
--- a/src/Java/gtPlusPlus/core/client/renderer/RenderMiningExplosivesPrimed.java
+++ b/src/Java/gtPlusPlus/core/client/renderer/RenderMiningExplosivesPrimed.java
@@ -6,6 +6,7 @@ import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.block.ModBlocks;
+import gtPlusPlus.core.entity.EntityPrimedMiningExplosive;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.client.renderer.texture.TextureMap;
@@ -28,7 +29,7 @@ public class RenderMiningExplosivesPrimed extends Render {
* (Render<T extends Entity) and this method has signature public void func_76986_a(T entity, double d, double d1,
* double d2, float f, float f1). But JAD is pre 1.5 so doesn't do that.
*/
- public void doRender(final EntityTNTPrimed entity, final double p_76986_2_, final double p_76986_4_, final double p_76986_6_, final float p_76986_8_, final float p_76986_9_){
+ public void doRender(final EntityPrimedMiningExplosive entity, final double p_76986_2_, final double p_76986_4_, final double p_76986_6_, final float p_76986_8_, final float p_76986_9_){
Logger.INFO("Rendering Mining Explosion. 2");
GL11.glPushMatrix();
GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_);
@@ -78,7 +79,7 @@ public class RenderMiningExplosivesPrimed extends Render {
/**
* Returns the location of an entity's texture. Doesn't seem to be called unless you call Render.bindEntityTexture.
*/
- protected ResourceLocation getEntityTexture(final EntityTNTPrimed p_110775_1_){
+ protected ResourceLocation getEntityTexture(final EntityPrimedMiningExplosive p_110775_1_){
return TextureMap.locationBlocksTexture;
}
@@ -87,7 +88,8 @@ public class RenderMiningExplosivesPrimed extends Render {
*/
@Override
protected ResourceLocation getEntityTexture(final Entity p_110775_1_){
- return this.getEntityTexture((EntityTNTPrimed)p_110775_1_);
+ Logger.INFO("Rendering Mining Explosion. 4");
+ return this.getEntityTexture((EntityPrimedMiningExplosive)p_110775_1_);
}
/**
@@ -98,6 +100,7 @@ public class RenderMiningExplosivesPrimed extends Render {
*/
@Override
public void doRender(final Entity p_76986_1_, final double p_76986_2_, final double p_76986_4_, final double p_76986_6_, final float p_76986_8_, final float p_76986_9_){
- this.doRender((EntityTNTPrimed)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_);
+ Logger.INFO("Rendering Mining Explosion. 3");
+ this.doRender((EntityPrimedMiningExplosive)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_);
}
} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/core/client/renderer/RenderPlasmaBolt.java b/src/Java/gtPlusPlus/core/client/renderer/RenderPlasmaBolt.java
new file mode 100644
index 0000000000..673fdff733
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/client/renderer/RenderPlasmaBolt.java
@@ -0,0 +1,165 @@
+package gtPlusPlus.core.client.renderer;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import gtPlusPlus.api.objects.CSPRNG;
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.core.entity.EntityTeslaTowerLightning;
+
+import java.util.Random;
+import net.minecraft.client.renderer.Tessellator;
+import net.minecraft.client.renderer.entity.Render;
+import net.minecraft.entity.Entity;
+import net.minecraft.util.ResourceLocation;
+import org.lwjgl.opengl.GL11;
+
+@SideOnly(Side.CLIENT)
+public class RenderPlasmaBolt extends Render {
+
+ public RenderPlasmaBolt(){
+ Logger.INFO("[Render] Create custom lightning renderer.");
+ }
+
+ /**
+ * Actually renders the given argument. This is a synthetic bridge method,
+ * always casting down its argument and then handing it off to a worker
+ * function which does the actual work. In all probabilty, the class Render
+ * is generic (Render<T extends Entity) and this method has signature public
+ * void func_76986_a(T entity, double d, double d1, double d2, float f,
+ * float f1). But JAD is pre 1.5 so doesn't do that.
+ */
+ public void doRender(EntityTeslaTowerLightning p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_,
+ float p_76986_8_, float p_76986_9_) {
+ Logger.INFO("Render 1");
+ Tessellator tessellator = Tessellator.instance;
+ GL11.glDisable(GL11.GL_TEXTURE_2D);
+ GL11.glDisable(GL11.GL_LIGHTING);
+ GL11.glEnable(GL11.GL_BLEND);
+ GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);
+ double[] adouble = new double[8];
+ double[] adouble1 = new double[8];
+ double d3 = 0.0D;
+ double d4 = 0.0D;
+ Random random = CSPRNG.generate(new Random(p_76986_1_.boltVertex));
+
+ for (int i = 7; i >= 0; --i) {
+ adouble[i] = d3;
+ adouble1[i] = d4;
+ d3 += (double) (random.nextInt(11) - 5);
+ d4 += (double) (random.nextInt(11) - 5);
+ }
+
+ for (int k1 = 0; k1 < 4; ++k1) {
+ Random random1 = CSPRNG.generate(new Random(p_76986_1_.boltVertex));
+
+ for (int j = 0; j < 3; ++j) {
+ int k = 7;
+ int l = 0;
+
+ if (j > 0) {
+ k = 7 - j;
+ }
+
+ if (j > 0) {
+ l = k - 2;
+ }
+
+ double d5 = adouble[k] - d3;
+ double d6 = adouble1[k] - d4;
+
+ for (int i1 = k; i1 >= l; --i1) {
+ double d7 = d5;
+ double d8 = d6;
+
+ if (j == 0) {
+ d5 += (double) (random1.nextInt(11) - 5);
+ d6 += (double) (random1.nextInt(11) - 5);
+ }
+ else {
+ d5 += (double) (random1.nextInt(31) - 15);
+ d6 += (double) (random1.nextInt(31) - 15);
+ }
+
+ tessellator.startDrawing(5);
+ float f2 = 0.5F;
+ tessellator.setColorRGBA_F(0.9F * f2, 0.9F * f2, 1.0F * f2, 0.3F);
+ double d9 = 0.1D + (double) k1 * 0.2D;
+
+ if (j == 0) {
+ d9 *= (double) i1 * 0.1D + 1.0D;
+ }
+
+ double d10 = 0.1D + (double) k1 * 0.2D;
+
+ if (j == 0) {
+ d10 *= (double) (i1 - 1) * 0.1D + 1.0D;
+ }
+
+ for (int j1 = 0; j1 < 5; ++j1) {
+ double d11 = p_76986_2_ + 0.5D - d9;
+ double d12 = p_76986_6_ + 0.5D - d9;
+
+ if (j1 == 1 || j1 == 2) {
+ d11 += d9 * 2.0D;
+ }
+
+ if (j1 == 2 || j1 == 3) {
+ d12 += d9 * 2.0D;
+ }
+
+ double d13 = p_76986_2_ + 0.5D - d10;
+ double d14 = p_76986_6_ + 0.5D - d10;
+
+ if (j1 == 1 || j1 == 2) {
+ d13 += d10 * 2.0D;
+ }
+
+ if (j1 == 2 || j1 == 3) {
+ d14 += d10 * 2.0D;
+ }
+
+ tessellator.addVertex(d13 + d5, p_76986_4_ + (double) (i1 * 16), d14 + d6);
+ tessellator.addVertex(d11 + d7, p_76986_4_ + (double) ((i1 + 1) * 16), d12 + d8);
+ }
+
+ tessellator.draw();
+ }
+ }
+ }
+
+ GL11.glDisable(GL11.GL_BLEND);
+ GL11.glEnable(GL11.GL_LIGHTING);
+ GL11.glEnable(GL11.GL_TEXTURE_2D);
+ }
+
+ /**
+ * Returns the location of an entity's texture. Doesn't seem to be called
+ * unless you call Render.bindEntityTexture.
+ */
+ protected ResourceLocation getEntityTexture(EntityTeslaTowerLightning p_110775_1_) {
+ return null;
+ }
+
+ /**
+ * Returns the location of an entity's texture. Doesn't seem to be called
+ * unless you call Render.bindEntityTexture.
+ */
+ protected ResourceLocation getEntityTexture(Entity p_110775_1_) {
+ return this.getEntityTexture((EntityTeslaTowerLightning) p_110775_1_);
+ }
+
+ /**
+ * Actually renders the given argument. This is a synthetic bridge method,
+ * always casting down its argument and then handing it off to a worker
+ * function which does the actual work. In all probabilty, the class Render
+ * is generic (Render<T extends Entity) and this method has signature public
+ * void func_76986_a(T entity, double d, double d1, double d2, float f,
+ * float f1). But JAD is pre 1.5 so doesn't do that.
+ */
+ public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_,
+ float p_76986_9_) {
+ Logger.INFO("Render 2");
+ this.doRender((EntityTeslaTowerLightning) p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_,
+ p_76986_9_);
+ }
+} \ No newline at end of file