Conways-Game-Of-Life/ConwaysGameOfLife/Tile.h
Robert Altner e3e9877ec0 Everything has been added.
I cried
2018-03-20 20:52:09 +01:00

75 lines
1.3 KiB
C++

/**
* Tile.h
* Basically a wrapper class for sf::Rextangle but with
* extra features
*
* @author Robert Altner
* @version 1.0
*/
#pragma once
#include "stdafx.h"
class Tile
{
public:
Tile(sf::Vector2f position, sf::Vector2f size);
~Tile();
/**
Returns state of a tile
@return True if alive, False if dead
*/
bool getTileState() { return state; }
bool getWillChangeState() { return willChangeTo; }
/**
Sets new size of Tile
@param size new size
*/
void resize(sf::Vector2f size) { m_tile.setSize(size); }
/**
Sets new position of Tile
@param position new position
*/
void reposition(sf::Vector2f position) { m_tile.setPosition(position); }
/**
Sets a tile either as alive or dead
*/
void applyStateChange();
/**
Makes a tile either alive or dead
@param state New State
*/
void forceStateChange(bool state) { willChangeTo = state; applyStateChange(); }
/**
Sets willChangeTo
@param should Should the cell die?
*/
void changeStateTo(bool should) { willChangeTo = should; }
/**
Renders the Tile
@param window Reference to window
@return False if an error occured
*/
bool render(sf::RenderWindow& window);
private:
sf::RectangleShape m_tile;
bool state; //True = alive, False = dead
bool willChangeTo;
};