Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package io.github.hsyyid.starwarsbattlecraft.entities.vehicles.render;
- import com.google.common.base.Function;
- import net.minecraft.client.Minecraft;
- import net.minecraft.client.renderer.GlStateManager;
- import net.minecraft.client.renderer.Tessellator;
- import net.minecraft.client.renderer.WorldRenderer;
- import net.minecraft.client.renderer.block.model.BakedQuad;
- import net.minecraft.client.renderer.entity.Render;
- import net.minecraft.client.renderer.texture.TextureAtlasSprite;
- import net.minecraft.client.resources.model.IBakedModel;
- import net.minecraft.client.resources.model.ModelResourceLocation;
- import net.minecraft.entity.Entity;
- import net.minecraft.util.BlockPos;
- import net.minecraft.util.EnumFacing;
- import net.minecraft.util.ResourceLocation;
- import net.minecraft.world.World;
- import net.minecraftforge.client.model.Attributes;
- import net.minecraftforge.client.model.IModel;
- import net.minecraftforge.client.model.ModelLoaderRegistry;
- import net.minecraftforge.client.model.TRSRTransformation;
- import net.minecraftforge.fml.relauncher.Side;
- import net.minecraftforge.fml.relauncher.SideOnly;
- import java.util.List;
- @SideOnly(Side.CLIENT)
- public class RenderEntityATAT extends Render
- {
- private static final ModelResourceLocation model = new ModelResourceLocation("starwars:entity/vehicles/ATAT.obj");
- public RenderEntityATAT()
- {
- super(Minecraft.getMinecraft().getRenderManager());
- this.shadowSize = 0.5F;
- }
- @Override
- protected ResourceLocation getEntityTexture(Entity entity)
- {
- return null;
- }
- Function<ResourceLocation, TextureAtlasSprite> textureGetter = new Function<ResourceLocation, TextureAtlasSprite>()
- {
- public TextureAtlasSprite apply(ResourceLocation location)
- {
- return Minecraft.getMinecraft().getTextureMapBlocks().getAtlasSprite(location.toString());
- }
- };
- @Override
- public void doRender(Entity entity, double posX, double posY, double posZ, float yaw, float partialTicks)
- {
- try
- {
- IModel imodel = ModelLoaderRegistry.getModel(model);
- IBakedModel bakedModel = imodel.bake((TRSRTransformation.identity()), Attributes.DEFAULT_BAKED_FORMAT, textureGetter);
- World world = entity.worldObj;
- BlockPos blockpos = new BlockPos(entity);
- Tessellator tessellator = Tessellator.getInstance();
- WorldRenderer worldrenderer = tessellator.getWorldRenderer();
- GlStateManager.pushMatrix();
- {
- GlStateManager.translate((float) posX + 1.25F, (float) posY + 0.52F, (float) posZ + 0.25F);
- worldrenderer.startDrawingQuads();
- List<BakedQuad> generalQuads = bakedModel.getGeneralQuads();
- for (BakedQuad q : generalQuads)
- {
- int[] vd = q.getVertexData();
- worldrenderer.setVertexFormat(Attributes.DEFAULT_BAKED_FORMAT);
- worldrenderer.addVertexData(vd);
- }
- for (EnumFacing face : EnumFacing.values())
- {
- List<BakedQuad> faceQuads =
- bakedModel.getFaceQuads(face);
- for (BakedQuad q : faceQuads)
- {
- int[] vd = q.getVertexData();
- worldrenderer.setVertexFormat(Attributes.DEFAULT_BAKED_FORMAT);
- worldrenderer.addVertexData(vd);
- }
- }
- tessellator.draw();
- }
- GlStateManager.popMatrix();
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- super.doRender(entity, posX, posY, posZ, yaw, partialTicks);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement