Android Open Source - Gamework Decimal Variable






From Project

Back to project page Gamework.

License

The source code is released under:

Apache License

If you think the Android project Gamework 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

package cz.robyer.gamework.scenario.variable;
//www  . jav  a2  s  .  c o  m
import java.security.InvalidParameterException;

import cz.robyer.gamework.scenario.reaction.VariableReaction.OperatorType;
import cz.robyer.gamework.utils.Log;

/**
 * Represents numeric decimal variable.
 * @author Robert P?sel
 */
public class DecimalVariable extends Variable {
  protected int value;
  protected int min = 0;
  protected int max = 0;

  /**
   * Class constructor.
   * @param id - identificator of variable
   * @param value - actual (default) value
   */
  public DecimalVariable(String id, int value) {
    super(id);
    this.value = value;
  }
  
  /**
   * Class constructor.
   * @param id - identificator of variable
   * @param value - actual (default) value
   * @param min - minimal value
   * @param max - maximal value
   */
  public DecimalVariable(String id, int value, int min, int max) {
    this(id, value);
    setLimit(min, max);
  }

  /**
   * Factory for creating this variable from string value.
   * @param id - identificator of variable
   * @param value - actual (default) value a string
   * @return DecimalVariable
   */
  public static DecimalVariable fromString(String id, String value) {
    return new DecimalVariable(id, Integer.parseInt(value));
  }
  
  /**
   * Factory for creating this variable from string value.
   * @param id - identificator of variable
   * @param value - actual (default) value a string
   * @param min - minimal value
   * @param max - maximal value
   * @return DecimalVariable
   */
  public static DecimalVariable fromString(String id, String value, String min, String max) {
    DecimalVariable variable = new DecimalVariable(id, Integer.parseInt(value));
    variable.setLimit(Integer.parseInt(min), Integer.parseInt(max));
    return variable;
  }

  /**
   * Sets value of this variable.
   * @param value to be set
   */
  public void setValue(int value) {
    this.value = value;
    checkLimit();
  }
  
  /**
   * Get value of this variable.
   * @return actual value
   */
  public int getValue() {
    return value;
  }
  
  /**
   * Sets limit of this variable, must be min < max.
   * @param min - minimal value
   * @param max - maximal value
   */
  public void setLimit(int min, int max) {
    if (min > max) {
      Log.e(TAG, String.format("Minimum value (%d) must be lower than maximum value (%d)", min, max));
      throw new InvalidParameterException("Minimum value must be lower than maximum value");
    }
  
    this.min = min;
    this.max = max;
  }
  
  /**
   * Applies min/max limit to actual value.
   */
  private void checkLimit() {
    // if there is any limit applied
    if (min != max) {
      value = Math.min(Math.max(value, min), max);
    }
  }
  
  /* (non-Javadoc)
   * @see cz.robyer.gamework.scenario.variable.Variable#modify(cz.robyer.gamework.scenario.reaction.VariableReaction.OperatorType, java.lang.Object)
   */
  @Override
  public void modify(OperatorType type, Object val) {
    int value;
    
    if (val instanceof Integer)
      value = (Integer)val;
    else if (val instanceof String)
      value = Integer.parseInt((String)val);
    else {
      Log.e(TAG, "Not supported VariableReaction value");
      return;
    }
    
    switch (type) {
    case SET:
      this.value = value;
      break;
    case INCREMENT:
      this.value += value;
      break;
    case DECREMENT:
      this.value -= value;
      break;
    case MULTIPLY:
      this.value *= value;
      break;
    case DIVIDE:
      this.value /= value;
      break;
    default:
      Log.e(TAG, "Not supported VariableReaction type");
      return;
    }
    
    checkLimit();
    callHooks(this);
  }

}




Java Source Code List

cz.robyer.gamework.app.activity.BaseActivity.java
cz.robyer.gamework.app.activity.BaseGameActivity.java
cz.robyer.gamework.app.activity.GameInventoryActivity.java
cz.robyer.gamework.app.activity.GameMapActivity.java
cz.robyer.gamework.app.activity.GameMessagesActivity.java
cz.robyer.gamework.app.activity.GameObjectivesActivity.java
cz.robyer.gamework.app.activity.GameToolsActivity.java
cz.robyer.gamework.app.activity.HelpActivity.java
cz.robyer.gamework.app.activity.MainActivity.java
cz.robyer.gamework.app.activity.MessageActivity.java
cz.robyer.gamework.app.game.GameService.java
cz.robyer.gamework.app.service.JavaScriptHandler.java
cz.robyer.gamework.app.service.MessageAdapter.java
cz.robyer.gamework.constants.Constants.java
cz.robyer.gamework.game.GameEventBroadcaster.java
cz.robyer.gamework.game.GameEventListener.java
cz.robyer.gamework.game.GameEvent.java
cz.robyer.gamework.game.GameHandler.java
cz.robyer.gamework.game.GameService.java
cz.robyer.gamework.game.GameStatus.java
cz.robyer.gamework.scenario.BaseObject.java
cz.robyer.gamework.scenario.HookableObject.java
cz.robyer.gamework.scenario.IdentificableObject.java
cz.robyer.gamework.scenario.ScenarioInfo.java
cz.robyer.gamework.scenario.Scenario.java
cz.robyer.gamework.scenario.area.Area.java
cz.robyer.gamework.scenario.area.MultiPointArea.java
cz.robyer.gamework.scenario.area.PointArea.java
cz.robyer.gamework.scenario.area.SoundArea.java
cz.robyer.gamework.scenario.helper.EventHookable.java
cz.robyer.gamework.scenario.helper.ScannerHookable.java
cz.robyer.gamework.scenario.helper.TimeHookable.java
cz.robyer.gamework.scenario.hook.Condition.java
cz.robyer.gamework.scenario.hook.Hook.java
cz.robyer.gamework.scenario.message.Message.java
cz.robyer.gamework.scenario.parser.XmlScenarioParser.java
cz.robyer.gamework.scenario.reaction.ActivityReaction.java
cz.robyer.gamework.scenario.reaction.EventReaction.java
cz.robyer.gamework.scenario.reaction.MessageReaction.java
cz.robyer.gamework.scenario.reaction.MultiReaction.java
cz.robyer.gamework.scenario.reaction.Reaction.java
cz.robyer.gamework.scenario.reaction.ReferenceReaction.java
cz.robyer.gamework.scenario.reaction.SoundReaction.java
cz.robyer.gamework.scenario.reaction.VariableReaction.java
cz.robyer.gamework.scenario.reaction.VibrateReaction.java
cz.robyer.gamework.scenario.variable.BooleanVariable.java
cz.robyer.gamework.scenario.variable.DecimalVariable.java
cz.robyer.gamework.scenario.variable.Variable.java
cz.robyer.gamework.utils.GPoint.java
cz.robyer.gamework.utils.Log.java
cz.robyer.gamework.utils.Utils.java