package tc.oc.pgm.modules;
import java.util.logging.Logger;
import org.jdom2.Document;
import org.jdom2.Element;
import tc.oc.pgm.map.MapModule;
import tc.oc.pgm.map.MapModuleContext;
import tc.oc.pgm.match.Match;
import tc.oc.pgm.match.MatchModuleFactory;
import tc.oc.pgm.module.ModuleDescription;
import tc.oc.pgm.regions.Region;
import tc.oc.pgm.regions.RegionParser;
import tc.oc.pgm.xml.InvalidXMLException;
@ModuleDescription(name="Playable Region")
public class PlayableRegionModule implements MapModule, MatchModuleFactory<PlayableRegionMatchModule> {
protected final Region playableRegion;
public PlayableRegionModule(Region playableRegion) {
this.playableRegion = playableRegion;
}
@Override
public PlayableRegionMatchModule createMatchModule(Match match) {
return new PlayableRegionMatchModule(match, this.playableRegion);
}
public static PlayableRegionModule parse(MapModuleContext context, Logger log, Document doc) throws InvalidXMLException {
Element playableRegionElement = doc.getRootElement().getChild("playable");
if(playableRegionElement != null) {
return new PlayableRegionModule(context.needModule(RegionParser.class).property(playableRegionElement).legacy().union());
}
return null;
}
}