/*
 * Author: Jasper Slaff
 * Date: 4/21/17
*/

package demo;

import java.util.Iterator;
import java.util.LinkedList;

public class DemoObjState {
	LinkedList<DemoObj> demoObjs;
	
	public DemoObjState(){
		demoObjs = new LinkedList<DemoObj>();
	}
	
	public void clear(){
		demoObjs.clear();
	}
	
	public void addObj(DemoObj obj){
		demoObjs.add(obj);
	}
	
	public Iterator<DemoObj> getObjs(){
		return demoObjs.iterator();
	}
	
	public void growObjs(){
		for(DemoObj obj : demoObjs){
			if(obj instanceof Oct){
				Oct oct = (Oct)obj;
				oct.grow();
			}
		}
	}
	
	public void shrinkObjs(){
		for(DemoObj obj : demoObjs){
			if(obj instanceof Oct){
				Oct oct = (Oct)obj;
				oct.shrink();
			}
		}
	}
	
	public void moveObjsUp(){
		for(DemoObj obj : demoObjs){
			if(obj instanceof Oct){
				Oct oct = (Oct)obj;
				oct.moveUp();
			}
		}
	}
	
	public void moveObjsDown(){
		for(DemoObj obj : demoObjs){
			if(obj instanceof Oct){
				Oct oct = (Oct)obj;
				oct.moveDown();
			}
		}
	}
	
	public void moveObjsRight(){
		for(DemoObj obj : demoObjs){
			if(obj instanceof Oct){
				Oct oct = (Oct)obj;
				oct.moveRight();
			}
		}
	}
	
	public void moveObjsLeft(){
		for(DemoObj obj : demoObjs){
			if(obj instanceof Oct){
				Oct oct = (Oct)obj;
				oct.moveLeft();
			}
		}
	}
	
	public void rotateObjsRight(){
		for(DemoObj obj : demoObjs){
			if(obj instanceof Oct){
				Oct oct = (Oct)obj;
				oct.turnRight();
			}
		}
	}
	
	public void rotateObjsLeft(){
		for(DemoObj obj : demoObjs){
			if(obj instanceof Oct){
				Oct oct = (Oct)obj;
				oct.turnLeft();
			}
		}
	}
}
