// unit tests public static void main(String args[]) { System.out.println(TimeEffectSet.getTime(new Date())[0]); TimeEffectSet set = new TimeEffectSet(new Linear()); ElectrolandProperties ep = new ElectrolandProperties("Gotham-global.properties"); for (String name : ep.getObjectNames("west")) { if (name.startsWith("timeEffect")) { set.add(new TimeEffect(ep.getParams("west", name), null)); } } for (TimeEffect effect : set.effects) { System.out.println(effect); TimeEffect first = set.effects.get(0); System.out.println("effect is before first " + effect.isBefore(first.hours, first.minutes)); System.out.println("first is effect first " + first.isBefore(effect.hours, effect.minutes)); System.out.println(""); } for (int hour = 0; hour < 24; hour++) { int minutes = 25; Bracket b = set.getEffectBracket(hour, minutes); System.out.println("for " + hour + ":" + minutes + "..."); System.out.println("last: " + b.prior); System.out.println("next: " + b.next); // System.out.println("blended: " + set.getEffect(hour, minutes)); System.out.println(); } int[] now = TimeEffectSet.getTime(new Date()); System.out.println(set.getEffectBracket(now[0], now[1]).prior); System.out.println(set.getEffectBracket(now[0], now[1]).next); // get color }
private Bracket getEffectBracket(int hours, int minutes) { Bracket bracket = new Bracket(); for (TimeEffect effect : effects) { if (effect.isBefore(hours, minutes)) { bracket.prior = effect; } else { bracket.next = effect; break; } } TimeEffect first = effects.get(0); if (bracket.prior == null) { // prior effect was yesterday bracket.prior = effects.get(effects.size() - 1); } if (bracket.next == null) { // next effect is tomorrow bracket.next = first; } return bracket; }