Grindr, GUI, Container.

This commit is contained in:
Sebastian Hartte
2020-06-02 22:52:35 +02:00
parent cf9ab8a13b
commit 2de3a2ecee
65 changed files with 509 additions and 495 deletions
@@ -19,18 +19,18 @@
package appeng.client.render.tesr;
import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.vertex.IVertexBuilder;
import net.minecraft.client.renderer.*;
import net.minecraft.client.renderer.model.IBakedModel;
import net.minecraft.client.renderer.texture.AtlasTexture;
import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher;
import org.lwjgl.opengl.GL11;
import net.minecraft.block.BlockState;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.BlockRendererDispatcher;
import net.minecraft.client.renderer.BufferBuilder;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.block.model.IBakedModel;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.client.renderer.tileentity.TileEntityRenderer;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraftforge.api.distmarker.Dist;
@@ -53,53 +53,68 @@ public class CrankTESR extends TileEntityRenderer<TileCrank>
}
@Override
public void render( TileCrank te, double x, double y, double z, float partialTicks, int destroyStage, float p_render_10_ )
{
// Most of this is blatantly copied from FastTESR
Tessellator tessellator = Tessellator.getInstance();
this.bindTexture( TextureMap.LOCATION_BLOCKS_TEXTURE );
RenderHelper.disableStandardItemLighting();
RenderSystem.blendFunc( GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA );
RenderSystem.enableBlend();
GlStateManager.disableCull();
public void render(TileCrank te, float partialTicks, MatrixStack ms, IRenderTypeBuffer buffers, int combinedLightIn, int combinedOverlayIn) {
if( Minecraft.isAmbientOcclusionEnabled() )
{
GlStateManager.shadeModel( GL11.GL_SMOOTH );
}
else
{
GlStateManager.shadeModel( GL11.GL_FLAT );
}
BlockState blockState = te.getWorld().getBlockState( te.getPos() );
BlockRendererDispatcher dispatcher = Minecraft.getInstance().getBlockRendererDispatcher();
IBakedModel model = dispatcher.getModelForState( blockState );
BufferBuilder buffer = tessellator.getBuffer();
buffer.begin( GL11.GL_QUADS, DefaultVertexFormats.BLOCK );
// The translation ensures the vertex buffer positions are relative to 0,0,0 instead of the block pos
// This makes the translations that follow much easier
buffer.setTranslation( -te.getPos().getX(), -te.getPos().getY(), -te.getPos().getZ() );
dispatcher.getBlockModelRenderer().renderModel( te.getWorld(), model, blockState, te.getPos(), buffer, false );
buffer.setTranslation( 0, 0, 0 );
GlStateManager.pushMatrix();
GlStateManager.translate( x, y, z );
// Apply GL transformations relative to the center of the block: 1) TE rotation and 2) crank rotation
GlStateManager.translate( 0.5, 0.5, 0.5 );
FacingToRotation.get( te.getForward(), te.getUp() ).glRotateCurrentMat();
GlStateManager.rotate( te.getVisibleRotation(), 0, 1, 0 );
GlStateManager.translate( -0.5, -0.5, -0.5 );
ms.push();
ms.translate( 0.5, 0.5, 0.5 );
FacingToRotation.get( te.getForward(), te.getUp() ).push(ms);
ms.rotate( new Quaternion(0, te.getVisibleRotation(), 0, true) );
ms.translate( -0.5, -0.5, -0.5 );
tessellator.draw();
BlockState blockState = te.getWorld().getBlockState( te.getPos() ); // FIXME: i think world might be null here
BlockRendererDispatcher dispatcher = Minecraft.getInstance().getBlockRendererDispatcher();
IBakedModel model = dispatcher.getModelForState( blockState );
IVertexBuilder buffer = buffers.getBuffer(Atlases.getTranslucentBlockType());
dispatcher.getBlockModelRenderer().renderModelBrightnessColor(ms.getLast(), buffer, null, model, 1, 1, 1, combinedLightIn, combinedOverlayIn);
ms.pop();
GlStateManager.popMatrix();
RenderHelper.enableStandardItemLighting();
// // Most of this is blatantly copied from FastTESR
// Tessellator tessellator = Tessellator.getInstance();
// this.bindTexture( AtlasTexture.LOCATION_BLOCKS_TEXTURE );
// RenderHelper.disableStandardItemLighting();
// RenderSystem.blendFunc( GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA );
// RenderSystem.enableBlend();
// RenderSystem.disableCull();
//
// if( Minecraft.isAmbientOcclusionEnabled() )
// {
// GlStateManager.shadeModel( GL11.GL_SMOOTH );
// }
// else
// {
// GlStateManager.shadeModel( GL11.GL_FLAT );
// }
//
// BlockState blockState = te.getWorld().getBlockState( te.getPos() );
//
// BlockRendererDispatcher dispatcher = Minecraft.getInstance().getBlockRendererDispatcher();
// IBakedModel model = dispatcher.getModelForState( blockState );
//
// BufferBuilder buffer = tessellator.getBuffer();
// buffer.begin( GL11.GL_QUADS, DefaultVertexFormats.BLOCK );
//
// // The translation ensures the vertex buffer positions are relative to 0,0,0 instead of the block pos
// // This makes the translations that follow much easier
// buffer.setTranslation( -te.getPos().getX(), -te.getPos().getY(), -te.getPos().getZ() );
// dispatcher.getBlockModelRenderer().renderModel( te.getWorld(), model, blockState, te.getPos(), buffer, false );
// buffer.setTranslation( 0, 0, 0 );
//
// matrixStackIn.push();
// matrixStackIn.translate( x, y, z );
//
// // Apply GL transformations relative to the center of the block: 1) TE rotation and 2) crank rotation
// matrixStackIn.translate( 0.5, 0.5, 0.5 );
// FacingToRotation.get( te.getForward(), te.getUp() ).push(matrixStack);
// matrixStackIn.rotate( te.getVisibleRotation(), 0, 1, 0 );
// matrixStackIn.translate( -0.5, -0.5, -0.5 );
//
// tessellator.draw();
//
// matrixStackIn.pop();
//
// RenderHelper.enableStandardItemLighting();
}
}
@@ -47,7 +47,7 @@ public final class InscriberTESR extends TileEntityRenderer<TileInscriber>
GlStateManager.pushMatrix();
GlStateManager.translate( x, y, z );
GlStateManager.translate( 0.5F, 0.5F, 0.5F );
FacingToRotation.get( tile.getForward(), tile.getUp() ).glRotateCurrentMat();
FacingToRotation.get( tile.getForward(), tile.getUp() ).push(matrixStack);
GlStateManager.translate( -0.5F, -0.5F, -0.5F );
RenderSystem.color4f( 1.0F, 1.0F, 1.0F, 1.0F );
@@ -57,7 +57,7 @@ public final class InscriberTESR extends TileEntityRenderer<TileInscriber>
// render sides of stamps
Minecraft mc = Minecraft.getInstance();
mc.renderEngine.bindTexture( TextureMap.LOCATION_BLOCKS_TEXTURE );
mc.renderEngine.bindTexture( AtlasTexture.LOCATION_BLOCKS_TEXTURE );
// << 20 | light << 4;
final int br = tile.getWorld().getCombinedLight( tile.getPos(), 0 );
@@ -51,7 +51,7 @@ public class ModularTESR<T extends AEBaseTile> extends TileEntityRenderer<T>
GlStateManager.pushMatrix();
GlStateManager.translate( x, y, z );
GlStateManager.translate( 0.5, 0.5, 0.5 );
FacingToRotation.get( te.getForward(), te.getUp() ).glRotateCurrentMat();
FacingToRotation.get( te.getForward(), te.getUp() ).push(matrixStackIn);
GlStateManager.translate( -0.5, -0.5, -0.5 );
for( Renderable renderable : this.renderables )
{