mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
402 lines
16 KiB
Java
402 lines
16 KiB
Java
package com.hbm.render.tileentity;
|
|
|
|
import java.nio.FloatBuffer;
|
|
|
|
import org.lwjgl.BufferUtils;
|
|
import org.lwjgl.opengl.GL11;
|
|
import org.lwjgl.opengl.GL12;
|
|
|
|
import com.hbm.items.ModItems;
|
|
import com.hbm.lib.RefStrings;
|
|
import com.hbm.main.ResourceManager;
|
|
import com.hbm.render.util.HorsePronter;
|
|
import com.hbm.wiaj.WorldInAJar;
|
|
|
|
import net.minecraft.client.Minecraft;
|
|
import net.minecraft.client.renderer.ItemRenderer;
|
|
import net.minecraft.client.renderer.RenderBlocks;
|
|
import net.minecraft.client.renderer.RenderHelper;
|
|
import net.minecraft.client.renderer.Tessellator;
|
|
import net.minecraft.client.renderer.texture.TextureMap;
|
|
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
|
import net.minecraft.init.Blocks;
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraft.tileentity.TileEntity;
|
|
import net.minecraft.util.IIcon;
|
|
import net.minecraft.util.ResourceLocation;
|
|
|
|
public class RendererObjTester extends TileEntitySpecialRenderer {
|
|
|
|
private static RenderBlocks renderer;
|
|
private static WorldInAJar world;
|
|
private static ResourceLocation extra = new ResourceLocation(RefStrings.MODID, "textures/models/horse/dyx.png");
|
|
|
|
@Override
|
|
public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) {
|
|
GL11.glPushMatrix();
|
|
GL11.glTranslated(x + 0.5, y + 1, z + 0.5);
|
|
GL11.glDisable(GL11.GL_CULL_FACE);
|
|
|
|
if(world == null) {
|
|
world = new WorldInAJar(5, 3, 5);
|
|
for(int i = 0; i < 25; i++) world.setBlock(i / 5, 1, i % 5, Blocks.brick_block, 0);
|
|
for(int i = 0; i < 9; i++) world.setBlock(1 + i / 3, 0, 1 + i % 3, Blocks.brick_block, 0);
|
|
}
|
|
|
|
if(renderer == null) {
|
|
renderer = new RenderBlocks(world);
|
|
}
|
|
renderer.enableAO = true;
|
|
world.lightlevel = tileEntity.getWorldObj().getLightBrightnessForSkyBlocks(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord, 0);
|
|
|
|
RenderHelper.disableStandardItemLighting();
|
|
|
|
GL11.glPushMatrix();
|
|
GL11.glRotated(15, 0, 0, 1);
|
|
GL11.glRotated(System.currentTimeMillis() / 5D % 360D, 0, -1, 0);
|
|
GL11.glTranslated(-2.5, 0, -2.5);
|
|
Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.locationBlocksTexture);
|
|
GL11.glShadeModel(GL11.GL_SMOOTH);
|
|
Tessellator.instance.startDrawingQuads();
|
|
|
|
for(int ix = 0; ix < world.sizeX; ix++) {
|
|
for(int iy = 0; iy < world.sizeY; iy++) {
|
|
for(int iz = 0; iz < world.sizeZ; iz++) {
|
|
try { renderer.renderBlockByRenderType(world.getBlock(ix, iy, iz), ix, iy, iz); } catch(Exception ex) { }
|
|
}
|
|
}
|
|
}
|
|
|
|
Tessellator.instance.draw();
|
|
GL11.glShadeModel(GL11.GL_FLAT);
|
|
GL11.glPopMatrix();
|
|
|
|
RenderHelper.enableStandardItemLighting();
|
|
|
|
GL11.glRotated(15, 0, 0, 1);
|
|
GL11.glRotated(System.currentTimeMillis() / 5D % 360D, 0, -1, 0);
|
|
|
|
GL11.glTranslated(0, 2.1, 0.5);
|
|
|
|
this.bindTexture(extra);
|
|
HorsePronter.reset();
|
|
double r = 60;
|
|
HorsePronter.pose(HorsePronter.id_body, 0, -r, 0);
|
|
HorsePronter.pose(HorsePronter.id_tail, 0, 45, 90);
|
|
HorsePronter.pose(HorsePronter.id_lbl, 0, -90 + r, 35);
|
|
HorsePronter.pose(HorsePronter.id_rbl, 0, -90 + r, -35);
|
|
HorsePronter.pose(HorsePronter.id_lfl, 0, r - 10, 5);
|
|
HorsePronter.pose(HorsePronter.id_rfl, 0, r - 10, -5);
|
|
HorsePronter.pose(HorsePronter.id_head, 0, r, 0);
|
|
HorsePronter.enableHorn();
|
|
HorsePronter.enableWings();
|
|
HorsePronter.pront();
|
|
|
|
ItemStack stack = new ItemStack(ModItems.cigarette);
|
|
double scale = 0.25;
|
|
GL11.glTranslated(0.02, 1.13, -0.42);
|
|
GL11.glScaled(scale, scale, scale);
|
|
GL11.glRotated(90, 0, -1, 0);
|
|
GL11.glRotated(60, 0, 0, -1);
|
|
bindTexture(TextureMap.locationItemsTexture);
|
|
IIcon icon = stack.getIconIndex();
|
|
ItemRenderer.renderItemIn2D(Tessellator.instance, icon.getMaxU(), icon.getMinV(), icon.getMinU(), icon.getMaxV(), icon.getIconWidth(), icon.getIconHeight(), 0.0625F);
|
|
|
|
GL11.glPopMatrix();
|
|
}
|
|
|
|
|
|
public void renderTileEntityAt2(TileEntity tileEntity, double x, double y, double z, float f)
|
|
{
|
|
GL11.glPushMatrix();
|
|
GL11.glTranslated(x + 0.5, y, z + 0.5);
|
|
GL11.glEnable(GL11.GL_LIGHTING);
|
|
/*switch(tileEntity.getBlockMetadata())
|
|
{
|
|
case 5:
|
|
GL11.glRotatef(90, 0F, 1F, 0F); break;
|
|
case 3:
|
|
GL11.glRotatef(180, 0F, 1F, 0F); break;
|
|
case 4:
|
|
GL11.glRotatef(270, 0F, 1F, 0F); break;
|
|
case 2:
|
|
GL11.glRotatef(0, 0F, 1F, 0F); break;
|
|
}*/
|
|
|
|
/*bindTexture(objTesterTexture);
|
|
objTesterModel.renderAll();*/
|
|
|
|
//GL11.glScaled(5, 5, 5);
|
|
|
|
/*GL11.glEnable(GL11.GL_LIGHTING);
|
|
GL11.glEnable(GL11.GL_CULL_FACE);
|
|
bindTexture(ResourceManager.sat_foeq_burning_tex);
|
|
ResourceManager.sat_foeq_burning.renderAll();
|
|
|
|
GL11.glDisable(GL11.GL_TEXTURE_2D);
|
|
GL11.glDisable(GL11.GL_CULL_FACE);
|
|
GL11.glEnable(GL11.GL_BLEND);
|
|
|
|
Random rand = new Random(System.currentTimeMillis() / 50);
|
|
|
|
GL11.glScaled(1.15, 0.75, 1.15);
|
|
GL11.glTranslated(0, -0.5, 0.3);
|
|
GL11.glDisable(GL11.GL_CULL_FACE);
|
|
for(int i = 0; i < 10; i++) {
|
|
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);
|
|
GL11.glColor3d(1, 0.75, 0.25);
|
|
GL11.glRotatef(rand.nextInt(360), 0F, 1F, 0F);
|
|
ResourceManager.sat_foeq_fire.renderAll();
|
|
GL11.glTranslated(0, 2, 0);
|
|
GL11.glColor3d(1, 0.5, 0);
|
|
GL11.glRotatef(rand.nextInt(360), 0F, 1F, 0F);
|
|
ResourceManager.sat_foeq_fire.renderAll();
|
|
GL11.glTranslated(0, 2, 0);
|
|
GL11.glColor3d(1, 0.25, 0);
|
|
GL11.glRotatef(rand.nextInt(360), 0F, 1F, 0F);
|
|
ResourceManager.sat_foeq_fire.renderAll();
|
|
GL11.glTranslated(0, 2, 0);
|
|
GL11.glColor3d(1, 0.0, 0);
|
|
GL11.glRotatef(rand.nextInt(360), 0F, 1F, 0F);
|
|
ResourceManager.sat_foeq_fire.renderAll();
|
|
|
|
GL11.glTranslated(0, -3.8, 0);
|
|
|
|
GL11.glScaled(0.95, 1.2, 0.95);
|
|
}
|
|
|
|
GL11.glDisable(GL11.GL_BLEND);
|
|
GL11.glEnable(GL11.GL_TEXTURE_2D);*/
|
|
|
|
/*ModelCalBarrel barrel = new ModelCalBarrel();
|
|
ModelCalStock stock = new ModelCalStock();
|
|
ModelCalDualStock saddle = new ModelCalDualStock();
|
|
|
|
bindTexture(new ResourceLocation(RefStrings.MODID, "textures/models/ModelCalDualStock.png"));
|
|
saddle.renderAll(1F/16F);
|
|
|
|
bindTexture(new ResourceLocation(RefStrings.MODID, "textures/models/ModelCalBarrel.png"));
|
|
GL11.glTranslated(0, 0, -0.25);
|
|
barrel.renderAll(1F/16F);
|
|
GL11.glTranslated(0, 0, 0.5);
|
|
barrel.renderAll(1F/16F);
|
|
|
|
bindTexture(new ResourceLocation(RefStrings.MODID, "textures/models/ModelCalStock.png"));*/
|
|
//stock.renderAll(1F/16F);
|
|
|
|
//SoyuzPronter.prontSoyuz(2);
|
|
//TomPronter.prontTom();
|
|
//BeamPronter.prontBeam(Vec3.createVectorHelper(5, 5, 5), EnumWaveType.SPIRAL, EnumBeamType.SOLID, 0xff8000, 0xff8000, (int)tileEntity.getWorldObj().getTotalWorldTime() % 360 * 25, 25, 0.1F, 4, 0.05F);
|
|
//BeamPronter.prontBeam(Vec3.createVectorHelper(5, 5, 5), EnumWaveType.SPIRAL, EnumBeamType.SOLID, 0xffff00, 0xffff00, (int)tileEntity.getWorldObj().getTotalWorldTime() % 360 * 25, 1, 0F, 4, 0.05F);
|
|
//BeamPronter.prontHelix(Vec3.createVectorHelper(0, 5, 0), 0.5, 0.5, 0.5, EnumWaveType.SPIRAL, EnumBeamType.LINE, 0x0000ff, 0xffff00, (int)tileEntity.getWorldObj().getTotalWorldTime() % 360 * 25 + 180, 25, 0.25F);
|
|
|
|
//DiamondPronter.pront(1, 2, 3, EnumSymbol.OXIDIZER);
|
|
|
|
//GL11.glTranslatef(0.0F, -0.25F, 0.0F);
|
|
//GL11.glRotatef(-25, 0, 1, 0);
|
|
//GL11.glRotatef(15, 0, 0, 1);
|
|
|
|
/*long time = tileEntity.getWorldObj().getTotalWorldTime();
|
|
double sine = Math.sin(time * 0.05) * 5;
|
|
double sin3 = Math.sin(time * 0.05 + Math.PI * 0.5) * 5;
|
|
double sin2 = Math.sin(time * 0.05 + Math.PI);
|
|
int height = 7;
|
|
GL11.glTranslated(0.0F, height + sin2, 0.0F);
|
|
GL11.glRotated(sine, 0, 0, 1);
|
|
GL11.glRotated(sin3, 1, 0, 0);
|
|
GL11.glTranslated(0.0F, -height, 0.0F);
|
|
|
|
GL11.glEnable(GL11.GL_CULL_FACE);
|
|
GL11.glShadeModel(GL11.GL_SMOOTH);
|
|
bindTexture(ResourceManager.soyuz_lander_tex);
|
|
ResourceManager.soyuz_lander.renderPart("Capsule");
|
|
bindTexture(ResourceManager.soyuz_chute_tex);
|
|
ResourceManager.soyuz_lander.renderPart("Chute");
|
|
GL11.glShadeModel(GL11.GL_FLAT);*/
|
|
|
|
/*GL11.glRotatef(-90, 0, 1, 0);
|
|
GL11.glTranslated(0, 3, 0);
|
|
bindTexture(ResourceManager.nikonium_tex);
|
|
ResourceManager.nikonium.renderAll();
|
|
GL11.glTranslated(0, -3, 0);
|
|
GL11.glRotatef(90, 0, 1, 0);
|
|
|
|
GL11.glShadeModel(GL11.GL_SMOOTH);
|
|
bindTexture(ResourceManager.fstbmb_tex);
|
|
ResourceManager.fstbmb.renderPart("Body");
|
|
ResourceManager.fstbmb.renderPart("Balefire");
|
|
|
|
bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/misc/glintBF.png"));
|
|
RenderMiscEffects.renderClassicGlint(tileEntity.getWorldObj(), f, ResourceManager.fstbmb, "Balefire", 0.0F, 0.8F, 0.15F, 5, 2F);
|
|
|
|
FontRenderer font = Minecraft.getMinecraft().fontRenderer;
|
|
float f3 = 0.04F;
|
|
GL11.glTranslatef(0.815F, 0.9275F, 0.5F);
|
|
GL11.glScalef(f3, -f3, f3);
|
|
GL11.glNormal3f(0.0F, 0.0F, -1.0F * f3);
|
|
GL11.glRotatef(90, 0, 1, 0);
|
|
GL11.glDepthMask(false);
|
|
GL11.glTranslatef(0, 1, 0);
|
|
font.drawString("00:15", 0, 0, 0xff0000);
|
|
GL11.glDepthMask(true);
|
|
|
|
GL11.glShadeModel(GL11.GL_FLAT);*/
|
|
|
|
GL11.glTranslated(0D, 4D, 0D);
|
|
GL11.glRotated(System.currentTimeMillis() % 3600 / 10D, 0, 0, 1);
|
|
GL11.glTranslated(0D, -4D, 0D);
|
|
GL11.glRotated(System.currentTimeMillis() % 3600 / 10D, 0, 1, 0);
|
|
|
|
GL11.glShadeModel(GL11.GL_SMOOTH);
|
|
GL11.glEnable(GL11.GL_CULL_FACE);
|
|
GL11.glEnable(GL11.GL_LIGHTING);
|
|
|
|
//GL11.glDisable(GL11.GL_TEXTURE_2D);
|
|
RenderHelper.disableStandardItemLighting();
|
|
RenderHelper.enableStandardItemLighting();
|
|
GL11.glColor4d(1, 1, 1, 1);
|
|
GL11.glClearColor(0, 0, 0, 0);
|
|
|
|
float amb = 2F;
|
|
float dif = 2F;
|
|
float spe = 2F;
|
|
float shi = 1F;
|
|
FloatBuffer iamb = (FloatBuffer) BufferUtils.createFloatBuffer(8).put(new float[] { amb, amb, amb, 1F }).flip();
|
|
FloatBuffer idif = (FloatBuffer) BufferUtils.createFloatBuffer(8).put(new float[] { dif, dif, dif, 1F }).flip();
|
|
FloatBuffer ispe = (FloatBuffer) BufferUtils.createFloatBuffer(8).put(new float[] { spe, spe, spe, 1F }).flip();
|
|
FloatBuffer mamb = (FloatBuffer) BufferUtils.createFloatBuffer(8).put(new float[] { amb, amb, amb, 1F }).flip();
|
|
FloatBuffer mdif = (FloatBuffer) BufferUtils.createFloatBuffer(8).put(new float[] { dif, dif, dif, 1F }).flip();
|
|
FloatBuffer mspe = (FloatBuffer) BufferUtils.createFloatBuffer(8).put(new float[] { spe, spe, spe, 1F }).flip();
|
|
float msh = 128F * shi;
|
|
FloatBuffer mem = (FloatBuffer) BufferUtils.createFloatBuffer(8).put(new float[] { 1F, 1F, 1F, 1F }).flip();
|
|
|
|
GL11.glEnable(GL11.GL_LIGHTING);
|
|
GL11.glShadeModel(GL11.GL_SMOOTH);
|
|
GL11.glLight(GL11.GL_LIGHT0, GL11.GL_AMBIENT, iamb);
|
|
GL11.glLight(GL11.GL_LIGHT0, GL11.GL_DIFFUSE, idif);
|
|
GL11.glLight(GL11.GL_LIGHT0, GL11.GL_SPECULAR, ispe);
|
|
GL11.glLight(GL11.GL_LIGHT1, GL11.GL_AMBIENT, iamb);
|
|
GL11.glLight(GL11.GL_LIGHT1, GL11.GL_DIFFUSE, idif);
|
|
GL11.glLight(GL11.GL_LIGHT1, GL11.GL_SPECULAR, ispe);
|
|
GL11.glMaterial(GL11.GL_FRONT, GL11.GL_AMBIENT, mamb);
|
|
GL11.glMaterial(GL11.GL_FRONT, GL11.GL_DIFFUSE, mdif);
|
|
GL11.glMaterial(GL11.GL_FRONT, GL11.GL_SPECULAR, mspe);
|
|
GL11.glMaterialf(GL11.GL_FRONT, GL11.GL_SHININESS, msh);
|
|
GL11.glMaterial(GL11.GL_FRONT, GL11.GL_EMISSION, mem);
|
|
GL11.glLightModeli(GL12.GL_LIGHT_MODEL_COLOR_CONTROL, GL12.GL_SEPARATE_SPECULAR_COLOR);
|
|
|
|
|
|
bindTexture(ResourceManager.soyuz_module_dome_tex);
|
|
ResourceManager.soyuz_module.renderPart("Dome");
|
|
bindTexture(ResourceManager.soyuz_module_lander_tex);
|
|
ResourceManager.soyuz_module.renderPart("Capsule");
|
|
bindTexture(ResourceManager.soyuz_module_propulsion_tex);
|
|
ResourceManager.soyuz_module.renderPart("Propulsion");
|
|
bindTexture(ResourceManager.soyuz_module_solar_tex);
|
|
ResourceManager.soyuz_module.renderPart("Solar");
|
|
|
|
GL11.glShadeModel(GL11.GL_FLAT);
|
|
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
|
GL11.glColor3f(1F, 1F, 1F);
|
|
|
|
/*GL11.glDisable(GL11.GL_CULL_FACE);
|
|
GL11.glShadeModel(GL11.GL_SMOOTH);
|
|
|
|
bindTexture(ResourceManager.igen_tex);
|
|
ResourceManager.igen.renderPart("Base");
|
|
|
|
float angle = System.currentTimeMillis() * 1 % 360;
|
|
float px = 0.0625F;
|
|
float sine = (float) Math.sin(Math.toRadians(angle));
|
|
float cosine = (float) Math.cos(Math.toRadians(angle));
|
|
float armAng = 22.5F;
|
|
|
|
GL11.glPushMatrix();
|
|
GL11.glTranslated(0, 3.5, 0);
|
|
GL11.glRotatef(angle, 0, 0, 1);
|
|
GL11.glTranslated(0, -3.5, 0);
|
|
|
|
bindTexture(ResourceManager.igen_rotor);
|
|
ResourceManager.igen.renderPart("Rotor");
|
|
GL11.glPopMatrix();
|
|
|
|
|
|
|
|
GL11.glPushMatrix();
|
|
GL11.glTranslated(0, 3.5, px * 5);
|
|
GL11.glRotatef(angle, -1, 0, 0);
|
|
GL11.glTranslated(0, -3.5, px * -5);
|
|
|
|
bindTexture(ResourceManager.igen_cog);
|
|
ResourceManager.igen.renderPart("CogLeft");
|
|
GL11.glPopMatrix();
|
|
|
|
|
|
|
|
GL11.glPushMatrix();
|
|
GL11.glTranslated(0, 3.5, px * 5);
|
|
GL11.glRotatef(angle, 1, 0, 0);
|
|
GL11.glTranslated(0, -3.5, px * -5);
|
|
|
|
bindTexture(ResourceManager.igen_cog);
|
|
ResourceManager.igen.renderPart("CogRight");
|
|
GL11.glPopMatrix();
|
|
|
|
|
|
|
|
GL11.glPushMatrix();
|
|
GL11.glTranslated(0, 0, cosine * 0.8725 - 1);
|
|
|
|
bindTexture(ResourceManager.igen_pistons);
|
|
ResourceManager.igen.renderPart("Pistons");
|
|
GL11.glPopMatrix();
|
|
|
|
GL11.glPushMatrix();
|
|
|
|
GL11.glTranslated(0, sine * 0.55, cosine * 0.8725 - 1.125);
|
|
|
|
GL11.glTranslated(0, 3.5, px * 6.5);
|
|
GL11.glRotatef(sine * -armAng, 1, 0, 0);
|
|
GL11.glTranslated(0, -3.5, px * -5);
|
|
|
|
bindTexture(ResourceManager.igen_arm);
|
|
ResourceManager.igen.renderPart("ArmLeft");
|
|
GL11.glPopMatrix();
|
|
|
|
GL11.glPushMatrix();
|
|
|
|
GL11.glTranslated(0, -sine * 0.55, cosine * 0.8725 - 1.125);
|
|
|
|
GL11.glTranslated(0, 3.5, px * 6.5);
|
|
GL11.glRotatef(sine * armAng, 1, 0, 0);
|
|
GL11.glTranslated(0, -3.5, px * -5);
|
|
|
|
bindTexture(ResourceManager.igen_arm);
|
|
ResourceManager.igen.renderPart("ArmRight");
|
|
GL11.glPopMatrix();
|
|
|
|
GL11.glTranslated(-0.75, 5.5625, -7);
|
|
for(int i = 0; i < 2; i++) {
|
|
BeamPronter.prontBeam(Vec3.createVectorHelper(1.5, 0, 0), EnumWaveType.RANDOM, EnumBeamType.LINE, 0x8080ff, 0x0000ff, (int)tileEntity.getWorldObj().getTotalWorldTime() % 1000 + i, 5, px * 4, 0, 0);
|
|
BeamPronter.prontBeam(Vec3.createVectorHelper(1.5, 0, 0), EnumWaveType.RANDOM, EnumBeamType.LINE, 0xffffff, 0x0000ff, (int)tileEntity.getWorldObj().getTotalWorldTime() % 1000 + 2 + i, 5, px * 4, 0, 0);
|
|
}
|
|
|
|
GL11.glShadeModel(GL11.GL_FLAT);
|
|
GL11.glEnable(GL11.GL_CULL_FACE);
|
|
|
|
tileEntity.getWorldObj().spawnParticle("splash", tileEntity.xCoord + 2.1, tileEntity.yCoord + 5.875, tileEntity.zCoord + 0.5, 0, 0, -0.25);
|
|
tileEntity.getWorldObj().spawnParticle("smoke", tileEntity.xCoord + 2.8, tileEntity.yCoord + 5.05, tileEntity.zCoord + 2, 0, 0, -0.1);
|
|
|
|
if(tileEntity.getWorldObj().rand.nextInt(100) == 0) {
|
|
|
|
tileEntity.getWorldObj().spawnParticle("flame", tileEntity.xCoord + 2.8, tileEntity.yCoord + 5.05, tileEntity.zCoord + 2, 0, 0, -0.3);
|
|
for(int i = 0; i < 5; i++) {
|
|
tileEntity.getWorldObj().spawnParticle("smoke", tileEntity.xCoord + 2.8, tileEntity.yCoord + 5.05, tileEntity.zCoord + 2, 0, 0, -0.3);
|
|
}
|
|
}*/
|
|
|
|
GL11.glPopMatrix();
|
|
RenderHelper.enableStandardItemLighting();
|
|
}
|
|
|
|
} |