Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ru.batthert.client.render;
- import java.util.Random;
- import org.lwjgl.input.Mouse;
- import org.lwjgl.opengl.GL11;
- import cpw.mods.fml.client.FMLClientHandler;
- import net.minecraft.client.Minecraft;
- import net.minecraft.entity.player.EntityPlayer;
- import net.minecraft.item.ItemStack;
- import net.minecraft.util.MathHelper;
- import net.minecraft.util.ResourceLocation;
- import net.minecraftforge.client.IItemRenderer;
- import net.minecraftforge.client.model.AdvancedModelLoader;
- import net.minecraftforge.client.model.IModelCustom;
- import ru.batthert.client.render.models.ModelHand;
- import ru.batthert.client.render.models.Shoot;
- import ru.batthert.common.ModBase;
- import ru.batthert.common.items.ItemWeapon;
- public class TestGunRender implements IItemRenderer {
- public static final IModelCustom model = AdvancedModelLoader.loadModel(new ResourceLocation("batmod", "models/aug.obj"));
- public static final ResourceLocation tex = new ResourceLocation("batmod", "textures/models/aug.png");
- public static final ResourceLocation shoot1 = new ResourceLocation("batmod", "textures/shoot1.png");
- public static final ResourceLocation shoot2 = new ResourceLocation("batmod", "textures/shoot2.png");
- public static final ResourceLocation shoot3 = new ResourceLocation("batmod", "textures/shoot3.png");
- public static final ResourceLocation shoot4 = new ResourceLocation("batmod", "textures/shoot4.png");
- Shoot shoot = new Shoot();
- private static ModelHand model1;
- public ItemWeapon weapon;
- public static boolean aiming;
- public boolean shooting;
- Random rand = new Random();
- int progress = 0;
- public static float smoothing;
- public static final Integer MAX_AIMING_TIMER = 5;
- public static float runProgress = 0F, lastRunProgress = 0F;
- public static float run1Progress = 0F, lastRun1Progress = 0F;
- public static float run2Progress = 0F, lastRun2Progress = 0F;
- public TestGunRender() {
- model1 = new ModelHand();
- }
- float f5;
- public float aimSpeed = 0;
- public boolean handleRenderType(ItemStack is, ItemRenderType type) {
- switch (type) {
- case ENTITY:
- return true;
- case EQUIPPED:
- return true;
- case EQUIPPED_FIRST_PERSON:
- return true;
- default:
- return false;
- }
- }
- public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack is, ItemRendererHelper helper) {
- return true;
- }
- public void renderItem(ItemRenderType type, ItemStack is, Object ... data) {
- EntityPlayer player = Minecraft.getMinecraft().thePlayer;
- int shootTimer = ItemWeapon.otdachaTimer;
- ItemWeapon weapon = null;
- float shotDelay = 0;
- Minecraft mc = Minecraft.getMinecraft();
- int i;
- if ((FMLClientHandler.instance().getClientPlayerEntity().inventory
- .getCurrentItem() != null)
- && (FMLClientHandler.instance().getClientPlayerEntity().inventory
- .getCurrentItem().getItem() instanceof ItemWeapon)
- && (Mouse.isButtonDown(1))
- && (!FMLClientHandler.instance().getClientPlayerEntity()
- .isSprinting() && (FMLClientHandler.instance()
- .getClient().currentScreen == null))) {
- aiming = true;
- } else {
- aiming = false;
- }
- lastRun1Progress = run1Progress;
- if(!FMLClientHandler.instance().getClientPlayerEntity()
- .isSprinting()){
- run1Progress *= 0.5F;
- }
- else{
- run1Progress = 1F - (1F - run1Progress) * 0.65F;
- }
- lastRunProgress = runProgress;
- if(!aiming){
- runProgress *= 0.8F;
- }
- else{
- runProgress = 1F - (1F - runProgress) * 0.65F;
- }
- lastRun2Progress = run2Progress;
- if(shootTimer == 1){
- run2Progress *= 0.5F;
- }
- else{
- run2Progress = 1F - (1F - run2Progress) * 0.5F;
- }
- //анимация прицеливания
- float runSwitch = this.lastRunProgress + (this.runProgress - this.lastRunProgress);
- //анимация бега
- float run1Switch = this.lastRun1Progress + (this.run1Progress - this.lastRun1Progress);
- //анимация выстрела
- float run2Switch = this.lastRun2Progress + (this.run2Progress - this.lastRun2Progress);
- switch (type) {
- case EQUIPPED_FIRST_PERSON: {
- GL11.glPushMatrix();
- GL11.glScalef(1, 1, 1);
- if(aiming)
- GL11.glTranslatef(-0.105F * runSwitch, 1.53F * runSwitch, -0.85F * runSwitch);
- else
- GL11.glTranslatef(0.445F, 1.41F, -0.85F);
- GL11.glRotatef(-35, 0.0F, 1.0F, 0.0F);
- if(shootTimer == 1){
- i = this.rand.nextInt(3);
- if(i == 0) {
- mc.renderEngine.bindTexture(shoot1);
- this.shoot.render();
- } else if(i == 1) {
- mc.renderEngine.bindTexture(shoot2);
- this.shoot.render();
- } else if(i == 2) {
- mc.renderEngine.bindTexture(shoot3);
- this.shoot.render();
- } else {
- mc.renderEngine.bindTexture(shoot4);
- this.shoot.render();
- }
- }
- GL11.glPopMatrix();
- GL11.glPushMatrix();
- GL11.glEnable(3042);
- GL11.glBlendFunc(770, 771);
- GL11.glTranslatef(-0.75F, 0.95F, 0.4F);
- GL11.glRotatef(0.0F, 0.0F, 0.0F, 1.0F);
- GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F);
- GL11.glRotatef(0.0F, 1.0F, 0.0F, 0.0F);
- GL11.glScalef(0.032F, 0.032F, 0.032F);
- GL11.glRotatef(45.0F * run1Switch, 0.0F, 1.0F, 0.0F);
- GL11.glTranslatef(5F * run1Switch, 0F, -15F * run1Switch);
- GL11.glTranslatef(1F * run2Switch, 0F, 0F);
- //GL11.glTranslatef(-0.35F / 0.032F, 0.09F / 0.032F, -0.46F / 0.032F);
- GL11.glTranslatef(-12.02F * runSwitch, 2.75F * runSwitch, -14.38F * runSwitch);
- Minecraft.getMinecraft().renderEngine.bindTexture(tex);
- model.renderAll();
- GL11.glDisable(3042);
- GL11.glPopMatrix();
- if(type == ItemRenderType.EQUIPPED) {
- GL11.glPushMatrix();
- GL11.glEnable(3042);
- GL11.glBlendFunc(770, 771);
- GL11.glTranslatef(-0.52F, 1.22F, 0.5F);
- GL11.glRotatef(0.0F, 0.0F, 0.0F, 1.0F);
- GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F);
- GL11.glRotatef(0.0F, 1.0F, 0.0F, 0.0F);
- GL11.glScaled(0.065D, 0.065D, 0.075D);
- Minecraft.getMinecraft().renderEngine.bindTexture(tex);
- model.renderAll();
- GL11.glDisable(3042);
- GL11.glPopMatrix();
- }
- }
- break;
- case EQUIPPED: {
- GL11.glPushMatrix();
- GL11.glEnable(3042);
- GL11.glBlendFunc(770, 771);
- GL11.glTranslatef(1.0F, 0.4F, 1.0F);
- GL11.glRotatef(-105.0F, 0.0F, 0.0F, 1.0F);
- GL11.glRotatef(15.0F, 0.0F, 1.0F, 0.0F);
- GL11.glRotatef(-135.0F, 1.0F, 0.0F, 0.0F);
- GL11.glScalef(0.04F, 0.04F, 0.04F);
- Minecraft.getMinecraft().renderEngine.bindTexture(tex);
- model.renderAll();
- GL11.glDisable(3042);
- GL11.glPopMatrix();
- }
- break;
- case ENTITY: {
- GL11.glPushMatrix();
- GL11.glEnable(3042);
- GL11.glBlendFunc(770, 771);
- GL11.glTranslatef(0F, 0F, 0F);
- GL11.glRotatef(0.0F, 0.0F, 0.0F, 1.0F);
- GL11.glRotatef(0.0F, 0.0F, 1.0F, 0.0F);
- GL11.glRotatef(0.0F, 1.0F, 0.0F, 0.0F);
- GL11.glScaled(0.02D, 0.02D, 0.02D);
- Minecraft.getMinecraft().renderEngine.bindTexture(tex);
- model.renderAll();
- GL11.glDisable(3042);
- GL11.glPopMatrix();
- }
- break;
- default:
- break;
- }
- if(type == ItemRenderType.EQUIPPED_FIRST_PERSON) {
- GL11.glPushMatrix();
- GL11.glTranslatef(0.3F, 1.47F, -0.47F);
- GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F);
- GL11.glRotatef(-130.0F, 0.0F, 1.0F, 0.0F);
- GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F);
- GL11.glTranslatef(-0.35F, -2.1F, -0.3F);
- GL11.glScaled(1.0D, 1.0D, 1.0D);
- GL11.glRotatef(45.0F * run1Switch, 0.0F, 0.0F, 1.0F);
- GL11.glTranslatef(-0.08F * run1Switch, -0.5F * run1Switch, 0.02F * run1Switch);
- GL11.glTranslatef(0F, 0.02F * run2Switch, 0F);
- GL11.glTranslatef(-0.42F * runSwitch, 0.0F * runSwitch, 0.15F * runSwitch);
- Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation("textures/entity/steve.png"));
- model1.render_left();
- GL11.glPopMatrix();
- GL11.glPushMatrix();
- GL11.glTranslatef(0.65F, 1.38F, -0.8F);
- GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F);
- GL11.glRotatef(-105.0F, 0.0F, 1.0F, 0.0F);
- GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F);
- GL11.glTranslatef(0.9F, -2.55F, -0.15F);
- GL11.glScaled(1.0D, 1.9D, 1.0D);
- GL11.glRotatef(45.0F * run1Switch, 0.0F, 0F, 1.0F);
- GL11.glScaled(0.9D, 1.0D, 1D);
- GL11.glTranslatef(0.05F * run1Switch, 0.25F * run1Switch, -0.1F * run1Switch);
- GL11.glTranslatef(-0.02F * run2Switch, 0.02F * run2Switch, 0F);
- GL11.glTranslatef(-0.25F * runSwitch, 0.0F, -0.3F * runSwitch);
- GL11.glRotatef(25.0F * runSwitch, 0.0F, 0.0F, 1.0F);
- GL11.glRotatef(25.0F * runSwitch, 0.0F, 1.0F, 0.0F);
- GL11.glRotatef(25.0F * runSwitch, 1.0F, 0.0F, 0.0F);
- Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation("textures/entity/steve.png"));
- model1.render_right();
- GL11.glPopMatrix();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement