1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
package darkknight.jewelrycraft.entities.renders;
import java.util.Random;
import org.lwjgl.opengl.GL11;
import darkknight.jewelrycraft.entities.EntityHeart;
import darkknight.jewelrycraft.util.Variables;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.renderer.entity.RenderLiving;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.util.ResourceLocation;
/**
* @author Sorin
*/
public class HeartRender extends RenderLiving {
protected ResourceLocation texture;
Random rnd = new Random();
public HeartRender(ModelBase modelBase, float shadowSize) {
super(modelBase, shadowSize);
}
@Override
protected void renderModel(EntityLivingBase entity, float x,
float y, float z, float rot1, float rot2,
float rot3) {
super.renderModel(entity, x, y, z, rot1, rot2, rot3);
rnd.setSeed(1542372345);
if (((EntityHeart) entity).getQuantity() > 2f) {
for (int i = 0; i < ((EntityHeart) entity)
.getQuantity() / 10f; i++) {
float posX = rnd.nextFloat() * 0.2f
* (rnd.nextBoolean() ? 1
: -1);
float posY = rnd.nextFloat() * 0.2f
* (rnd.nextBoolean() ? 1
: -1);
float rotY = rnd.nextFloat() * 35f
* (rnd.nextBoolean() ? 1
: -1);
float rotZ = rnd.nextFloat() * 35f
* (rnd.nextBoolean() ? 1
: -1);
GL11.glTranslatef(-0.15F, 0.0F, 0.0F);
GL11.glTranslatef(posX, posY, 0F);
GL11.glRotatef(rotY, 0F, 1F, 0F);
GL11.glRotatef(rotZ, 0F, 0F, 1F);
GL11.glPushMatrix();
this.mainModel.render(entity, x, y, z,
rot1, rot2, rot3);
GL11.glPopMatrix();
}
}
}
@Override
protected void preRenderCallback(EntityLivingBase entity,
float f) {
preRenderCallbackHeart((EntityHeart) entity, f);
}
protected void preRenderCallbackHeart(EntityHeart entity,
float f) {
GL11.glScalef(0.4F, 0.4F, 0.4F);
GL11.glRotatef(55F, 1F, 0F, 0F);
String type = entity.getType();
if (type == "" || type == null)
type = "Red";
texture = new ResourceLocation(Variables.MODID,
"textures/entities/" + type + "Heart.png");
}
@Override
protected ResourceLocation getEntityTexture(Entity par1Entity) {
return texture;
}
}
|