Android Open Source - Gamework Time Hookable






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.helper;
/*from  w w w.ja  v a  2 s.co m*/
import android.util.Log;
import cz.robyer.gamework.scenario.HookableObject;
import cz.robyer.gamework.scenario.Scenario;
import cz.robyer.gamework.scenario.hook.Hook;
import cz.robyer.gamework.scenario.hook.Hook.HookType;
import cz.robyer.gamework.scenario.variable.DecimalVariable;

/**
 * This object distributes time events ({@link #updateTime(long)}) to hooked scenario objects.
 * @author Robert P?sel
 */
public class TimeHookable extends HookableObject {
  private static final String TAG = TimeHookable.class.getSimpleName();
  
  private DecimalVariable variable = new DecimalVariable("", 0);
  
  /**
   * Class constructor.
   * @param scenario to be attached to.
   */
  public TimeHookable(Scenario scenario) {
    super("Gamework:TIME");
    this.scenario = scenario;
  }
  
  /**
   * Distributes time data to attached objects.
   * @param data - game time value
   */
  public void updateTime(long time) {
    Log.d(TAG, "Distributing time (" + time + ")");    
    callHooks(time);
  }
  
  /**
   * Call attached hooks with actual time value.
   * @param time - actual time value.
   */
  protected void callHooks(long time) {
    if (hooks == null)
      return;
    
    time /= 1000; // from mili to seconds
    int seconds = (int)(time % 60);
    int minutes = (int)(time / 60);
    int hours = (int)(time / 3600);
  
    for (Hook h : hooks) {
      if (h.getType() != HookType.TIME)
        continue;
      
      boolean valid = false;
        
      if (h.getValue().equalsIgnoreCase("second")) {
        valid = true;
        variable.setValue(seconds);
      } else if (h.getValue().equalsIgnoreCase("minute")) {
        valid = (seconds == 0);
        variable.setValue(minutes);
      } else if (h.getValue().equalsIgnoreCase("hour")) {
        valid = (seconds == 0 && minutes == 0);
        variable.setValue(hours);
      } else {
        Log.e(TAG, "Unknown time hook value '" + h.getValue() + "'");
        continue;
      }
      
      if (valid)
        h.call(variable);
    }
  }
  
}




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