package tc.oc.pgm.proximity; import java.util.Set; import com.google.common.collect.Sets; import tc.oc.time.Time; import tc.oc.pgm.match.Match; import tc.oc.pgm.match.MatchModule; import tc.oc.pgm.match.Repeatable; public class ProximityAlarmMatchModule extends MatchModule { protected final Set<ProximityAlarm> proximityAlarms = Sets.newHashSet(); public ProximityAlarmMatchModule(Match match, Set<ProximityAlarmDefinition> definitions) { super(match); for(ProximityAlarmDefinition definition : definitions) { proximityAlarms.add(new ProximityAlarm(this.match, definition, match.getRandom())); } } @Override public void load() { proximityAlarms.forEach(match::registerEventsAndRepeatables); } @Repeatable(interval = @Time(ticks = 3)) public void repeat() { if(!match.isRunning()) return; for(ProximityAlarm proximityAlarm : ProximityAlarmMatchModule.this.proximityAlarms) { proximityAlarm.showAlarm(); } } }