Jump to content

Kevqn

Members
  • Posts

    1
  • Joined

  • Last visited

Everything posted by Kevqn

  1. NOTE: WHAT I HAVE IN MY CODE SO FAR IS AT THE BOTTOM OF THE PAGE So basically I'm trying to make a tamable entity in singleplayer, render as a dragon, if that makes any sense. I've gotten the basic idea around it complete but there's a lot of bugs. I'm not trying to get the tamable entity to fly, just trying to replace an entity with a dragon One problem is i can't get the wings to "flap" properly, i'm not trying to make the entity fly, but i just want the dragon model to have a flapping animation, but it just glitches out for me. If anyone can help please do. Another problem is I can't get the dragon to follow the direction of the player when the player is riding it. For example: Me as a player is facing west or east, so is the dragon model, however when i face south or north, the dragon model doesn't look that direction. Here's some screenshots: Facing west, dragon is facing west Facing North, Dragon isn't Here's the code for rendering the dragon @SideOnly(Side.CLIENT) @SubscribeEvent public void onRender(final RenderLivingEvent.Pre event) { if (event.entity instanceof EntityHorse && this.dragon) { final EntityPig entity = (EntityPig)event.entity; final EntityDragon dragon = new EntityDragon(entity.getEntityWorld()); final float partialTicks = Animation.getPartialTickTime(); dragon.distanceWalkedModified = entity.distanceWalkedModified; dragon.distanceWalkedOnStepModified = entity.distanceWalkedOnStepModified; dragon.swingProgress = entity.swingProgress; dragon.prevSwingProgress = entity.prevSwingProgress; dragon.ticksExisted = 1; dragon.posX = entity.posX; dragon.lastTickPosX = entity.lastTickPosX; dragon.posY = entity.posY; dragon.lastTickPosY = entity.lastTickPosY; dragon.posZ = entity.posZ; dragon.lastTickPosZ = entity.lastTickPosZ; dragon.rotationPitch = entity.rotationPitch; dragon.prevRotationPitch = entity.prevRotationPitch; dragon.rotationYaw = entity.rotationYaw; dragon.prevRotationYaw = entity.prevRotationYaw; dragon.renderYawOffset = entity.renderYawOffset; dragon.prevRenderYawOffset = entity.prevRenderYawOffset; dragon.rotationYawHead = entity.rotationYawHead; dragon.prevRotationYawHead = entity.prevRotationYawHead; dragon.limbSwing = entity.limbSwing; dragon.limbSwingAmount = entity.limbSwingAmount; dragon.prevLimbSwingAmount = entity.prevLimbSwingAmount; dragon.swingProgress = entity.swingProgress; dragon.isAirBorne = true; dragon.moveStrafing = entity.moveStrafing; dragon.moveForward = entity.moveForward; dragon.swingProgressInt = entity.swingProgressInt; dragon.prevAnimTime = dragon.animTime; dragon.renderYawOffset = dragon.rotationYaw; final EntityDragonPart dragonPartHead = dragon.dragonPartHead; final EntityDragonPart dragonPartHead2 = dragon.dragonPartHead; final float n = 3.0f; dragonPartHead2.height = 3.0f; dragonPartHead.width = 3.0f; final EntityDragonPart dragonPartTail1 = dragon.dragonPartTail1; final EntityDragonPart dragonPartTail2 = dragon.dragonPartTail1; final float n2 = 2.0f; dragonPartTail2.height = 2.0f; dragonPartTail1.width = 2.0f; final EntityDragonPart dragonPartTail3 = dragon.dragonPartTail2; final EntityDragonPart dragonPartTail4 = dragon.dragonPartTail2; final float n3 = 2.0f; dragonPartTail4.height = 2.0f; dragonPartTail3.width = 2.0f; final EntityDragonPart dragonPartTail5 = dragon.dragonPartTail3; final EntityDragonPart dragonPartTail6 = dragon.dragonPartTail3; final float n4 = 2.0f; dragonPartTail6.height = 2.0f; dragonPartTail5.width = 2.0f; dragon.dragonPartBody.height = 3.0f; dragon.dragonPartBody.width = 5.0f; dragon.dragonPartWing1.height = 2.0f; dragon.dragonPartWing1.width = 4.0f; dragon.dragonPartWing2.height = 3.0f; dragon.dragonPartWing2.width = 4.0f; // final float f2 = 0.0f; float f3 = 0.03f / (MathHelper.sqrt_double(dragon.motionX * dragon.motionX + dragon.motionZ * dragon.motionZ) * 10.0f + 1.0f); f3 *= (float)Math.pow(0.05, dragon.motionY); if (dragon.slowed) { final EntityDragon entityDragon4; final EntityDragon entityDragon7; final EntityDragon entityDragon3 = entityDragon7 = (entityDragon4 = dragon); entityDragon7.animTime += f3 * 0.0f; } else { final EntityDragon entityDragon6; final EntityDragon entityDragon8; final EntityDragon entityDragon5 = entityDragon8 = (entityDragon6 = dragon); entityDragon8.animTime += f3; } for (int i = 0; i < dragon.ringBuffer.length; ++i) { dragon.ringBuffer[i][0] = -dragon.rotationYaw; dragon.ringBuffer[i][1] = -dragon.posY; } final float rotation = 0.0f; GL11.glPushMatrix(); final float baseRotation = dragon.renderYawOffset - dragon.prevRenderYawOffset * partialTicks + dragon.prevRenderYawOffset; final RenderManager renderManager = Minecraft.getMinecraft().getRenderManager(); // GL11.glScalef(0.4f, 0.4f, 0.4f); renderManager.renderEntitySimple((Entity)dragon, partialTicks); final double x = entity.lastTickPosX + (entity.posX - entity.lastTickPosX) * partialTicks - renderManager.viewerPosX; final double y = entity.lastTickPosY + (entity.posY - entity.lastTickPosY) * partialTicks - renderManager.viewerPosY; final double z = entity.lastTickPosZ + (entity.posZ - entity.lastTickPosZ) * partialTicks - renderManager.viewerPosZ; event.renderer.renderName((EntityLivingBase)entity, x, y, z); event.setCanceled(true); } }
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.