WeaponFactory.java :  » UnTagged » wormdroid » com » milhouz » wormdroid » gl » factory » Android Open Source

Android Open Source » UnTagged » wormdroid 
wormdroid » com » milhouz » wormdroid » gl » factory » WeaponFactory.java
package com.milhouz.wormdroid.gl.factory;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

import org.skife.csv.CSVReader;
import org.skife.csv.SimpleReader;

import android.util.Log;

import com.milhouz.wormdroid.data.model.WeaponData;
import com.milhouz.wormdroid.gl.model.TargetGLSprite;
import com.milhouz.wormdroid.gl.model.WeaponGLSprite;
import com.milhouz.wormdroid.util.StaticValues;

public class WeaponFactory {
  private static final TargetGLSprite TARGET = new TargetGLSprite();
  private static final WeaponGLSprite[] WEAPONS = new WeaponGLSprite[2];
  
  private static WeaponFactory instance;

  public static WeaponFactory getInstance() {
    if (instance == null) {
      instance = new WeaponFactory();
    }
    return instance;
  }

  public TargetGLSprite getTargetSprite(int botX, int botY) {
    TARGET.initWeapon(botX, botY);
    return TARGET;
  }
  
  @SuppressWarnings("unchecked")
  public WeaponGLSprite[] getWeaponSprites(InputStream inputWeapons) {
    CSVReader csvReader = new SimpleReader();
    csvReader.setSeperator(';');
    try {
      List<String[]> lines = csvReader.parse(inputWeapons);
      if (lines != null) {
        int i = 0;
        for (String[] line : lines){
          WEAPONS[i++] = generateWeaponSpriteFromLine(line);
        }
      }
    } catch (IOException e) {
      Log.e("wormdroid","Error reading weapons file.");
    }
    return WEAPONS;
  }
  
  /*
   * id; name; type; power; height; width; imgWeapon; imgBullet; needTarget
   */
  private WeaponGLSprite generateWeaponSpriteFromLine(String[] line) {
    WeaponGLSprite weaponSprite = null;
    if (line != null) {
      WeaponData weaponData = new WeaponData(Integer.valueOf(line[0]), line[1], line[2], Integer.valueOf(line[3]), Integer.valueOf(line[4]), Integer.valueOf(line[5]), Integer.valueOf(line[6]), Integer.valueOf(line[7]));
      weaponSprite = new WeaponGLSprite(StaticValues.spriteId++, 0, 0, weaponData);
    }
    return weaponSprite;
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.