mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
106 lines
3.5 KiB
Java
106 lines
3.5 KiB
Java
package com.hbm.render.entity.mob;
|
|
|
|
import org.lwjgl.opengl.GL11;
|
|
|
|
import com.hbm.entity.mob.EntityRADBeast;
|
|
import com.hbm.lib.RefStrings;
|
|
import com.hbm.render.model.ModelM65Blaze;
|
|
import com.hbm.render.util.BeamPronter;
|
|
import com.hbm.render.util.BeamPronter.EnumBeamType;
|
|
import com.hbm.render.util.BeamPronter.EnumWaveType;
|
|
|
|
import net.minecraft.client.Minecraft;
|
|
import net.minecraft.client.model.ModelBlaze;
|
|
import net.minecraft.client.renderer.entity.RenderLiving;
|
|
import net.minecraft.entity.Entity;
|
|
import net.minecraft.entity.EntityLiving;
|
|
import net.minecraft.entity.EntityLivingBase;
|
|
import net.minecraft.util.ResourceLocation;
|
|
import net.minecraft.util.Vec3;
|
|
|
|
public class RenderRADBeast extends RenderLiving {
|
|
|
|
private static final ResourceLocation blazeTextures = new ResourceLocation(RefStrings.MODID, "textures/entity/radbeast.png");
|
|
private static final ResourceLocation mask = new ResourceLocation(RefStrings.MODID, "textures/models/ModelM65Blaze.png");
|
|
private int blazeModel;
|
|
|
|
public RenderRADBeast() {
|
|
super(new ModelBlaze(), 0.5F);
|
|
this.blazeModel = ((ModelBlaze) this.mainModel).func_78104_a();
|
|
}
|
|
|
|
public void doRender(EntityRADBeast entity, double x, double y, double z, float r0, float r1) {
|
|
int i = ((ModelBlaze) this.mainModel).func_78104_a();
|
|
|
|
if(i != this.blazeModel) {
|
|
this.blazeModel = i;
|
|
this.mainModel = new ModelBlaze();
|
|
}
|
|
|
|
Entity victim = entity.getUnfortunateSoul();
|
|
|
|
if(victim != null && entity.posY > 0.1) {
|
|
|
|
GL11.glPushMatrix();
|
|
|
|
GL11.glTranslated(x, y + 1.25, z);
|
|
|
|
double sx = entity.posX;
|
|
double sy = entity.posY + 1.25;
|
|
double sz = entity.posZ;
|
|
|
|
double tX = victim.posX;
|
|
double tY = victim.posY + victim.height / 2;
|
|
double tZ = victim.posZ;
|
|
|
|
if(victim == Minecraft.getMinecraft().thePlayer)
|
|
tY -= 1.5;
|
|
|
|
double length = Math.sqrt(Math.pow(tX - sx, 2) + Math.pow(tY - sy, 2) + Math.pow(tZ - sz, 2));
|
|
if(length < 200) BeamPronter.prontBeam(Vec3.createVectorHelper(tX - sx, tY - sy, tZ - sz), EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x004000, 0x004000, (int) (entity.worldObj.getTotalWorldTime() % 1000 + 1), (int) (length * 5), 0.125F, 2, 0.03125F);
|
|
|
|
GL11.glPopMatrix();
|
|
}
|
|
|
|
super.doRender((EntityLiving) entity, x, y, z, r0, r1);
|
|
}
|
|
|
|
protected ResourceLocation getEntityTexture(EntityRADBeast p_110775_1_) {
|
|
return blazeTextures;
|
|
}
|
|
|
|
public void doRender(EntityLiving p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) {
|
|
this.doRender((EntityRADBeast) p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_);
|
|
}
|
|
|
|
public void doRender(EntityLivingBase p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) {
|
|
this.doRender((EntityRADBeast) p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_);
|
|
}
|
|
|
|
protected ResourceLocation getEntityTexture(Entity p_110775_1_) {
|
|
return this.getEntityTexture((EntityRADBeast) p_110775_1_);
|
|
}
|
|
|
|
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_) {
|
|
this.doRender((EntityRADBeast) p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_);
|
|
}
|
|
|
|
private ModelM65Blaze modelM65;
|
|
|
|
protected int shouldRenderPass(EntityLivingBase p_77032_1_, int p_77032_2_, float p_77032_3_) {
|
|
|
|
if(p_77032_2_ == 0) {
|
|
this.bindTexture(mask);
|
|
|
|
if(this.modelM65 == null) {
|
|
this.modelM65 = new ModelM65Blaze();
|
|
}
|
|
|
|
this.setRenderPassModel(modelM65);
|
|
return 1;
|
|
}
|
|
|
|
return super.shouldRenderPass(p_77032_1_, p_77032_2_, p_77032_3_);
|
|
}
|
|
}
|