/
Belyash5
/
Flu
Обзор
Документация
Войти
/
Belyash5
/
Flu
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/main/java/com/hbm/render/loader/HbmFace.java
88 строк
3 KB
Boblet
more crap
25 апр 2025, 16:07
25 апр 2025, 16:07
1374193
Код
Авторство
О чём код?
package com.hbm.render.loader; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.Tessellator; import net.minecraft.util.Vec3; import net.minecraftforge.client.model.obj.TextureCoordinate; import net.minecraftforge.client.model.obj.Vertex; @Deprecated public class HbmFace { public Vertex[] vertices; public Vertex[] vertexNormals; public Vertex faceNormal; public TextureCoordinate[] textureCoordinates; @SideOnly(Side.CLIENT) public void addFaceForRender(float currentTime, Tessellator tessellator) { addFaceForRender(currentTime, tessellator, 0.0005F); } @SideOnly(Side.CLIENT) public void addFaceForRender(float currentTime, Tessellator tessellator, float textureOffset) { if (faceNormal == null) { faceNormal = this.calculateFaceNormal(); } tessellator.setNormal(faceNormal.x, faceNormal.y, faceNormal.z); float averageU = 0F; float averageV = 0F; float animOffset = 0F; if ((textureCoordinates != null) && (textureCoordinates.length > 0)) { for (int i = 0; i < textureCoordinates.length; ++i) { averageU += textureCoordinates[i].u; averageV += textureCoordinates[i].v; } averageU = averageU / textureCoordinates.length; averageV = averageV / textureCoordinates.length; animOffset = (float)(((double)currentTime % HmfController.modoloMod) / HmfController.quotientMod); } float offsetU, offsetV; for (int i = 0; i < vertices.length; ++i) { if ((textureCoordinates != null) && (textureCoordinates.length > 0)) { offsetU = textureOffset; offsetV = textureOffset; if (textureCoordinates[i].u > averageU) { offsetU = -offsetU; } if (textureCoordinates[i].v > averageV) { offsetV = -offsetV; } tessellator.addVertexWithUV(vertices[i].x, vertices[i].y, vertices[i].z, textureCoordinates[i].u + offsetU, textureCoordinates[i].v + offsetV + animOffset); } else { tessellator.addVertex(vertices[i].x, vertices[i].y, vertices[i].z); } } } public Vertex calculateFaceNormal() { Vec3 v1 = Vec3.createVectorHelper(vertices[1].x - vertices[0].x, vertices[1].y - vertices[0].y, vertices[1].z - vertices[0].z); Vec3 v2 = Vec3.createVectorHelper(vertices[2].x - vertices[0].x, vertices[2].y - vertices[0].y, vertices[2].z - vertices[0].z); Vec3 normalVector = null; normalVector = v1.crossProduct(v2).normalize(); return new Vertex((float) normalVector.xCoord, (float) normalVector.yCoord, (float) normalVector.zCoord); } }