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); }
public void run2() { try { init(); gameLoop(); } finally { s.restoreScreen(); Look.main(null); } }
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); }
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); }
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); } } } }
/** 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); }