示例#1
0
 public void createWhenScriptActionSequence(String action) {
   ParallelAction whenParallelAction = actionFactory.parallel();
   for (Script s : scriptList) {
     if (s instanceof WhenScript && (((WhenScript) s).getAction().equalsIgnoreCase(action))) {
       SequenceAction sequence = createActionSequence(s);
       whenParallelAction.addAction(sequence);
     }
   }
   look.setWhenParallelAction(whenParallelAction);
   look.addAction(whenParallelAction);
 }
示例#2
0
  public void run2() {
    try {
      init();
      gameLoop();

    } finally {
      s.restoreScreen();
      Look.main(null);
    }
  }
示例#3
0
 public void createTouchDownAction() {
   ParallelAction whenParallelAction = ActionFactory.parallel();
   for (Script s : scriptList) {
     if (s instanceof WhenTouchDownScript) {
       SequenceAction sequence = createActionSequence(s);
       whenParallelAction.addAction(sequence);
     }
   }
   look.addAction(whenParallelAction);
 }
示例#4
0
 public void createWhenNfcScriptAction(String uid) {
   ParallelAction whenParallelAction = ActionFactory.parallel();
   for (Script s : scriptList) {
     if (s instanceof WhenNfcScript) {
       WhenNfcScript whenNfcScript = (WhenNfcScript) s;
       if (whenNfcScript.isMatchAll() || whenNfcScript.getNfcTag().getNfcTagUid().equals(uid)) {
         SequenceAction sequence = createActionSequence(s);
         whenParallelAction.addAction(sequence);
       }
     }
   }
   // TODO: quick fix for faulty behaviour - nfc action triggers again after touchevents
   // look.setWhenParallelAction(whenParallelAction);
   look.addAction(whenParallelAction);
 }
示例#5
0
 public void createStartScriptActionSequenceAndPutToMap(Map<String, List<String>> scriptActions) {
   for (int scriptCounter = 0; scriptCounter < scriptList.size(); scriptCounter++) {
     Script script = scriptList.get(scriptCounter);
     if (script instanceof StartScript) {
       Action sequenceAction = createActionSequence(script);
       look.addAction(sequenceAction);
       BroadcastHandler.getActionScriptMap().put(sequenceAction, script);
       BroadcastHandler.getScriptSpriteMapMap().put(script, this);
       String actionName =
           sequenceAction.toString() + Constants.ACTION_SPRITE_SEPARATOR + name + scriptCounter;
       if (scriptActions.containsKey(Constants.START_SCRIPT)) {
         scriptActions.get(Constants.START_SCRIPT).add(actionName);
         BroadcastHandler.getStringActionMap().put(actionName, sequenceAction);
       } else {
         List<String> startScriptList = new ArrayList<>();
         startScriptList.add(actionName);
         scriptActions.put(Constants.START_SCRIPT, startScriptList);
         BroadcastHandler.getStringActionMap().put(actionName, sequenceAction);
       }
     } else if (script instanceof BroadcastScript) {
       BroadcastScript broadcastScript = (BroadcastScript) script;
       SequenceAction action = createActionSequence(broadcastScript);
       BroadcastHandler.getActionScriptMap().put(action, script);
       BroadcastHandler.getScriptSpriteMapMap().put(script, this);
       putBroadcastSequenceAction(broadcastScript.getBroadcastMessage(), action);
       String actionName =
           action.toString() + Constants.ACTION_SPRITE_SEPARATOR + name + scriptCounter;
       if (scriptActions.containsKey(Constants.BROADCAST_SCRIPT)) {
         scriptActions.get(Constants.BROADCAST_SCRIPT).add(actionName);
         BroadcastHandler.getStringActionMap().put(actionName, action);
       } else {
         List<String> broadcastScriptList = new ArrayList<>();
         broadcastScriptList.add(actionName);
         scriptActions.put(Constants.BROADCAST_SCRIPT, broadcastScriptList);
         BroadcastHandler.getStringActionMap().put(actionName, action);
       }
     }
   }
 }
示例#6
0
 /** Resets all derived attributes, based on a set of looks. */
 public void setLooks(Set<Look> looks) {
   testFixed(false);
   VisualMap newValues = Look.getVisualsFor(looks);
   Set<VisualKey> staleKeys = EnumSet.noneOf(VisualKey.class);
   for (VisualKey key : VisualKey.deriveds()) {
     if (key.getNature() == Nature.DERIVED) {
       Object newValue = newValues.map.get(key);
       boolean refresh;
       if (newValue == null) {
         Object oldValue = this.map.remove(key);
         refresh = oldValue != null;
       } else {
         Object oldValue = this.map.put(key, newValue);
         refresh = !newValue.equals(oldValue);
       }
       // tell the attribute to refresh
       // if something actually changed
       if (refresh) {
         staleKeys.add(key);
       }
     }
   }
   this.attrMap.setStale(staleKeys);
 }