diff --git a/.idea/.idea.Motherload/.idea/workspace.xml b/.idea/.idea.Motherload/.idea/workspace.xml
index d4b6ed4..02e275f 100644
--- a/.idea/.idea.Motherload/.idea/workspace.xml
+++ b/.idea/.idea.Motherload/.idea/workspace.xml
@@ -10,32 +10,10 @@
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -208,6 +186,11 @@
+
+
+
+
+
@@ -341,7 +324,7 @@
-
+
@@ -375,7 +358,15 @@
1712182067316
-
+
+
+ 1712359406452
+
+
+
+ 1712359406452
+
+
@@ -388,7 +379,8 @@
-
+
+
diff --git a/Game/GridSystem/WorldTile.cpp b/Game/GridSystem/WorldTile.cpp
index 9798c03..70f2fe0 100644
--- a/Game/GridSystem/WorldTile.cpp
+++ b/Game/GridSystem/WorldTile.cpp
@@ -15,10 +15,17 @@ WorldTile::WorldTile(const Point2f& position, GroundTileType* groundTileType, Te
// m_pTexture = new Texture(dirtPath);
m_pTexture = pTextureManager->GetTexture(groundTileType->getPath());
- m_pBottomLeftTexture = pTextureManager->GetTexture("tiles/dirt/sidepieces/bottomRight.png");
- m_pBottomRightTexture = pTextureManager->GetTexture("tiles/dirt/sidepieces/bottomLeft.png");
- m_pTopLeftTexture = pTextureManager->GetTexture("tiles/dirt/sidepieces/topRight.png");
- m_pTopRightTexture = pTextureManager->GetTexture("tiles/dirt/sidepieces/topLeft.png");
+ m_pBottomLeftTexture = pTextureManager->GetTexture("tiles/dirt/sidepieces/bottomLeft.png");
+ m_pBottomRightTexture = pTextureManager->GetTexture("tiles/dirt/sidepieces/bottomRight.png");
+ m_pTopLeftTexture = pTextureManager->GetTexture("tiles/dirt/sidepieces/topLeft.png");
+ m_pTopRightTexture = pTextureManager->GetTexture("tiles/dirt/sidepieces/topRight.png");
+
+ m_pMiddleBottomTexture = pTextureManager->GetTexture("tiles/dirt/sidepieces/middleBottom.png");
+ m_pMiddleTopTexture = pTextureManager->GetTexture("tiles/dirt/sidepieces/middleTop.png");
+ m_pMiddleLeftTexture = pTextureManager->GetTexture("tiles/dirt/sidepieces/middleLeft.png");
+ m_pMiddleRightTexture = pTextureManager->GetTexture("tiles/dirt/sidepieces/middleRight.png");
+
+ m_pAllTexture = pTextureManager->GetTexture("tiles/dirt/sidepieces/all.png");
}
WorldTile::~WorldTile() {
delete m_pTexture;
@@ -32,25 +39,117 @@ void WorldTile::Draw() {
}
}
-
- if(m_Hightlight) {
- for (int i = 0; i < 8; i++) {
- WorldTile* tile = m_SurroundingTiles.GetTile(static_cast(i));
- if(tile != nullptr) { //Tile exists
- //TODO: Wow Big mess
- GroundTileTypes type = tile->GetTileType()->getType();
- if(type == Tiles::AIR->getType()) {
- utils::SetColor(Colors::BLACK);
- utils::FillRect(Rectf{tile->GetPosition(), Point2f{50,50}});
- continue;
- }
- if(type != Tiles::AIR->getType()) {
- utils::SetColor(Colors::YELLOW);
- utils::FillRect(Rectf{tile->GetPosition(), Point2f{50,50}});
- }
+ //check if it's all around dirt
+ bool allDirt = true;
+ for (int i = 0; i < 8; i++) {
+ WorldTile* tile = m_SurroundingTiles.GetTile(static_cast(i));
+ if(tile != nullptr) { //Tile exists
+ GroundTileTypes type = tile->GetTileType()->getType();
+ if(type != Tiles::DIRT->getType()) {
+ allDirt = false;
+ break;
}
}
}
+ if(allDirt) {
+ m_pAllTexture->Draw(m_Position);
+ return;
+ }
+
+ if(*m_GroundTileType == Tiles::AIR) {
+ WorldTile* topLeft = m_SurroundingTiles.GetTile(TileDirection::TopLeft);
+ if(topLeft != nullptr) {
+ GroundTileTypes type = topLeft->GetTileType()->getType();
+ if(type != Tiles::AIR->getType()) {
+ m_pTopLeftTexture->Draw(m_Position);
+ }
+ }
+
+ WorldTile* topRight = m_SurroundingTiles.GetTile(TileDirection::TopRight);
+ if(topRight != nullptr) {
+ GroundTileTypes type = topRight->GetTileType()->getType();
+ if(type != Tiles::AIR->getType()) {
+ m_pTopRightTexture->Draw(m_Position);
+ }
+ }
+
+ WorldTile* bottomLeft = m_SurroundingTiles.GetTile(TileDirection::BottomLeft);
+ if(bottomLeft != nullptr) {
+ GroundTileTypes type = bottomLeft->GetTileType()->getType();
+ if(type != Tiles::AIR->getType()) {
+ m_pBottomLeftTexture->Draw(m_Position);
+ }
+ }
+
+ WorldTile* bottomRight = m_SurroundingTiles.GetTile(TileDirection::BottomRight);
+ if(bottomRight != nullptr) {
+ GroundTileTypes type = bottomRight->GetTileType()->getType();
+ if(type != Tiles::AIR->getType()) {
+ m_pBottomRightTexture->Draw(m_Position);
+ }
+ }
+
+ WorldTile* middleTop = m_SurroundingTiles.GetTile(TileDirection::TopMiddle);
+ if(middleTop != nullptr) {
+ GroundTileTypes type = middleTop->GetTileType()->getType();
+ if(type != Tiles::AIR->getType()) {
+ m_pMiddleTopTexture->Draw(m_Position);
+ }
+ }
+
+ WorldTile* middleBottom = m_SurroundingTiles.GetTile(TileDirection::BottomMiddle);
+ if(middleBottom != nullptr) {
+ GroundTileTypes type = middleBottom->GetTileType()->getType();
+ if(type != Tiles::AIR->getType()) {
+ m_pMiddleBottomTexture->Draw(m_Position);
+ }
+ }
+
+ WorldTile* middleLeft = m_SurroundingTiles.GetTile(TileDirection::MiddleLeft);
+ if(middleLeft != nullptr) {
+ GroundTileTypes type = middleLeft->GetTileType()->getType();
+ if(type != Tiles::AIR->getType()) {
+ m_pMiddleLeftTexture->Draw(m_Position);
+ }
+ }
+
+ WorldTile* middleRight = m_SurroundingTiles.GetTile(TileDirection::MiddleRight);
+ if(middleRight != nullptr) {
+ GroundTileTypes type = middleRight->GetTileType()->getType();
+ if(type != Tiles::AIR->getType()) {
+ m_pMiddleRightTexture->Draw(m_Position);
+ }
+ }
+
+ WorldTile* bottomMiddle = m_SurroundingTiles.GetTile(TileDirection::BottomMiddle);
+ if(bottomMiddle != nullptr) {
+ GroundTileTypes type = bottomMiddle->GetTileType()->getType();
+ if(type != Tiles::AIR->getType()) {
+ m_pMiddleBottomTexture->Draw(m_Position);
+ }
+ }
+
+ }
+
+
+ // if(m_Hightlight) {
+ // for (int i = 0; i < 8; i++) {
+ // WorldTile* tile = m_SurroundingTiles.GetTile(static_cast(i));
+ // if(tile != nullptr) { //Tile exists
+ // //TODO: Wow Big mess
+ // GroundTileTypes type = tile->GetTileType()->getType();
+ // if(type == Tiles::AIR->getType()) {
+ // utils::SetColor(Colors::BLACK);
+ // utils::FillRect(Rectf{tile->GetPosition(), Point2f{50,50}});
+ // continue;
+ // }
+ // if(type != Tiles::AIR->getType()) {
+ // utils::SetColor(Colors::YELLOW);
+ // utils::FillRect(Rectf{tile->GetPosition(), Point2f{50,50}});
+ // }
+ // }
+ // }
+ // }
//Tile is air, So check 8 tiles around
// Check the 4 tiles diagonally
diff --git a/Game/GridSystem/WorldTile.h b/Game/GridSystem/WorldTile.h
index 5b24116..db02b34 100644
--- a/Game/GridSystem/WorldTile.h
+++ b/Game/GridSystem/WorldTile.h
@@ -140,6 +140,12 @@ private:
Texture* m_pBottomLeftTexture;
Texture* m_pBottomRightTexture;
+ Texture* m_pMiddleTopTexture;
+ Texture* m_pMiddleBottomTexture;
+ Texture* m_pMiddleLeftTexture;
+ Texture* m_pMiddleRightTexture;
+
+ Texture* m_pAllTexture;
};
diff --git a/Resources/fonts/verdana.ttf b/Resources/fonts/verdana.ttf
new file mode 100644
index 0000000..754a9b7
Binary files /dev/null and b/Resources/fonts/verdana.ttf differ
diff --git a/Resources/tiles/dirt/sidepieces/all.png b/Resources/tiles/dirt/sidepieces/all.png
new file mode 100644
index 0000000..d3e591d
Binary files /dev/null and b/Resources/tiles/dirt/sidepieces/all.png differ
diff --git a/Resources/tiles/dirt/sidepieces/middleBottom.png b/Resources/tiles/dirt/sidepieces/middleBottom.png
new file mode 100644
index 0000000..a3f6bb7
Binary files /dev/null and b/Resources/tiles/dirt/sidepieces/middleBottom.png differ
diff --git a/Resources/tiles/dirt/sidepieces/middleLeft.png b/Resources/tiles/dirt/sidepieces/middleLeft.png
new file mode 100644
index 0000000..3463a8a
Binary files /dev/null and b/Resources/tiles/dirt/sidepieces/middleLeft.png differ
diff --git a/Resources/tiles/dirt/sidepieces/middleRight.png b/Resources/tiles/dirt/sidepieces/middleRight.png
new file mode 100644
index 0000000..f62ce7c
Binary files /dev/null and b/Resources/tiles/dirt/sidepieces/middleRight.png differ
diff --git a/Resources/tiles/dirt/sidepieces/middleTop.png b/Resources/tiles/dirt/sidepieces/middleTop.png
new file mode 100644
index 0000000..90b79eb
Binary files /dev/null and b/Resources/tiles/dirt/sidepieces/middleTop.png differ