Package com.flansmod.common.vector

Examples of com.flansmod.common.vector.Vector3f


  {
    id = Integer.parseInt(split[1]);
    x = Integer.parseInt(split[2]);
    y = Integer.parseInt(split[3]);
    z = Integer.parseInt(split[4]);
    gunOrigin = new Vector3f(x, y, z);
    part = EnumDriveablePart.getPart(split[5]);
    if(split.length > 6)
    {
      minYaw = Float.parseFloat(split[6]);
      maxYaw = Float.parseFloat(split[7]);
View Full Code Here


   
    prevPosX = posX;
    prevPosY = posY;
    prevPosZ = posZ;
   
    Vector3f cameraPosition = new Vector3f();//-1F, 0.5F, 0F);
    //cameraPosition.scale(driveable.getDriveableType().cameraDistance);
    cameraPosition = driveable.axes.findLocalVectorGlobally(cameraPosition);
   
    //Lerp it
    double dX = driveable.posX + cameraPosition.x - posX;
View Full Code Here

      {
        looking = new RotatedAxes();
      }
      //DEBUG : Spawn particles along axes
     
      Vector3f xAxis = driveable.axes.findLocalAxesGlobally(looking).getXAxis();
      Vector3f yAxis = driveable.axes.findLocalAxesGlobally(looking).getYAxis();
      Vector3f zAxis = driveable.axes.findLocalAxesGlobally(looking).getZAxis();
      Vector3f yOffset = driveable.axes.findLocalVectorGlobally(new Vector3f(0F, riddenByEntity == null ? 0F : (float)riddenByEntity.getYOffset(), 0F));
      for(int i = 0; i < 10; i++)
      {
        //worldObj.spawnParticle("enchantmenttable",   posX + xAxis.x * i * 0.3D + yOffset.x, posY + xAxis.y * i * 0.3D + yOffset.y, posZ + xAxis.z * i * 0.3D + yOffset.z, 0, 0, 0);
        //worldObj.spawnParticle("smoke",       posX + yAxis.x * i * 0.3D + yOffset.x, posY + yAxis.y * i * 0.3D + yOffset.y, posZ + yAxis.z * i * 0.3D + yOffset.z, 0, 0, 0);
        //worldObj.spawnParticle("reddust",       posX + zAxis.x * i * 0.3D + yOffset.x, posY + zAxis.y * i * 0.3D + yOffset.y, posZ + zAxis.z * i * 0.3D + yOffset.z, 0, 0, 0);
View Full Code Here

   
    prevPlayerYaw = playerYaw;
    prevPlayerPitch = playerPitch;

    //Get the position of this seat on the driveable axes
    Vector3f localPosition = new Vector3f(seatInfo.x / 16F, seatInfo.y / 16F, seatInfo.z / 16F);
   
    //Rotate the offset vector by the turret yaw
    if(driveable != null && driveable.seats != null && driveable.seats[0] != null && driveable.seats[0].looking != null)
    {
      RotatedAxes yawOnlyLooking = new RotatedAxes(driveable.seats[0].looking.getYaw(), 0F, 0F);
      Vector3f rotatedOffset = yawOnlyLooking.findLocalVectorGlobally(seatInfo.rotatedOffset);
      Vector3f.add(localPosition, new Vector3f(rotatedOffset.x, 0F, rotatedOffset.z), localPosition);
    }
   
    //If this seat is connected to the turret, then its position vector on the driveable axes needs an extra rotation in it
    //if(driveable.rotateWithTurret(seatInfo) && driveable.seats[0] != null)
      //localPosition = driveable.seats[0].looking.findLocalVectorGlobally(localPosition);
    //Get the position of this seat globally, but positionally relative to the driveable
    Vector3f relativePosition = driveable.axes.findLocalVectorGlobally(localPosition);
    //Set the absol
    setPosition(driveable.posX + relativePosition.x, driveable.posY + relativePosition.y, driveable.posZ + relativePosition.z);
   
    if(riddenByEntity != null)
    {
View Full Code Here

          {
            ShootableType bullet = ((ItemShootable)bulletItemStack.getItem()).type;
            if(gun.isAmmo(bullet))
            {
              //Gun origin
              Vector3f gunOrigin = Vector3f.add(driveable.axes.findLocalVectorGlobally(seatInfo.gunOrigin), new Vector3f(driveable.posX, driveable.posY, driveable.posZ), null);
              //Calculate the look axes globally
              RotatedAxes globalLookAxes = driveable.axes.findLocalAxesGlobally(looking);
              Vector3f shootVec = driveable.axes.findLocalVectorGlobally(looking.getXAxis());
              //Calculate the origin of the bullets
              Vector3f yOffset = driveable.axes.findLocalVectorGlobally(new Vector3f(0F, (float)player.getMountedYOffset(), 0F));           
              //Spawn a new bullet item
              worldObj.spawnEntityInWorld(((ItemShootable)bulletItemStack.getItem()).getEntity(worldObj, Vector3f.add(yOffset, new Vector3f(gunOrigin.x, gunOrigin.y, gunOrigin.z), null), shootVec, (EntityLivingBase)riddenByEntity, gun.bulletSpread, gun.damage, gun.bulletSpeed, bulletItemStack.getItemDamage(), driveable.getDriveableType()));
              //Play the shoot sound
              if(soundDelay <= 0)
              {
                PacketPlaySound.sendSoundPacket(posX, posY, posZ, FlansMod.soundRange, dimension, gun.shootSound, false);
                soundDelay = gun.shootSoundLength;
View Full Code Here

    this.offset = offset;
  }
 
  public EntityDebugAABB(World w, Vector3f u, Vector3f v, int i, float r, float g, float b, float yaw, float pitch, float roll)
  {
    this(w, u, v, i, r, g, b, yaw, pitch, roll, new Vector3f());
  }
View Full Code Here

    initPosition();
  }
 
  public void initPosition()
  {
    Vector3f wheelVector = vehicle.axes.findLocalVectorGlobally(vehicle.getDriveableType().wheelPositions[ID].position);
    setPosition(vehicle.posX + wheelVector.x, vehicle.posY + wheelVector.y, vehicle.posZ + wheelVector.z);
    stepHeight = vehicle.getDriveableType().wheelStepHeight;
   
    prevPosX = posX;
    prevPosY = posY;
View Full Code Here

      //Melee weapon
      if(data.meleeLength > 0 && type.meleePath.size() > 0 && player.inventory.getCurrentItem() == itemstack)
      {
        for(int k = 0; k < type.meleeDamagePoints.size(); k++)
        {
          Vector3f meleeDamagePoint = type.meleeDamagePoints.get(k);
          //Do a raytrace from the prev pos to the current pos and attack anything in the way
          Vector3f nextPos = type.meleePath.get((data.meleeProgress + 1) % type.meleePath.size());
          Vector3f nextAngles = type.meleePathAngles.get((data.meleeProgress + 1) % type.meleePathAngles.size());
          RotatedAxes nextAxes = new RotatedAxes().rotateGlobalRoll(-nextAngles.x).rotateGlobalPitch(-nextAngles.z).rotateGlobalYaw(-nextAngles.y);
         
          Vector3f nextPosInGunCoords = nextAxes.findLocalVectorGlobally(meleeDamagePoint);
          Vector3f.add(nextPos, nextPosInGunCoords, nextPosInGunCoords);
          Vector3f.add(new Vector3f(0F, 0F, 0F), nextPosInGunCoords, nextPosInGunCoords);
          Vector3f nextPosInPlayerCoords = new RotatedAxes(player.rotationYaw + 90F, player.rotationPitch, 0F).findLocalVectorGlobally(nextPosInGunCoords);
         
         
          if(!FlansMod.proxy.isThePlayer(player))
            nextPosInPlayerCoords.y += 1.6F;
         
          Vector3f nextPosInWorldCoords = new Vector3f(player.posX + nextPosInPlayerCoords.x, player.posY + nextPosInPlayerCoords.y, player.posZ + nextPosInPlayerCoords.z);
         
          Vector3f dPos = data.lastMeleePositions[k] == null ? new Vector3f() : Vector3f.sub(nextPosInWorldCoords, data.lastMeleePositions[k], null);
         
          if(player.worldObj.isRemote && FlansMod.DEBUG)
            player.worldObj.spawnEntityInWorld(new EntityDebugVector(player.worldObj, data.lastMeleePositions[k], dPos, 200, 1F, 0F, 0F));
         
          //Do the raytrace
          {
            //Create a list for all bullet hits
            ArrayList<BulletHit> hits = new ArrayList<BulletHit>();
                   
            //Iterate over all entities
            for(int j = 0; j < world.loadedEntityList.size(); j++)
            {
              Object obj = world.loadedEntityList.get(j);
              //Get players
              if(obj instanceof EntityPlayer)
              {
                EntityPlayer otherPlayer = (EntityPlayer)obj;
                PlayerData otherData = PlayerHandler.getPlayerData(otherPlayer);
                boolean shouldDoNormalHitDetect = false;
                if(otherPlayer == player)
                  continue;
                if(otherData != null)
                {
                  if(otherPlayer.isDead || otherData.team == Team.spectators)
                  {
                    continue;
                  }
                  int snapshotToTry = player instanceof EntityPlayerMP ? ((EntityPlayerMP)player).ping / 50 : 0;
                  if(snapshotToTry >= otherData.snapshots.length)
                    snapshotToTry = otherData.snapshots.length - 1;
                 
                  PlayerSnapshot snapshot = otherData.snapshots[snapshotToTry];
                  if(snapshot == null)
                    snapshot = otherData.snapshots[0];
                 
                  //DEBUG
                  //snapshot = new PlayerSnapshot(player);
                 
                  //Check one last time for a null snapshot. If this is the case, fall back to normal hit detection
                  if(snapshot == null)
                    shouldDoNormalHitDetect = true;
                  else
                  {
                    //Raytrace
                    ArrayList<BulletHit> playerHits = snapshot.raytrace(data.lastMeleePositions[k] == null ? nextPosInWorldCoords : data.lastMeleePositions[k], dPos);
                    hits.addAll(playerHits);
                  }
                }
               
                //If we couldn't get a snapshot, use normal entity hitbox calculations
                if(otherData == null || shouldDoNormalHitDetect)
                {
                  MovingObjectPosition mop = data.lastMeleePositions[k] == null ? player.boundingBox.calculateIntercept(nextPosInWorldCoords.toVec3(), Vec3.createVectorHelper(0F, 0F, 0F)) : player.boundingBox.calculateIntercept(data.lastMeleePositions[k].toVec3(), nextPosInWorldCoords.toVec3());
                  if(mop != null)
                  {
                    Vector3f hitPoint = new Vector3f(mop.hitVec.xCoord - data.lastMeleePositions[k].x, mop.hitVec.yCoord - data.lastMeleePositions[k].y, mop.hitVec.zCoord - data.lastMeleePositions[k].z);
                    float hitLambda = 1F;
                    if(dPos.x != 0F)
                      hitLambda = hitPoint.x / dPos.x;
                    else if(dPos.y != 0F)
                      hitLambda = hitPoint.y / dPos.y;
                    else if(dPos.z != 0F)
                      hitLambda = hitPoint.z / dPos.z;
                    if(hitLambda < 0)
                      hitLambda = -hitLambda;
                   
                    hits.add(new PlayerBulletHit(new PlayerHitbox(otherPlayer, new RotatedAxes(), new Vector3f(), new Vector3f(), new Vector3f(), EnumHitboxType.BODY), hitLambda));
                  }
                }
              }
              else
              {
                Entity entity = (Entity)obj;
                if(entity != player && !entity.isDead && (entity instanceof EntityLivingBase || entity instanceof EntityAAGun))
                {
                  MovingObjectPosition mop = entity.boundingBox.calculateIntercept(data.lastMeleePositions[k].toVec3(), nextPosInWorldCoords.toVec3());
                  if(mop != null)
                  {
                    Vector3f hitPoint = new Vector3f(mop.hitVec.xCoord - data.lastMeleePositions[k].x, mop.hitVec.yCoord - data.lastMeleePositions[k].y, mop.hitVec.zCoord - data.lastMeleePositions[k].z);
                    float hitLambda = 1F;
                    if(dPos.x != 0F)
                      hitLambda = hitPoint.x / dPos.x;
                    else if(dPos.y != 0F)
                      hitLambda = hitPoint.y / dPos.y;
                    else if(dPos.z != 0F)
                      hitLambda = hitPoint.z / dPos.z;
                    if(hitLambda < 0)
                      hitLambda = -hitLambda;
                   
                    hits.add(new EntityHit(entity, hitLambda));
                  }
                }
              }
            }
           
            //We hit something
            if(!hits.isEmpty())
            {
              //Sort the hits according to the intercept position
              Collections.sort(hits);
             
              float swingDistance = dPos.length();
             
              for(BulletHit bulletHit : hits)
              {
                if(bulletHit instanceof PlayerBulletHit)
                {
                  PlayerBulletHit playerHit = (PlayerBulletHit)bulletHit;
                  float damageMultiplier = 1F;
                  switch(playerHit.hitbox.type)
                  {
                  case LEFTITEM : case RIGHTITEM : //Hit a shield. Stop the swing.
                  {
                    data.meleeProgress = data.meleeLength = 0;
                    return;
                  }
                  case HEAD : damageMultiplier = 2F; break;
                  case RIGHTARM : case LEFTARM : damageMultiplier = 0.6F; break;
                  default :
                  }
                 
                  if(playerHit.hitbox.player.attackEntityFrom(getMeleeDamage(player), swingDistance * type.meleeDamage))
                  {
                    //If the attack was allowed, we should remove their immortality cooldown so we can shoot them again. Without this, any rapid fire gun become useless
                    playerHit.hitbox.player.arrowHitTimer++;
                    playerHit.hitbox.player.hurtResistantTime = playerHit.hitbox.player.maxHurtResistantTime / 2;
                  }
                 
                  if(FlansMod.DEBUG)
                    world.spawnEntityInWorld(new EntityDebugDot(world, new Vector3f(data.lastMeleePositions[k].x + dPos.x * playerHit.intersectTime, data.lastMeleePositions[k].y + dPos.y * playerHit.intersectTime, data.lastMeleePositions[k].z + dPos.z * playerHit.intersectTime), 1000, 1F, 0F, 0F));
                }
                else if(bulletHit instanceof EntityHit)
                {
                  EntityHit entityHit = (EntityHit)bulletHit;
                  if(entityHit.entity.attackEntityFrom(DamageSource.causePlayerDamage(player), swingDistance * type.meleeDamage) && entityHit.entity instanceof EntityLivingBase)
                  {
                    EntityLivingBase living = (EntityLivingBase)entityHit.entity;
                    //If the attack was allowed, we should remove their immortality cooldown so we can shoot them again. Without this, any rapid fire gun become useless
                    living.arrowHitTimer++;
                    living.hurtResistantTime = living.maxHurtResistantTime / 2;
                  }
                 
                  if(FlansMod.DEBUG)
                    world.spawnEntityInWorld(new EntityDebugDot(world, new Vector3f(data.lastMeleePositions[k].x + dPos.x * entityHit.intersectTime, data.lastMeleePositions[k].y + dPos.y * entityHit.intersectTime, data.lastMeleePositions[k].z + dPos.z * entityHit.intersectTime), 1000, 1F, 0F, 0F));
                }
              } 
            }
          }
          //End raytrace
View Full Code Here

      else if(split[0].equals("MaxNegativeThrottle"))
        maxNegativeThrottle = Float.parseFloat(split[1]);
      else if(split[0].equals("Drag"))
        drag = Float.parseFloat(split[1]);
      else if(split[0].equals("TurretOrigin"))
              turretOrigin = new Vector3f(Float.parseFloat(split[1]) / 16F, Float.parseFloat(split[2]) / 16F, Float.parseFloat(split[3]) / 16F);
      else if(split[0].equals("CollisionPoint") || split[0].equals("AddCollisionPoint"))
              collisionPoints.add(new DriveablePosition(split));
      //Boats
      else if(split[0].equals("PlaceableOnLand"))
              placeableOnLand = Boolean.parseBoolean(split[1]);
      else if(split[0].equals("PlaceableOnWater"))
              placeableOnWater = Boolean.parseBoolean(split[1]);
      else if(split[0].equals("FloatOnWater"))
              floatOnWater = Boolean.parseBoolean(split[1]);
      else if(split[0].equals("Boat"))
            {
              placeableOnLand = false;
              placeableOnWater = true;
              floatOnWater = true;
              wheelStepHeight = 0F;
            }
      else if(split[0].equals("Buoyancy"))
        buoyancy = Float.parseFloat(split[1]);
           
            //Wheels
      else if(split[0].equals("Wheel") || split[0].equals("WheelPosition"))
            {
              wheelPositions[Integer.parseInt(split[1])] = new DriveablePosition(new Vector3f(Float.parseFloat(split[2]) / 16F, Float.parseFloat(split[3]) / 16F, Float.parseFloat(split[4]) / 16F), split.length > 5 ? EnumDriveablePart.getPart(split[5]) : EnumDriveablePart.coreWheel);
            }
      else if(split[0].equals("WheelRadius") || split[0].equals("WheelStepHeight"))
              wheelStepHeight = Float.parseFloat(split[1]);           
      else if(split[0].equals("WheelSpringStrength") || split[0].equals("SpringStrength"))
                wheelSpringStrength = Float.parseFloat(split[1]);
           
      //Cargo / Payload
      else if(split[0].equals("CargoSlots"))
        numCargoSlots = Integer.parseInt(split[1]);
      else if(split[0].equals("BombSlots") || split[0].equals("MineSlots"))
        numBombSlots = Integer.parseInt(split[1]);
      else if(split[0].equals("MissileSlots") || split[0].equals("ShellSlots"))
        numMissileSlots = Integer.parseInt(split[1]);
      else if(split[0].equals("FuelTankSize"))
        fuelTankSize = Integer.parseInt(split[1]);
     
      else if(split[0].equals("BulletDetection"))
        bulletDetectionRadius = Integer.parseInt(split[1]);
     
      //Ammo limiters
      else if(split[0].equals("AddAmmo"))
        ammo.add(BulletType.getBullet(split[1]));
      else if(split[0].equals("AllowAllAmmo") || split[0].equals("AcceptAllAmmo"))
        acceptAllAmmo = Boolean.parseBoolean(split[1]);
     
      //Weaponry
      else if(split[0].equals("Primary"))
        primary = EnumWeaponType.valueOf(split[1].toUpperCase());
      else if(split[0].equals("Secondary"))
        secondary = EnumWeaponType.valueOf(split[1].toUpperCase());
      else if(split[0].equals("ShootDelayPrimary"))
        shootDelayPrimary = Integer.parseInt(split[1]);
      else if(split[0].equals("ShootDelaySecondary"))
        shootDelaySecondary = Integer.parseInt(split[1]);
      else if(split[0].equals("AlternatePrimary"))
        alternatePrimary = Boolean.parseBoolean(split[1]);
      else if(split[0].equals("AlternateSecondary"))
        alternateSecondary = Boolean.parseBoolean(split[1]);
      else if(split[0].equals("ModePrimary"))
        modePrimary = EnumFireMode.valueOf(split[1].toUpperCase());
      else if(split[0].equals("ModeSecondary"))
        modeSecondary = EnumFireMode.valueOf(split[1].toUpperCase());
      else if(split[0].equals("ShootPointPrimary"))
      {
        DriveablePosition shootPoint = getShootPoint(split);
        shootPointsPrimary.add(shootPoint);
        if(shootPoint instanceof PilotGun)
          pilotGuns.add((PilotGun)shootPoint);
      }
      else if(split[0].equals("ShootPointSecondary"))
      {
        DriveablePosition shootPoint = getShootPoint(split);
        shootPointsSecondary.add(shootPoint);
        if(shootPoint instanceof PilotGun)
          pilotGuns.add((PilotGun)shootPoint);
      }
     
     
      //Backwards compatibility stuff
      else if(split[0].equals("AddGun"))
      {
        secondary = EnumWeaponType.GUN;
        PilotGun pilotGun = (PilotGun)getShootPoint(split);
        shootPointsSecondary.add(pilotGun);
        pilotGuns.add(pilotGun);
        recipe.add(new ItemStack(pilotGun.type.item));
      }
      else if(split[0].equals("BombPosition"))
      {
        primary = EnumWeaponType.BOMB;
        shootPointsPrimary.add(new DriveablePosition(new Vector3f(Float.parseFloat(split[1]) / 16F, Float.parseFloat(split[2]) / 16F, Float.parseFloat(split[3]) / 16F), EnumDriveablePart.core))
      }
      else if(split[0].equals("BarrelPosition"))
      {
        primary = EnumWeaponType.SHELL;
        shootPointsPrimary.add(new DriveablePosition(new Vector3f(Float.parseFloat(split[1]) / 16F, Float.parseFloat(split[2]) / 16F, Float.parseFloat(split[3]) / 16F), EnumDriveablePart.turret))
      }
      else if(split[0].equals("ShootDelay"))
        shootDelaySecondary = Integer.parseInt(split[1]);
      else if(split[0].equals("ShellDelay") || split[0].equals("BombDelay"))
        shootDelayPrimary = Integer.parseInt(split[1]);
     
      //Recipe
      else if(split[0].equals("AddRecipeParts"))
      {
        EnumDriveablePart part = EnumDriveablePart.getPart(split[1]);
        ItemStack[] stacks = new ItemStack[(split.length - 2) / 2];
        for(int i = 0; i < (split.length - 2) / 2; i++)
        {
          int amount = Integer.parseInt(split[2 * i + 2]);
          boolean damaged = split[2 * i + 3].contains(".");
          String itemName = damaged ? split[2 * i + 3].split("\\.")[0] : split[2 * i + 3];
          int damage = damaged ? Integer.parseInt(split[2 * i + 3].split("\\.")[1]) : 0;
          stacks[i] = getRecipeElement(itemName, amount, damage, shortName);
          recipe.add(stacks[i]);
        }
        partwiseRecipe.put(part, stacks);
      }
     
      //Dyes
      else if(split[0].equals("AddDye"))
      {
        int amount = Integer.parseInt(split[1]);
        int damage = -1;
        for(int i = 0; i < ItemDye.field_150923_a.length; i++)
        {
          if(ItemDye.field_150923_a[i].equals(split[2]))
            damage = i;
        }
        if(damage == -1)
        {
          FlansMod.log("Failed to find dye colour : " + split[2] + " while adding " + file.name);
          return;
        }
        recipe.add(new ItemStack(Items.dye, amount, damage));
      }
     
     
      //Health
      else if(split[0].equals("SetupPart"))
      {
        EnumDriveablePart part = EnumDriveablePart.getPart(split[1]);
        CollisionBox box = new CollisionBox(Integer.parseInt(split[2]), Integer.parseInt(split[3]), Integer.parseInt(split[4]), Integer.parseInt(split[5]), Integer.parseInt(split[6]), Integer.parseInt(split[7]), Integer.parseInt(split[8]));
        health.put(part, box);
      }
     
      //Driver Position
      else if(split[0].equals("Driver") || split[0].equals("Pilot"))
      {
        if(split.length > 4)
          seats[0] = new Seat(Integer.parseInt(split[1]), Integer.parseInt(split[2]), Integer.parseInt(split[3]), Float.parseFloat(split[4]), Float.parseFloat(split[5]), Float.parseFloat(split[6]), Float.parseFloat(split[7]));
        else seats[0] = new Seat(Integer.parseInt(split[1]), Integer.parseInt(split[2]), Integer.parseInt(split[3]));
      }
     
      else if(split[0].equals("RotatedDriverOffset"))
      {
        seats[0].rotatedOffset = new Vector3f(Integer.parseInt(split[1]) / 16F, Integer.parseInt(split[2]) / 16F, Integer.parseInt(split[3]) / 16F);
      }
      else if(split[0].equals("RotatedPassengerOffset"))
      {
        seats[Integer.parseInt(split[1])].rotatedOffset = new Vector3f(Integer.parseInt(split[2]) / 16F, Integer.parseInt(split[3]) / 16F, Integer.parseInt(split[4]) / 16F);
      }
     
      //Passengers / Gunner Seats
      else if(split[0].equals("Passenger"))
      {
        Seat seat = new Seat(split);
        seats[seat.id] = seat;
        if(seat.gunType != null)
        {
          seat.gunnerID = numPassengerGunners++;
          recipe.add(new ItemStack(seat.gunType.item));
        }
      }
      else if(split[0].equals("GunOrigin"))
        seats[Integer.parseInt(split[1])].gunOrigin = new Vector3f(Float.parseFloat(split[2]) / 16F, Float.parseFloat(split[3]) / 16F, Float.parseFloat(split[4]) / 16F);
           
      //Y offset for badly built models :P
      else if(split[0].equals("YOffset"))
        yOffset = Float.parseFloat(split[1]);
            //Third person camera distance
View Full Code Here

      }
      else if(split.length == 5)
      {
        return new DriveablePosition(split);
      }
    return new DriveablePosition(new Vector3f(), EnumDriveablePart.core);
  }
View Full Code Here

TOP

Related Classes of com.flansmod.common.vector.Vector3f

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.