mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
121 lines
4.1 KiB
Java
121 lines
4.1 KiB
Java
package com.hbm.render.entity;
|
|
|
|
import org.lwjgl.opengl.GL11;
|
|
|
|
import com.hbm.entity.effect.EntityCloudFleijaRainbow;
|
|
import com.hbm.entity.logic.EntityDeathBlast;
|
|
import com.hbm.lib.RefStrings;
|
|
|
|
import net.minecraft.client.renderer.OpenGlHelper;
|
|
import net.minecraft.client.renderer.RenderHelper;
|
|
import net.minecraft.client.renderer.Tessellator;
|
|
import net.minecraft.client.renderer.entity.Render;
|
|
import net.minecraft.entity.Entity;
|
|
import net.minecraft.util.ResourceLocation;
|
|
import net.minecraft.util.Vec3;
|
|
import net.minecraftforge.client.model.AdvancedModelLoader;
|
|
import net.minecraftforge.client.model.IModelCustom;
|
|
|
|
public class RenderDeathBlast extends Render {
|
|
|
|
private static final IModelCustom sphere = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/Sphere.obj"));
|
|
|
|
@Override
|
|
public void doRender(Entity entity, double x, double y, double z, float p_76986_8_, float p_76986_9_) {
|
|
|
|
GL11.glPushMatrix();
|
|
GL11.glTranslatef((float)x, (float)y, (float)z);
|
|
GL11.glDisable(GL11.GL_LIGHTING);
|
|
GL11.glEnable(GL11.GL_CULL_FACE);
|
|
GL11.glDisable(GL11.GL_TEXTURE_2D);
|
|
GL11.glShadeModel(GL11.GL_SMOOTH);
|
|
GL11.glDepthMask(false);
|
|
|
|
GL11.glPushMatrix();
|
|
//GL11.glRotatef((entity.ticksExisted % 360) * 10, 0, 1, 0);
|
|
GL11.glEnable(GL11.GL_BLEND);
|
|
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);
|
|
//GL11.glDisable(GL11.GL_ALPHA_TEST);
|
|
|
|
GL11.glColor3f(1.0F, 0, 0);
|
|
|
|
Vec3 vector = Vec3.createVectorHelper(0.5D, 0, 0);
|
|
|
|
Tessellator tessellator = Tessellator.instance;
|
|
RenderHelper.disableStandardItemLighting();
|
|
|
|
for(int i = 0; i < 8; i++) {
|
|
tessellator.startDrawing(6);
|
|
tessellator.addVertex(vector.xCoord, 250.0D, vector.zCoord);
|
|
tessellator.addVertex(vector.xCoord, 0.0D, vector.zCoord);
|
|
vector.rotateAroundY(45);
|
|
tessellator.addVertex(vector.xCoord, 0.0D, vector.zCoord);
|
|
tessellator.addVertex(vector.xCoord, 250.0D, vector.zCoord);
|
|
tessellator.draw();
|
|
}
|
|
|
|
GL11.glColor3f(1.0F, 0, 1.0F);
|
|
|
|
for(int i = 0; i < 8; i++) {
|
|
tessellator.startDrawing(6);
|
|
tessellator.addVertex(vector.xCoord / 2, 250.0D, vector.zCoord / 2);
|
|
tessellator.addVertex(vector.xCoord / 2, 0.0D, vector.zCoord / 2);
|
|
vector.rotateAroundY(45);
|
|
tessellator.addVertex(vector.xCoord / 2, 0.0D, vector.zCoord / 2);
|
|
tessellator.addVertex(vector.xCoord / 2, 250.0D, vector.zCoord / 2);
|
|
tessellator.draw();
|
|
}
|
|
GL11.glPopMatrix();
|
|
|
|
GL11.glDepthMask(true);
|
|
GL11.glDisable(GL11.GL_CULL_FACE);
|
|
GL11.glDisable(GL11.GL_BLEND);
|
|
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
|
GL11.glShadeModel(GL11.GL_FLAT);
|
|
|
|
GL11.glPopMatrix();
|
|
|
|
renderOrb(entity, x, y, z, p_76986_8_, p_76986_9_);
|
|
}
|
|
|
|
public void renderOrb(Entity entity, double x, double y, double z, float p_76986_8_, float p_76986_9_) {
|
|
GL11.glPushMatrix();
|
|
GL11.glTranslatef((float)x, (float)y, (float)z);
|
|
GL11.glDisable(GL11.GL_LIGHTING);
|
|
GL11.glEnable(GL11.GL_CULL_FACE);
|
|
GL11.glDisable(GL11.GL_TEXTURE_2D);
|
|
|
|
double scale = 15 - 15D * (((double)entity.ticksExisted) / ((double)EntityDeathBlast.maxAge));
|
|
double alpha = (((double)entity.ticksExisted) / ((double)EntityDeathBlast.maxAge));
|
|
|
|
if(scale < 0)
|
|
scale = 0;
|
|
|
|
GL11.glColor4d(1.0, 0, 1.0, alpha);
|
|
|
|
GL11.glEnable(GL11.GL_BLEND);
|
|
GL11.glScaled(scale, scale, scale);
|
|
OpenGlHelper.glBlendFunc(770, 771, 1, 0);
|
|
sphere.renderAll();
|
|
|
|
GL11.glColor4d(1.0, 0, 0, alpha);
|
|
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);
|
|
GL11.glScaled(1.5, 1.5, 1.5);
|
|
sphere.renderAll();
|
|
|
|
GL11.glDisable(GL11.GL_BLEND);
|
|
GL11.glEnable(GL11.GL_LIGHTING);
|
|
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
|
GL11.glDisable(GL11.GL_CULL_FACE);
|
|
GL11.glColor4d(1.0, 1.0, 1.0, 1.0);
|
|
|
|
GL11.glPopMatrix();
|
|
}
|
|
|
|
@Override
|
|
protected ResourceLocation getEntityTexture(Entity p_110775_1_) {
|
|
return null;
|
|
}
|
|
|
|
}
|