Android Open Source - Gamework Area






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.area;
/*from w ww  .  j a  v a  2 s. c  o  m*/
import android.util.Log;
import cz.robyer.gamework.scenario.HookableObject;
import cz.robyer.gamework.scenario.hook.Hook;

/**
 * This is basic abstract object for game areas.
 * @author Robert P?sel
 */
public abstract class Area extends HookableObject {
  protected boolean inArea = false;
  
  /**
   * Class constructor
   * @param id Identificator of area.
   */
  public Area(String id) {
    super(id);
  }
  
  /**
   * Checks if user is inside area.
   * @return true if user is inside, false otherwise.
   */
  public final boolean isInside() {
    return inArea;
  }
  
  /**
   * Checks if particular latitude and longitude is in this area.
   * @param lat latitude
   * @param lon longitude
   * @return true if location is inside area, false otherwise
   */
  abstract protected boolean isPointInArea(double lat, double lon);
  
  /**
   * Updates actual location of player for this area and call hooks if entering/leaving.
   * @param lat latitude of player
   * @param lon longitude of player
   */
  public void updateLocation(double lat, double lon) {
    boolean r = isPointInArea(lat, lon);
    
    if (inArea != r) {
      // entering or leaving area
      Log.i(TAG, String.format("We %s location", (r ? "entered" : "leaved")));
      inArea = r;
      callHooks(r);
    }
  }
  
  /**
   * Call valid attached hooks.
   * @param inside - did player entered or leaved this area?
   */
  protected void callHooks(boolean inside) {
    if (hooks == null)
      return;
    
    for (Hook h : hooks) {
      boolean valid = false;
        
      switch (h.getType()) {
      case AREA:
        valid = true;
        break;
      case AREA_ENTER:
        valid = inside;
        break;
      case AREA_LEAVE:
        valid = !inside;
        break;
      default:
        break;
      }
        
      if (valid)
        h.call(null);
    }
  }

}




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