Program: 178412
Project: 178412
Buggy source:
@Override public void onUpdate(){
  super.onUpdate();
  if (_damage > 0)   _damage--;
  timeSinceHit-=deltaTime;
  missileDelay-=deltaTime;
  rocketDelay-=deltaTime;
  rocketReload-=deltaTime;
  Minecraft minecraft=ModLoader.getMinecraftInstance();
  EntityPlayer pilot=getPilot();
  if (pilot != null) {
    if (pilot.isDead)     riddenByEntity=null;
    if (onGround) {
      if (Math.abs(rotationPitch) > .1f)       rotationPitch*=.70f;
      if (Math.abs(rotationRoll) > .1f)       rotationRoll*=.70f;
      motionX*=FRICTION;
      motionY=0.0;
      motionZ*=FRICTION;
    }
 else     if (inWater) {
      if (Math.abs(rotationPitch) > .1f)       rotationPitch*=.70f;
      if (Math.abs(rotationRoll) > .1f)       rotationRoll*=.70f;
      motionX*=.7;
      motionY*=.7;
      motionZ*=.7;
      motionY+=0.02;
    }
 else {
      if (ENABLE_LOOK_DOWN_TRANS) {
        if (pilot.rotationPitch > 60f) {
          ((ThxModelHelicopter)model).bottomVisible=false;
        }
 else {
          ((ThxModelHelicopter)model).bottomVisible=true;
        }
      }
    }
    toggleLookBackDelay-=deltaTime;
    if (Keyboard.isKeyDown(KEY_LOOK_BACK) && toggleLookBackDelay < 0f && !ENABLE_DRONE_MODE) {
      lookBack=!lookBack;
      toggleLookBack=true;
      toggleLookBackDelay=.5f;
    }
    hudDelay-=deltaTime;
    if (Keyboard.isKeyDown(KEY_HUD_MODE) && hudDelay < 0f && !ENABLE_DRONE_MODE) {
      hudDelay=.5f;
      if (model.visible) {
        model.visible=false;
        minecraft.ingameGUI.addChatMessage("String_Node_Str" + (int)posX + "String_Node_Str"+ (int)posZ+ "String_Node_Str"+ (int)posY);
        prevThirdPersonView=minecraft.gameSettings.thirdPersonView;
        minecraft.gameSettings.thirdPersonView=false;
      }
 else {
        model.visible=true;
        minecraft.gameSettings.thirdPersonView=prevThirdPersonView;
      }
    }
    if (minecraft.gameSettings.thirdPersonView)     model.visible=true;
    exitDelay-=deltaTime;
    if (Keyboard.isKeyDown(KEY_EXIT) && exitDelay < 0f) {
      exitDelay=1f;
      pilotExit();
    }
    if (Keyboard.isKeyDown(KEY_FIRE_ROCKET) && rocketDelay < 0f && rocketReload < 0f) {
      rocketCount++;
      rocketDelay=ROCKET_DELAY;
      float leftRight=(rocketCount % 2 == 0) ? 1.0f : -1.0f;
      float offsetX=side.x * leftRight + fwd.x * 2f;
      float offsetY=side.y * leftRight + fwd.y * 2f;
      float offsetZ=side.z * leftRight + fwd.z * 2f;
      float yaw=rotationYaw;
      float pitch=rotationPitch;
      if (ENABLE_PILOT_AIM && !ENABLE_DRONE_MODE) {
        yaw=pilot.rotationYaw;
        pitch=pilot.rotationPitch;
      }
      ThxEntityRocket newRocket=new ThxEntityRocket(this,posX + offsetX,posY + offsetY,posZ + offsetZ,motionX * MOMENTUM,motionY * MOMENTUM,motionZ * MOMENTUM,yaw,pitch);
      if (ENABLE_HEAVY_WEAPONS)       newRocket.enableHeavyWeapons=true;
      worldObj.entityJoinedWorld(newRocket);
      if (rocketCount == FULL_ROCKET_COUNT) {
        rocketReload=ROCKET_RELOAD;
        rocketCount=0;
      }
    }
    if (Keyboard.isKeyDown(KEY_FIRE_MISSILE) && missileDelay < 0f) {
      missileDelay=MISSILE_DELAY;
      float offX=fwd.x * 2f;
      float offY=fwd.y * 2f;
      float offZ=fwd.z * 2f;
      float yaw=rotationYaw;
      float pitch=rotationPitch;
      if (ENABLE_PILOT_AIM && !ENABLE_DRONE_MODE) {
        yaw=pilot.rotationYaw;
        pitch=pilot.rotationPitch;
      }
      ThxEntityMissile newMissile=new ThxEntityMissile(worldObj,posX + offX,posY + offY,posZ + offZ,motionX * MOMENTUM,motionY * MOMENTUM,motionZ * MOMENTUM,yaw,pitch);
      if (ENABLE_HEAVY_WEAPONS)       newMissile.enableHeavyWeapons=true;
      worldObj.entityJoinedWorld(newMissile);
    }
    if (ENABLE_LOOK_YAW && !ENABLE_DRONE_MODE) {
      float deltaYawDeg=rotationYaw - pilot.rotationYaw;
      if (lookBack)       deltaYawDeg+=180f;
      while (deltaYawDeg > 180f)       deltaYawDeg-=360f;
      while (deltaYawDeg < -180f)       deltaYawDeg+=360f;
      rotationYawSpeed=deltaYawDeg * TURN_SPEED_DEG;
      if (rotationYawSpeed > 90)       rotationYawSpeed=90;
      if (rotationYawSpeed < -90)       rotationYawSpeed=-90;
      rotationYaw+=rotationYawSpeed * deltaTime;
    }
 else {
      if (Keyboard.isKeyDown(KEY_ROTATE_LEFT)) {
        rotationYaw-=TURN_SPEED_DEG * deltaTime;
      }
      if (Keyboard.isKeyDown(KEY_ROTATE_RIGHT)) {
        rotationYaw+=TURN_SPEED_DEG * deltaTime;
      }
    }
    rotationYaw%=360f;
    if (ENABLE_LOOK_PITCH && !ENABLE_DRONE_MODE) {
      if (rotationPitch > MAX_PITCH) {
        rotationPitch=MAX_PITCH;
        rotationPitchSpeed=0f;
      }
 else {
        rotationPitchSpeed=pilot.rotationPitch - 20 - rotationPitch;
        rotationPitch+=rotationPitchSpeed * deltaTime;
      }
      if (rotationPitch > MAX_PITCH) {
        rotationPitch=MAX_PITCH;
        rotationPitchSpeed=0f;
      }
    }
 else {
      if (autoLevelDelay > 0) {
        autoLevelDelay-=deltaTime;
        if (Math.abs(rotationPitch) > 1f)         rotationPitch*=.8f;
 else         rotationPitch=0f;
        if (Math.abs(rotationRoll) > 1f)         rotationRoll*=.8f;
 else         rotationRoll=0f;
      }
 else       if (Keyboard.isKeyDown(KEY_AUTO_LEVEL)) {
        autoLevelDelay=1f;
      }
 else       if (Keyboard.isKeyDown(KEY_FORWARD)) {
        if (rotationPitch > MAX_PITCH) {
          rotationPitch=MAX_PITCH;
          rotationPitchSpeed=0f;
        }
 else {
          rotationPitchSpeed=PITCH_SPEED_DEG;
          rotationPitch+=rotationPitchSpeed * deltaTime;
        }
        if (rotationPitch > MAX_PITCH) {
          rotationPitch=MAX_PITCH;
          rotationPitchSpeed=0f;
        }
      }
 else       if (Keyboard.isKeyDown(KEY_BACK)) {
        if (rotationPitch < -MAX_PITCH) {
          rotationPitch=-MAX_PITCH;
          rotationPitchSpeed=0f;
        }
 else {
          rotationPitchSpeed=-PITCH_SPEED_DEG;
          rotationPitch+=rotationPitchSpeed * deltaTime;
        }
        if (rotationPitch < -MAX_PITCH) {
          rotationPitch=-MAX_PITCH;
          rotationPitchSpeed=0f;
        }
      }
 else {
        if (ENABLE_AUTO_LEVEL) {
          rotationPitchSpeed=-rotationPitch * .5f;
          rotationPitch+=rotationPitchSpeed * deltaTime;
        }
      }
    }
    if (Keyboard.isKeyDown(KEY_LEFT)) {
      if (rotationRoll > MAX_ROLL) {
        rotationRoll=MAX_ROLL;
        rotationRollSpeed=0f;
      }
 else {
        rotationRollSpeed=ROLL_SPEED_DEG;
        rotationRoll+=rotationRollSpeed * deltaTime;
      }
      if (rotationRoll > MAX_ROLL) {
        rotationRoll=MAX_ROLL;
        rotationRollSpeed=0f;
      }
    }
 else     if (Keyboard.isKeyDown(KEY_RIGHT)) {
      if (rotationRoll < -MAX_ROLL) {
        rotationRoll=-MAX_ROLL;
        rotationRollSpeed=0f;
      }
 else {
        rotationRollSpeed=-ROLL_SPEED_DEG;
        rotationRoll+=rotationRollSpeed * deltaTime;
      }
      if (rotationRoll < -MAX_ROLL) {
        rotationRoll=-MAX_ROLL;
        rotationRollSpeed=0f;
      }
    }
 else {
      rotationRollSpeed=-rotationRoll * .6f;
      rotationRoll+=rotationRollSpeed * deltaTime;
    }
    if (Keyboard.isKeyDown(KEY_ASCEND) || (Keyboard.isKeyDown(KEY_FORWARD) && ENABLE_LOOK_PITCH && !ENABLE_DRONE_MODE)) {
      if (throttle < THROTTLE_MAX)       throttle+=THROTTLE_INC;
      if (throttle > THROTTLE_MAX)       throttle=THROTTLE_MAX;
    }
 else     if (Keyboard.isKeyDown(KEY_DESCEND) || (Keyboard.isKeyDown(KEY_BACK) && ENABLE_LOOK_PITCH && !ENABLE_DRONE_MODE)) {
      if (throttle > THROTTLE_MIN)       throttle-=THROTTLE_INC;
      if (throttle < THROTTLE_MIN)       throttle=THROTTLE_MIN;
    }
 else {
      if (ENABLE_AUTO_THROTTLE_ZERO)       throttle*=.6;
    }
    ((ThxModelHelicopter)model).rotorSpeed=getThrottlePower() / 2f + .7f;
    ascendDescendLift: {
      thrust.y=MathHelper.cos(pitchRad) * MathHelper.cos(rollRad);
    }
    forwardBack: {
      float accel=1f - MathHelper.cos(pitchRad);
      if (pitchRad > 0f)       accel*=-1f;
      thrust.x=-fwd.x * accel;
      thrust.z=-fwd.z * accel;
    }
    strafeLeftRight: {
      float strafe=1f - MathHelper.cos(rollRad);
      if (rollRad > 0f)       strafe*=-1f;
      thrust.x-=fwd.z * strafe;
      thrust.z+=fwd.x * strafe;
    }
    velocity.set((float)motionX,(float)motionY,(float)motionZ);
    velocity.scale(FRICTION);
    thrust.normalise().scale(MAX_ACCEL * (1f + throttle) * dT);
    Vector3f.add(velocity,thrust,velocity);
    velocity.y-=GRAVITY * dT;
    if (velocity.lengthSquared() > MAX_VELOCITY * MAX_VELOCITY) {
      velocity.scale(MAX_VELOCITY / velocity.length());
    }
    motionX=velocity.x;
    motionY=velocity.y;
    motionZ=velocity.z;
  }
 else {
    model.visible=true;
    ((ThxModelHelicopter)model).rotorSpeed=0;
    ((ThxModelHelicopter)model).bottomVisible=true;
    if (onGround || inWater) {
      if (Math.abs(rotationPitch) > .1f)       rotationPitch*=.70f;
      if (Math.abs(rotationRoll) > .1f)       rotationRoll*=.70f;
      motionY=0.;
      motionX*=.7;
      motionZ*=.7;
      rotationYawSpeed=0f;
    }
 else {
      rotationPitch*=PITCH_RETURN;
      rotationRoll*=ROLL_RETURN;
      motionX*=FRICTION;
      motionY-=GRAVITY * .16f * dT;
      motionZ*=FRICTION;
    }
  }
  moveEntity(motionX,motionY,motionZ);
  if (isCollidedHorizontally || isCollidedVertically) {
    double velSq=motionX * motionX + motionY * motionY + motionZ * motionZ;
    if (velSq > .1) {
      log("String_Node_Str" + velSq);
      attackEntityFrom(this,1);
      motionX*=.5;
      motionY*=.5;
      motionZ*=.5;
    }
    isCollidedHorizontally=false;
    isCollidedVertically=false;
  }
}

