// Asteroid Push - A game featuring selfmade spaceships and pompous physics // Copyright (C) 2013 Christian Meyer, Silvan Wegmann // // 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 org.codecranachan.asteroidpush.base.ui; import java.util.Collection; import java.util.Vector; import org.codecranachan.asteroidpush.base.ResourceLoader; import org.codecranachan.asteroidpush.base.ui.states.SimulationState; import org.codecranachan.asteroidpush.base.ui.states.WorkshopState; import org.newdawn.slick.state.GameState; /** * Abstracts game state creation for the game container. * * @author Konfuzzyus * */ public class GameStateFactory { private ResourceLoader resourceLoader; public GameStateFactory(ResourceLoader resourceLoader) { this.resourceLoader = resourceLoader; } public Collection<GameState> createGameStates() { Vector<GameState> states = new Vector<GameState>(); // Note: First added state is the initial state of the game states.add(new WorkshopState(resourceLoader)); states.add(new SimulationState(resourceLoader)); return states; } }