// Path: src/com/sproutlife/model/step/GameStep.java
// public static enum StepType { 
//     GAME_STEP, 
//     LIFE_STEP, 
//     SPROUT_STEP, 
//     MUTATION_STEP, 
//     PRUNE_STEP,
//     COLOR_STEP,
//     STEP_BUNDLE
// }
// 
// Path: src/com/sproutlife/model/step/GameStepEvent.java
// public class GameStepEvent {
// 
//     StepType stepType;
//     
//     public GameStepEvent(StepType stepType) {
//         this.stepType = stepType;
//     }
//     
//     public StepType getStepType() {
//         return stepType;
//     }
// }
// 
// Path: src/com/sproutlife/model/step/GameStepListener.java
// public interface GameStepListener {
//     
//     public void stepPerformed(GameStepEvent event);
// 
// }


import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import com.sproutlife.model.step.GameStep.StepType;
import com.sproutlife.model.step.GameStepEvent;
import com.sproutlife.model.step.GameStepListener;
/*******************************************************************************
 * Copyright (c) 2016 Alex Shapiro - github.com/shpralex
 * This program and the accompanying materials
 * are made available under the terms of the The MIT License (MIT)
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
 *******************************************************************************/
package com.sproutlife.model;



public class GameThread {
    private boolean playGame = false;

    Thread innerThread;

// Path: src/com/sproutlife/model/step/GameStep.java
// public static enum StepType { 
//     GAME_STEP, 
//     LIFE_STEP, 
//     SPROUT_STEP, 
//     MUTATION_STEP, 
//     PRUNE_STEP,
//     COLOR_STEP,
//     STEP_BUNDLE
// }
// 
// Path: src/com/sproutlife/model/step/GameStepEvent.java
// public class GameStepEvent {
// 
//     StepType stepType;
//     
//     public GameStepEvent(StepType stepType) {
//         this.stepType = stepType;
//     }
//     
//     public StepType getStepType() {
//         return stepType;
//     }
// }
// 
// Path: src/com/sproutlife/model/step/GameStepListener.java
// public interface GameStepListener {
//     
//     public void stepPerformed(GameStepEvent event);
// 
// }


// Path: src/com/sproutlife/model/GameThread.java
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import com.sproutlife.model.step.GameStep.StepType;
import com.sproutlife.model.step.GameStepEvent;
import com.sproutlife.model.step.GameStepListener;

/*******************************************************************************
 * Copyright (c) 2016 Alex Shapiro - github.com/shpralex
 * This program and the accompanying materials
 * are made available under the terms of the The MIT License (MIT)
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
 *******************************************************************************/
package com.sproutlife.model;



public class GameThread {
    private boolean playGame = false;

    Thread innerThread;

    List<GameStepListener> gameStepListeners;