Android Open Source - nadia Item Manager






From Project

Back to project page nadia.

License

The source code is released under:

GNU Lesser General Public License

If you think the Android project nadia listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * ItemManager.java// www.j a  v  a2 s  .c  om
 * 
 * Copyright (c) 2013, Emmanuel Arana Corzo. All rights reserved.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 * MA 02110-1301  USA
 */

package com.redarctic.nadia.baseengine.item;

import java.util.Enumeration;
import java.util.concurrent.ConcurrentHashMap;

public class ItemManager {
  ConcurrentHashMap<String, Weapon> weapons = new ConcurrentHashMap<String, Weapon>();
  ConcurrentHashMap<String, Integer> numberWeapons = new ConcurrentHashMap<String, Integer>();
  ConcurrentHashMap<String, Armor> armors = new ConcurrentHashMap<String, Armor>();
  ConcurrentHashMap<String, Integer> numberArmors = new ConcurrentHashMap<String, Integer>();
  ConcurrentHashMap<String, Shield> shields = new ConcurrentHashMap<String, Shield>();
  ConcurrentHashMap<String, Integer> numberShields = new ConcurrentHashMap<String, Integer>();
  
  public Enumeration<String> getWeaponKeys() {
    return this.weapons.keys();
  }
  
  public Enumeration<String> getArmorKeys() {
    return this.armors.keys();
  }
  
  public Enumeration<String> getShieldKeys() {
    return this.shields.keys();
  }
  
  public ItemManager() {}
  
  public void addWeapon(Weapon weapon) {
    if (!this.weapons.containsKey(weapon.getName())) {
      this.weapons.put(weapon.getName(), weapon);
      this.numberWeapons.put(weapon.getName(), 1);
    }
    else {
      this.numberWeapons.put(
          weapon.getName(), 
          Integer.valueOf(this.numberWeapons.get(weapon.getName()).intValue() + 1)
          );
    }
  }
  
  ///////////////////////////////
  /// WEAPON REGION
  ///////////////////////////////
  
  public Weapon getWeapon(String name) {
    if (this.weapons.containsKey(name)) {
      try {
        return (Weapon)this.weapons.get(name).clone();
      } catch (CloneNotSupportedException e) {
        e.printStackTrace();
        return null;
      }
    }
    else return null;
  }
  
  public int getNumberWeapons(String name) {
    if (this.numberWeapons.containsKey(name)) {      
      return (int)this.numberWeapons.get(name);      
    }
    else return 0;
  }
  
  public boolean containsWeapon(String name) {
    return this.weapons.containsKey(name) && this.numberWeapons.containsKey(name);
  }
  
  public Weapon removeWeapon(String name) {
    if (containsWeapon(name)) {
      if (getNumberWeapons(name) > 1) {
        this.numberWeapons.put(
            name, 
            Integer.valueOf(this.numberWeapons.get(name).intValue() - 1)
            );
        return this.weapons.get(name);
      }
      else {
        this.numberWeapons.remove(name);
        return this.weapons.remove(name);
      }
    }
    else {
      return null;
    }
  }
  
  ///////////////////////////////
  /// ARMOR REGION
  ///////////////////////////////
  
  public void addArmor(Armor armor) {
    if (!this.armors.containsKey(armor.getName())) {
      this.armors.put(armor.getName(), armor);
      this.numberArmors.put(armor.getName(), 1);
    }
    else {
      this.numberArmors.put(
          armor.getName(), 
          Integer.valueOf(this.numberArmors.get(armor.getName()).intValue() + 1)
          );
    }
  }
  
  public Armor getArmor(String name) {
    if (this.armors.containsKey(name)) {
      try {
        return (Armor)this.armors.get(name).clone();
      } catch (CloneNotSupportedException e) {
        e.printStackTrace();
        return null;
      }
    }
    else return null;
  }
  
  public int getNumberArmors(String name) {
    if (this.numberArmors.containsKey(name)) {      
      return (int)this.numberArmors.get(name);      
    }
    else return 0;
  }
  
  public boolean containsArmor(String name) {
    return this.armors.containsKey(name) && this.numberArmors.containsKey(name);
  }
  
  public Armor removeArmor(String name) {
    if (containsArmor(name)) {
      if (getNumberArmors(name) > 1) {
        this.numberArmors.put(
            name, 
            Integer.valueOf(this.numberArmors.get(name).intValue() - 1)
            );
        return this.armors.get(name);
      }
      else {
        this.numberArmors.remove(name);
        return this.armors.remove(name);
      }
    }
    else {
      return null;
    }
  }
  
  ///////////////////////////////
  /// SHIELD REGION
  ///////////////////////////////
  
  public void addShield(Shield shield) {
    if (!this.shields.containsKey(shield.getName())) {
      this.shields.put(shield.getName(), shield);
      this.numberShields.put(shield.getName(), 1);
    }
    else {
      this.numberShields.put(
          shield.getName(), 
          Integer.valueOf(this.numberShields.get(shield.getName()).intValue() + 1)
          );
    }
  }
  
  public Shield getShield(String name) {
    if (this.shields.containsKey(name)) {
      try {
        return (Shield)this.shields.get(name).clone();
      } catch (CloneNotSupportedException e) {
        e.printStackTrace();
        return null;
      }
    }
    else return null;
  }
  
