/* * ShootOFF - Software for Laser Dry Fire Training * Copyright (C) 2016 phrack * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package com.shootoff.courses; import java.util.List; import java.util.Optional; import com.shootoff.gui.LocatedImage; import com.shootoff.targets.Target; import javafx.geometry.Dimension2D; public class Course { private final Optional<LocatedImage> background; private final List<Target> targets; private final Optional<Dimension2D> resolution; public Course(final List<Target> targets) { background = Optional.empty(); this.targets = targets; resolution = Optional.empty(); } public Course(final LocatedImage background, final List<Target> targets) { this.background = Optional.of(background); this.targets = targets; resolution = Optional.empty(); } public Course(final Optional<LocatedImage> background, final List<Target> targets, final Dimension2D resolution) { this.background = background; this.targets = targets; this.resolution = Optional.of(resolution); } public Optional<LocatedImage> getBackground() { return background; } public List<Target> getTargets() { return targets; } /** * The dimensions of the arena when the course was saved. * * @return Optional.empty for courses saved prior to 3.7 */ public Optional<Dimension2D> getResolution() { if (resolution.isPresent()) { return resolution; } else { return Optional.empty(); } } }