package gamecontrollers.commandcreator;

import gamecontrollers.Response;
import gamecontrollers.commands.GameplayActionCommand;
import models.board.Direction;
import models.board.Space;
import models.board.TileComponent;

public class TilePlacementController <A extends Space, B extends TileComponent> extends TileCommandCreator {
	private Space currentSpace;
	private TileComponent currentTile;
	
	public TilePlacementController(Space currentSpace, TileComponent currentTile) {
		this.currentSpace = currentSpace;
		this.currentTile = currentTile;
	}
	
	public Space getCurrentSpace() {
		return currentSpace;
	}

	public void setCurrentSpace(Space currentSpace) {
		this.currentSpace = currentSpace;
	}

	public TileComponent getCurrentTile() {
		return currentTile;
	}

	public void setCurrentTile(TileComponent currentTile) {
		this.currentTile = currentTile;
	}
	
	public void placeTileComponent() {
		
	}
	
	public void move(Direction direction) {
		
	}
	
	public void rotateCurrentTileComponent() {
		
	}


    /*
    This method will return the constructed command
 */
    public GameplayActionCommand getCommand(){

        // TODO implement
        return null;

    }

    /*
        This method will return the AP cost of the command that would
        be required to perform the command
     */
    public int getCost(){
        return 0;
    }

    /*

     */
    public Response checkPossible(){
        return null;
    }
	
}

@@ -256,51 +256,8 @@
 ller
- %3CA extends Space, B extends TileComponent%3E
  ext
@@ -351,568 +351,1178 @@
 le;%0A
-%09%0A%09public TilePlacementController(Space currentSpace, TileComponent currentTile) %7B%0A%09%09this.currentSpace = currentSpace;%0A%09%09this.currentTile = currentTile;%0A%09%7D%0A%09%0A%09public Space getCurrentSpace() %7B%0A%09%09return currentSpace;%0A%09%7D%0A%0A%09public void setCurrentSpace(Space currentSpace) %7B%0A%09%09this.currentSpace = currentSpace;%0A%09%7D%0A%0A%09public TileComponent getCurrentTile() %7B%0A%09%09return currentTile;%0A%09%7D%0A%0A%09public void setCurrentTile(TileComponent currentTile) %7B%0A%09%09this.currentTile = currentTile;%0A%09%7D%0A%09%0A%09public void placeTileComponent() %7B%0A%09%09%0A%09%7D%0A%09%0A%09public void move(Direction direction) %7B%0A%09%09
+%0A    /*%0A  ========================================================================%0A     CONSTRUCTORS%0A  ========================================================================%0A   */%0A%09public TilePlacementController(Space currentSpace, TileComponent currentTile) %7B%0A%09%09this.currentSpace = currentSpace;%0A%09%09this.currentTile = currentTile;%0A%09%7D%0A%0A    /*%0A   ========================================================================%0A      GETTERS AND SETTERS%0A   ========================================================================%0A    */%0A%0A%09public Space getCurrentSpace() %7B%0A%09%09return currentSpace;%0A%09%7D%0A%0A%09public void setCurrentSpace(Space currentSpace) %7B%0A%09%09this.currentSpace = currentSpace;%0A%09%7D%0A%0A%09public TileComponent getCurrentTile() %7B%0A%09%09return currentTile;%0A%09%7D%0A%0A%09public void setCurrentTile(TileComponent currentTile) %7B%0A%09%09this.currentTile = currentTile;%0A%09%7D%0A%0A%0A    /*%0A  ========================================================================%0A     PUBLIC METHODS%0A  ========================================================================%0A   */%0A%0A%09public void move(Direction direction) %7B%0A%09%09//traverse in the space direction%0A        currentSpace = currentSpace.getAdjacentSpace(direction);
 %0A%09%7D%0A

Implement move and add some comments, getting ready for pull