  public int getNumberShields(String name) {
    if (this.numberShields.containsKey(name)) {      
      return (int)this.numberShields.get(name);      
    }
    else return 0;
  }
  
  public boolean containsShield(String name) {
    return this.shields.containsKey(name) && this.numberShields.containsKey(name);
  }
  
  public Shield removeShield(String name) {
    if (containsShield(name)) {
      if (getNumberShields(name) > 1) {
        this.numberShields.put(
            name, 
            Integer.valueOf(this.numberShields.get(name).intValue() - 1)
            );
        return this.shields.get(name);
      }
      else {
        this.numberShields.remove(name);
        return this.shields.remove(name);
      }
    }
    else {
      return null;
    }
  }
}




Java Source Code List

com.ashokgelal.samaya.DateTimeFormatter.java
com.ashokgelal.samaya.DateTimeInterval.java
com.ashokgelal.samaya.DateTimeParser.java
com.ashokgelal.samaya.DateTime.java
com.ashokgelal.samaya.ModelUtil.java
com.ashokgelal.samaya.Samaya.java
com.ashokgelal.samaya.TimeSpan.java
com.ashokgelal.samaya.ToStringUtil.java
com.ashokgelal.samaya.Util.java
com.redarctic.nadia.baseengine.BaseGameState.java
com.redarctic.nadia.baseengine.ColorPallete.java
com.redarctic.nadia.baseengine.DrawableGameComponent.java
com.redarctic.nadia.baseengine.DrawableObject.java
com.redarctic.nadia.baseengine.GameComponent.java
com.redarctic.nadia.baseengine.GameStateManager.java
com.redarctic.nadia.baseengine.GameState.java
com.redarctic.nadia.baseengine.GameSurfaceView.java
com.redarctic.nadia.baseengine.GameSurface.java
com.redarctic.nadia.baseengine.SpriteFont.java
com.redarctic.nadia.baseengine.Sprite.java
com.redarctic.nadia.baseengine.character.BaseModifier.java
com.redarctic.nadia.baseengine.character.Classes.java
com.redarctic.nadia.baseengine.character.FormulaModifierException.java
com.redarctic.nadia.baseengine.character.Player.java
com.redarctic.nadia.baseengine.item.ArmorLocation.java
com.redarctic.nadia.baseengine.item.Armor.java
com.redarctic.nadia.baseengine.item.BaseItem.java
com.redarctic.nadia.baseengine.item.ItemManager.java
com.redarctic.nadia.baseengine.item.ItemType.java
com.redarctic.nadia.baseengine.item.Shield.java
com.redarctic.nadia.baseengine.item.Weapon.java
com.redarctic.nadia.baseengine.item.WeaponsType.java
com.redarctic.nadia.baseengine.sprite.AnimatedSprite.java
com.redarctic.nadia.baseengine.sprite.AnimationException.java
com.redarctic.nadia.baseengine.sprite.AnimationKey.java
com.redarctic.nadia.baseengine.sprite.Animation.java
com.redarctic.nadia.baseengine.tileengine.Camera.java
com.redarctic.nadia.baseengine.tileengine.Engine.java
com.redarctic.nadia.baseengine.tileengine.MapLayer.java
com.redarctic.nadia.baseengine.tileengine.TileException.java
com.redarctic.nadia.baseengine.tileengine.TileMap.java
com.redarctic.nadia.baseengine.tileengine.Tile.java
com.redarctic.nadia.baseengine.tileengine.Tileset.java
com.redarctic.nadia.baseengine.world.Level.java
com.redarctic.nadia.baseengine.world.World.java
com.redarctic.nadia.collision.Circle.java
com.redarctic.nadia.collision.CollisionPolygon.java
com.redarctic.nadia.collision.ConvexPolygonException.java
com.redarctic.nadia.collision.Rectangle.java
com.redarctic.nadia.controls.ButtonPad.java
com.redarctic.nadia.controls.DirectionalPad.java
com.redarctic.nadia.controls.menu.CharacterDialog.java
com.redarctic.nadia.controls.menu.ControlBorder.java
com.redarctic.nadia.controls.menu.ControlManager.java
com.redarctic.nadia.controls.menu.Control.java
com.redarctic.nadia.controls.menu.Label.java
com.redarctic.nadia.controls.menu.LeftRightSelector.java
com.redarctic.nadia.controls.menu.LinkLabel.java
com.redarctic.nadia.controls.menu.Menu.java
com.redarctic.nadia.controls.menu.PictureBox.java
com.redarctic.nadia.controls.menu.SimpleConversation.java
com.redarctic.nadia.ext.MathHelper.java
com.redarctic.nadia.ext.StringHelper.java
com.redarctic.nadia.ext.simplesignalslot.ISignalProvider.java
com.redarctic.nadia.ext.simplesignalslot.ISlotProvider.java
com.redarctic.nadia.ext.simplesignalslot.PrimitiveWrapper.java
com.redarctic.nadia.ext.simplesignalslot.SignalSlotMap.java
com.redarctic.nadia.ext.simplesignalslot.SignalSlotPair.java
com.redarctic.nadia.ext.simplesignalslot.SlotProviderMethodPair.java