Fixed version (ground truth):
@Override public void onUpdate(){
  super.onUpdate();
  if (_damage > 0)   _damage--;
  timeSinceHit-=deltaTime;
  missileDelay-=deltaTime;
  rocketDelay-=deltaTime;
  rocketReload-=deltaTime;
  Minecraft minecraft=ModLoader.getMinecraftInstance();
  EntityPlayer pilot=getPilot();
  if (pilot != null) {
    if (pilot.isDead)     riddenByEntity=null;
    if (onGround) {
      if (Math.abs(rotationPitch) > .1f)       rotationPitch*=.70f;
      if (Math.abs(rotationRoll) > .1f)       rotationRoll*=.70f;
      motionX*=FRICTION;
      motionY=0.0;
      motionZ*=FRICTION;
    }
 else     if (inWater) {
      if (Math.abs(rotationPitch) > .1f)       rotationPitch*=.70f;
      if (Math.abs(rotationRoll) > .1f)       rotationRoll*=.70f;
      motionX*=.7;
      motionY*=.7;
      motionZ*=.7;
      motionY+=0.02;
    }
 else {
      if (ENABLE_LOOK_DOWN_TRANS) {
        if (pilot.rotationPitch > 60f) {
          ((ThxModelHelicopter)model).bottomVisible=false;
        }
 else {
          ((ThxModelHelicopter)model).bottomVisible=true;
        }
      }
    }
    toggleLookBackDelay-=deltaTime;
    if (Keyboard.isKeyDown(KEY_LOOK_BACK) && toggleLookBackDelay < 0f && !ENABLE_DRONE_MODE && !ENABLE_LOOK_PITCH) {
      lookBack=!lookBack;
      toggleLookBack=true;
      toggleLookBackDelay=.5f;
    }
    hudDelay-=deltaTime;
    if (Keyboard.isKeyDown(KEY_HUD_MODE) && hudDelay < 0f && !ENABLE_DRONE_MODE) {
      hudDelay=.5f;
      if (model.visible) {
        model.visible=false;
        minecraft.ingameGUI.addChatMessage("String_Node_Str" + (int)posX + "String_Node_Str"+ (int)posZ+ "String_Node_Str"+ (int)posY);
        prevThirdPersonView=minecraft.gameSettings.thirdPersonView;
        minecraft.gameSettings.thirdPersonView=false;
      }
 else {
        model.visible=true;
        minecraft.gameSettings.thirdPersonView=prevThirdPersonView;
      }
    }
    if (minecraft.gameSettings.thirdPersonView)     model.visible=true;
    exitDelay-=deltaTime;
    if (Keyboard.isKeyDown(KEY_EXIT) && exitDelay < 0f) {
      exitDelay=1f;
      pilotExit();
    }
    if (Keyboard.isKeyDown(KEY_FIRE_ROCKET) && rocketDelay < 0f && rocketReload < 0f) {
      rocketCount++;
      rocketDelay=ROCKET_DELAY;
      float leftRight=(rocketCount % 2 == 0) ? 1.0f : -1.0f;
      float offsetX=side.x * leftRight + fwd.x * 2f;
      float offsetY=side.y * leftRight + fwd.y * 2f;
      float offsetZ=side.z * leftRight + fwd.z * 2f;
      float yaw=rotationYaw;
      float pitch=rotationPitch;
      if (ENABLE_PILOT_AIM && !ENABLE_DRONE_MODE) {
        yaw=pilot.rotationYaw;
        pitch=pilot.rotationPitch;
      }
      ThxEntityRocket newRocket=new ThxEntityRocket(this,posX + offsetX,posY + offsetY,posZ + offsetZ,motionX * MOMENTUM,motionY * MOMENTUM,motionZ * MOMENTUM,yaw,pitch);
      if (ENABLE_HEAVY_WEAPONS)       newRocket.enableHeavyWeapons=true;
      worldObj.entityJoinedWorld(newRocket);
      if (rocketCount == FULL_ROCKET_COUNT) {
        rocketReload=ROCKET_RELOAD;
        rocketCount=0;
      }
    }
    if (Keyboard.isKeyDown(KEY_FIRE_MISSILE) && missileDelay < 0f) {
      missileDelay=MISSILE_DELAY;
      float offX=fwd.x * 2f;
      float offY=fwd.y * 2f;
      float offZ=fwd.z * 2f;
      float yaw=rotationYaw;
      float pitch=rotationPitch;
      if (ENABLE_PILOT_AIM && !ENABLE_DRONE_MODE) {
        yaw=pilot.rotationYaw;
        pitch=pilot.rotationPitch;
      }
      ThxEntityMissile newMissile=new ThxEntityMissile(worldObj,posX + offX,posY + offY,posZ + offZ,motionX * MOMENTUM,motionY * MOMENTUM,motionZ * MOMENTUM,yaw,pitch);
      if (ENABLE_HEAVY_WEAPONS)       newMissile.enableHeavyWeapons=true;
      worldObj.entityJoinedWorld(newMissile);
    }
    if (ENABLE_LOOK_YAW && !ENABLE_DRONE_MODE) {
      float deltaYawDeg=rotationYaw - pilot.rotationYaw;
      if (lookBack)       deltaYawDeg+=180f;
      while (deltaYawDeg > 180f)       deltaYawDeg-=360f;
      while (deltaYawDeg < -180f)       deltaYawDeg+=360f;
      rotationYawSpeed=deltaYawDeg * TURN_SPEED_DEG;
      if (rotationYawSpeed > 90)       rotationYawSpeed=90;
      if (rotationYawSpeed < -90)       rotationYawSpeed=-90;
      rotationYaw+=rotationYawSpeed * deltaTime;
    }
 else {
      if (Keyboard.isKeyDown(KEY_ROTATE_LEFT)) {
        rotationYaw-=TURN_SPEED_DEG * deltaTime;
      }
      if (Keyboard.isKeyDown(KEY_ROTATE_RIGHT)) {
        rotationYaw+=TURN_SPEED_DEG * deltaTime;
      }
    }
    rotationYaw%=360f;
    if (ENABLE_LOOK_PITCH && !ENABLE_DRONE_MODE) {
      if (rotationPitch > MAX_PITCH) {
        rotationPitch=MAX_PITCH;
        rotationPitchSpeed=0f;
      }
 else       if (rotationPitch < -MAX_PITCH) {
        rotationPitch=-MAX_PITCH;
        rotationPitchSpeed=0f;
      }
 else {
        rotationPitchSpeed=4f * (pilot.rotationPitch - rotationPitch - 20f);
        rotationPitch+=rotationPitchSpeed * deltaTime;
      }
      if (rotationPitch > MAX_PITCH) {
        rotationPitch=MAX_PITCH;
        rotationPitchSpeed=0f;
      }
 else       if (rotationPitch < -MAX_PITCH) {
        rotationPitch=-MAX_PITCH;
        rotationPitchSpeed=0f;
      }
    }
 else {
      if (autoLevelDelay > 0) {
        autoLevelDelay-=deltaTime;
        if (Math.abs(rotationPitch) > 1f)         rotationPitch*=.8f;
 else         rotationPitch=0f;
        if (Math.abs(rotationRoll) > 1f)         rotationRoll*=.8f;
 else         rotationRoll=0f;
      }
 else       if (Keyboard.isKeyDown(KEY_AUTO_LEVEL)) {
        autoLevelDelay=1f;
      }
 else       if (Keyboard.isKeyDown(KEY_FORWARD)) {
        if (rotationPitch > MAX_PITCH) {
          rotationPitch=MAX_PITCH;
          rotationPitchSpeed=0f;
        }
 else {
          rotationPitchSpeed=PITCH_SPEED_DEG;
          rotationPitch+=rotationPitchSpeed * deltaTime;
        }
        if (rotationPitch > MAX_PITCH) {
          rotationPitch=MAX_PITCH;
          rotationPitchSpeed=0f;
        }
      }
 else       if (Keyboard.isKeyDown(KEY_BACK)) {
        if (rotationPitch < -MAX_PITCH) {
          rotationPitch=-MAX_PITCH;
          rotationPitchSpeed=0f;
        }
 else {
          rotationPitchSpeed=-PITCH_SPEED_DEG;
          rotationPitch+=rotationPitchSpeed * deltaTime;
        }
        if (rotationPitch < -MAX_PITCH) {
          rotationPitch=-MAX_PITCH;
          rotationPitchSpeed=0f;
        }
      }
 else {
        if (ENABLE_AUTO_LEVEL) {
          rotationPitchSpeed=-rotationPitch * .5f;
          rotationPitch+=rotationPitchSpeed * deltaTime;
        }
      }
    }
    if (Keyboard.isKeyDown(KEY_LEFT)) {
      if (rotationRoll > MAX_ROLL) {
        rotationRoll=MAX_ROLL;
        rotationRollSpeed=0f;
      }
 else {
        rotationRollSpeed=ROLL_SPEED_DEG;
        rotationRoll+=rotationRollSpeed * deltaTime;
      }
      if (rotationRoll > MAX_ROLL) {
        rotationRoll=MAX_ROLL;
        rotationRollSpeed=0f;
      }
    }
 else     if (Keyboard.isKeyDown(KEY_RIGHT)) {
      if (rotationRoll < -MAX_ROLL) {
        rotationRoll=-MAX_ROLL;
        rotationRollSpeed=0f;
      }
 else {
        rotationRollSpeed=-ROLL_SPEED_DEG;
        rotationRoll+=rotationRollSpeed * deltaTime;
      }
      if (rotationRoll < -MAX_ROLL) {
        rotationRoll=-MAX_ROLL;
        rotationRollSpeed=0f;
      }
    }
 else {
      rotationRollSpeed=-rotationRoll * .6f;
      rotationRoll+=rotationRollSpeed * deltaTime;
    }
    if (Keyboard.isKeyDown(KEY_ASCEND) || (Keyboard.isKeyDown(KEY_FORWARD) && ENABLE_LOOK_PITCH && !ENABLE_DRONE_MODE)) {
      if (throttle < THROTTLE_MAX)       throttle+=THROTTLE_INC;
      if (throttle > THROTTLE_MAX)       throttle=THROTTLE_MAX;
    }
 else     if (Keyboard.isKeyDown(KEY_DESCEND) || (Keyboard.isKeyDown(KEY_BACK) && ENABLE_LOOK_PITCH && !ENABLE_DRONE_MODE)) {
      if (throttle > THROTTLE_MIN)       throttle-=THROTTLE_INC;
      if (throttle < THROTTLE_MIN)       throttle=THROTTLE_MIN;
    }
 else {
      if (ENABLE_AUTO_THROTTLE_ZERO)       throttle*=.6;
    }
    ((ThxModelHelicopter)model).rotorSpeed=getThrottlePower() / 2f + .7f;
    ascendDescendLift: {
      thrust.y=MathHelper.cos(pitchRad) * MathHelper.cos(rollRad);
    }
    forwardBack: {
      float accel=1f - MathHelper.cos(pitchRad);
      if (pitchRad > 0f)       accel*=-1f;
      thrust.x=-fwd.x * accel;
      thrust.z=-fwd.z * accel;
    }
    strafeLeftRight: {
      float strafe=1f - MathHelper.cos(rollRad);
      if (rollRad > 0f)       strafe*=-1f;
      thrust.x-=fwd.z * strafe;
      thrust.z+=fwd.x * strafe;
    }
    velocity.set((float)motionX,(float)motionY,(float)motionZ);
    velocity.scale(FRICTION);
    thrust.normalise().scale(MAX_ACCEL * (1f + throttle) * dT);
    Vector3f.add(velocity,thrust,velocity);
    velocity.y-=GRAVITY * dT;
    if (velocity.lengthSquared() > MAX_VELOCITY * MAX_VELOCITY) {
      velocity.scale(MAX_VELOCITY / velocity.length());
    }
    motionX=velocity.x;
    motionY=velocity.y;
    motionZ=velocity.z;
  }
 else {
    model.visible=true;
    ((ThxModelHelicopter)model).rotorSpeed=0;
    ((ThxModelHelicopter)model).bottomVisible=true;
    if (onGround || inWater) {
      if (Math.abs(rotationPitch) > .1f)       rotationPitch*=.70f;
      if (Math.abs(rotationRoll) > .1f)       rotationRoll*=.70f;
      motionY=0.;
      motionX*=.7;
      motionZ*=.7;
      rotationYawSpeed=0f;
    }
 else {
      rotationPitch*=PITCH_RETURN;
      rotationRoll*=ROLL_RETURN;
      motionX*=FRICTION;
      motionY-=GRAVITY * .16f * dT;
      motionZ*=FRICTION;
    }
  }
  moveEntity(motionX,motionY,motionZ);
  if (isCollidedHorizontally || isCollidedVertically) {
    double velSq=motionX * motionX + motionY * motionY + motionZ * motionZ;
    if (velSq > .1) {
      log("String_Node_Str" + velSq);
      attackEntityFrom(this,1);
      motionX*=.5;
      motionY*=.5;
      motionZ*=.5;
    }
    isCollidedHorizontally=false;
    isCollidedVertically=false;
  }
}