diff --git a/.idea/.idea.Motherload/.idea/workspace.xml b/.idea/.idea.Motherload/.idea/workspace.xml
index 6d98451..537d389 100644
--- a/.idea/.idea.Motherload/.idea/workspace.xml
+++ b/.idea/.idea.Motherload/.idea/workspace.xml
@@ -10,27 +10,18 @@
-
-
-
-
-
-
-
+
-
-
-
-
-
+
+
+
+
-
-
-
+
+
-
@@ -88,405 +79,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -504,28 +97,28 @@
- {
- "keyToString": {
- "C++ Project.Game.executor": "Run",
- "RunOnceActivity.OpenProjectViewOnStart": "true",
- "RunOnceActivity.ShowReadmeOnStart": "true",
- "ignore.virus.scanning.warn.message": "true",
- "node.js.detected.package.eslint": "true",
- "node.js.detected.package.tslint": "true",
- "node.js.selected.package.eslint": "(autodetect)",
- "node.js.selected.package.tslint": "(autodetect)",
- "nodejs_package_manager_path": "npm",
- "settings.editor.selected.configurable": "CppClangTidyOptionsId",
- "vue.rearranger.settings.migration": "true"
+
+}]]>
@@ -609,7 +202,7 @@
-
+
@@ -635,7 +228,15 @@
1712045841557
-
+
+
+ 1712182067316
+
+
+
+ 1712182067316
+
+
@@ -647,7 +248,8 @@
-
+
+
diff --git a/Game/GridSystem/WorldGridManager.cpp b/Game/GridSystem/WorldGridManager.cpp
index 217aa34..d6e3559 100644
--- a/Game/GridSystem/WorldGridManager.cpp
+++ b/Game/GridSystem/WorldGridManager.cpp
@@ -1,4 +1,9 @@
#include "WorldGridManager.h"
+
+#include
+
+#include "WorldTile.h"
+
WorldGridManager::WorldGridManager() {
for (size_t x { 0 }; x < WORLD_WIDTH; ++x) {
for (size_t y { 0 }; y < WORLD_HEIGHT; ++y) {
@@ -9,10 +14,42 @@ WorldGridManager::WorldGridManager() {
}
WorldGridManager::~WorldGridManager() {
+}
+std::vector WorldGridManager::GetSurroundingTiles(const WorldTile* world_tile) {
+ std::vector tiles;
+ Point2f pos = world_tile->GetPosition();
+ Point2f gridCoords = this->GetIndexFromPosition(pos);
+ int x = gridCoords.x;
+ //TODO: Stupid fix, fix this
+ int y = gridCoords.y - 1;
+ if (x < 0 || x >= WORLD_WIDTH || y < 0 || y >= WORLD_HEIGHT) {
+ return tiles;
+ }
+ for (int i { -1 }; i <= 1; ++i) {
+ for (int j { -1 }; j <= 1; ++j) {
+ if (i == 0 && j == 0) {
+ continue;
+ }
+ if(x + i < 0 || x + i >= WORLD_WIDTH || y + j < 0 || y + j >= WORLD_HEIGHT) {
+ continue;
+ }
+ WorldTile* tile = GetTileAtIndex(x + i, y + j);
+ if (tile != nullptr) {
+ tiles.push_back(tile);
+ }
+ }
+ }
+ return tiles;
+}
+Point2f WorldGridManager::GetIndexFromPosition(Point2f position) {
+ int x = int(position.x / TILE_WIDTH + WORLD_WIDTH / 2);
+ int y = int(-position.y / TILE_HEIGHT);
+ return Point2f{ float(x), float(y) };
}
WorldTile * WorldGridManager::GetTileAtIndex(const int x, const int y) const {
if (x < 0 || x >= WORLD_WIDTH || y < 0 || y >= WORLD_HEIGHT) {
return nullptr;
+ //TODO: see if this can be Math'ed out
}
return m_worldTiles[x][y];
}
diff --git a/Game/GridSystem/WorldGridManager.h b/Game/GridSystem/WorldGridManager.h
index 2fe331f..1b69b3a 100644
--- a/Game/GridSystem/WorldGridManager.h
+++ b/Game/GridSystem/WorldGridManager.h
@@ -1,5 +1,6 @@
#pragma once
#include
+#include
#include "structs.h"
@@ -30,6 +31,8 @@ class WorldGridManager
public:
WorldGridManager();
~WorldGridManager();
+ std::vector GetSurroundingTiles(const WorldTile* world_tile);
+ Point2f GetIndexFromPosition(Point2f position);
WorldGridManager(const WorldGridManager& other) = default;
diff --git a/Game/GridSystem/WorldTile.cpp b/Game/GridSystem/WorldTile.cpp
index 21c1692..226ff2d 100644
--- a/Game/GridSystem/WorldTile.cpp
+++ b/Game/GridSystem/WorldTile.cpp
@@ -1,14 +1,22 @@
#include "WorldTile.h"
+#include
+
#include "colors.h"
#include "../TextureManager.h"
#include "utils.h"
+#include "WorldGridManager.h"
-WorldTile::WorldTile(const Point2f& position, GroundTileType* groundTileType, TextureManager* pTextureManager) : m_Position { position }, m_GroundTileType { groundTileType } {
+WorldTile::WorldTile(const Point2f& position, GroundTileType* groundTileType, TextureManager* pTextureManager, WorldGridManager* pGridManager) : m_Position { position }, m_GroundTileType { groundTileType }, m_pGridManager { pGridManager } {
// const std::string dirtPath = + "tiles/dirt/dirt" + std::to_string(utils::randRange(1, 5)) + ".png";
// 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");
}
WorldTile::~WorldTile() {
delete m_pTexture;
@@ -20,7 +28,49 @@ void WorldTile::Draw() const {
utils::SetColor(Colors::GREEN);
utils::FillRect(m_Position, 50, 50);
}
+ return;
}
+ //Tile is air, So check 8 tiles around
+ // Check the 4 tiles diagonally
+ Point2f CurrentIndex = m_pGridManager->GetIndexFromPosition(m_Position);
+
+ WorldTile* pTopLeft = m_pGridManager->GetTileAtIndex(CurrentIndex.x - 1, CurrentIndex.y - 1);
+ WorldTile* pTopRight = m_pGridManager->GetTileAtIndex(CurrentIndex.x + 1, CurrentIndex.y - 1);
+ WorldTile* pBottomLeft = m_pGridManager->GetTileAtIndex(CurrentIndex.x - 1, CurrentIndex.y + 1);
+ WorldTile* pBottomRight = m_pGridManager->GetTileAtIndex(CurrentIndex.x + 1, CurrentIndex.y + 1);
+
+
+ GroundTileType* pTopLeftType = pTopLeft != nullptr ? pTopLeft->GetTileType() : Tiles::AIR;
+ GroundTileType* pTopRightType = pTopRight != nullptr ? pTopRight->GetTileType() : Tiles::AIR;
+ GroundTileType* pBottomLeftType = pBottomLeft != nullptr ? pBottomLeft->GetTileType() : Tiles::AIR;
+ GroundTileType* pBottomRightType = pBottomRight != nullptr ? pBottomRight->GetTileType() : Tiles::AIR;
+
+ if(pBottomLeftType == Tiles::AIR && pBottomRightType == Tiles::AIR && pTopLeftType == Tiles::AIR && pTopRightType == Tiles::AIR) {
+ return;
+ }
+
+ if(pTopLeftType != Tiles::AIR) {
+ m_pTopLeftTexture->Draw(m_Position);
+ }
+ if(pTopRightType != Tiles::AIR) {
+ m_pTopRightTexture->Draw(m_Position);
+ }
+ if(pBottomLeftType != Tiles::AIR) {
+ m_pBottomLeftTexture->Draw(m_Position);
+ }
+ if(pBottomRightType != Tiles::AIR) {
+ m_pBottomRightTexture->Draw(m_Position);
+ }
+
+ // if(m_Hightlight) {
+ // //Draw a rect over the diagonal tiles
+ // utils::SetColor(Colors::GREEN);
+ // utils::FillRect(m_Position, 50, 50);
+ // utils::FillRect(Rectf{ pTopLeft->GetPosition(), Point2f{ 50, 50} });
+ // utils::FillRect(Rectf{ pTopRight->GetPosition(), Point2f{ 50, 50} });
+ // utils::FillRect(Rectf{ pBottomLeft->GetPosition(), Point2f{ 50, 50} });
+ // utils::FillRect(Rectf{ pBottomRight->GetPosition(), Point2f{ 50, 50} });
+ // }
}
Collision::TileCollisionRect WorldTile::GetCollisionRect() {
return Collision::TileCollisionRect { m_Position, GetSize(), ( this ) };
diff --git a/Game/GridSystem/WorldTile.h b/Game/GridSystem/WorldTile.h
index d9418a6..8363f28 100644
--- a/Game/GridSystem/WorldTile.h
+++ b/Game/GridSystem/WorldTile.h
@@ -1,6 +1,7 @@
#pragma once
#include "Collision.h"
#include "Texture.h"
+#include "WorldGridManager.h"
#include "../TextureManager.h"
@@ -94,10 +95,11 @@ class WorldTile
{
public:
WorldTile() = default;
- WorldTile(const Point2f& position, GroundTileType* groundTileType, TextureManager* pTextureManager);
+ WorldTile(const Point2f& position, GroundTileType* groundTileType, TextureManager* pTextureManager, WorldGridManager* pGridManager);
~WorldTile();
void Draw() const;
+ void Update();
Point2f GetPosition() const {
return m_Position;
@@ -129,6 +131,13 @@ private:
Collision::CollisionRect m_CollisionRect;
+ WorldGridManager* m_pGridManager;
+
+ Texture* m_pTopLeftTexture;
+ Texture* m_pTopRightTexture;
+ Texture* m_pBottomLeftTexture;
+ Texture* m_pBottomRightTexture;
+
};
diff --git a/Game/Gui/Button.cpp b/Game/Gui/Button.cpp
index 4ab2924..32200a6 100644
--- a/Game/Gui/Button.cpp
+++ b/Game/Gui/Button.cpp
@@ -26,11 +26,17 @@ void Button::Update(float elapsedSec) {
Rectf buttonRect = Rectf(m_Position, m_Size);
this->m_IsHovered = utils::IsPointInRect(mousePos, buttonRect);
+
m_IsPressed = m_IsHovered && utils::IsMouseButtonDown(SDL_BUTTON_LEFT);
- if(m_IsPressed) {
+ if(m_IsPressed && !m_IsPrimed) {
+ m_IsPrimed = true;
m_OnClick();
}
+
+ if(!m_IsPressed) {
+ m_IsPrimed = false;
+ }
}
diff --git a/Game/Gui/Button.h b/Game/Gui/Button.h
index a7a134c..937cce3 100644
--- a/Game/Gui/Button.h
+++ b/Game/Gui/Button.h
@@ -25,6 +25,7 @@ private:
bool m_IsHovered{ false };
bool m_IsPressed{ false };
+ bool m_IsPrimed{ false };
std::function m_OnClick{ []() { std::cout << "Button not implemented" << std::endl; } };
};
diff --git a/Game/Gui/Screens/FuelScreen.cpp b/Game/Gui/Screens/FuelScreen.cpp
index 6656efa..79563c8 100644
--- a/Game/Gui/Screens/FuelScreen.cpp
+++ b/Game/Gui/Screens/FuelScreen.cpp
@@ -1,6 +1,43 @@
#include "FuelScreen.h"
+
+#include "ScreenManager.h"
+#include "utils.h"
FuelScreen::FuelScreen(const std::string& filePath, Point2f pos, Point2f size, TextureManager* manager): Screen(filePath, pos, size, manager)
{
+ Point2f fuelScreenSize = Point2f { 492, 396 };
+ Point2f fuelScreenCenter = Point2f { utils::GetViewport().x / 2 - fuelScreenSize.x / 2, utils::GetViewport().y / 2 - fuelScreenSize.y / 2 };
+
+ Point2f closeButtonOffset = Point2f { 460, 396 - 14 };
+ Point2f closeButtonPos = fuelScreenCenter + closeButtonOffset;
+ closeButtonPos.y -= 18;
+ Button* closeFuelButton = new Button { "gui/close.png", closeButtonPos, Point2f{0,0}, TextureManager::GetInstance() };
+ closeFuelButton->SetOnClick([this]() { ScreenManager::GetInstance()->CloseScreen(); });
+ this->AddButton(closeFuelButton);
+
+ Point2f oneDollarButtonPos = Point2f { 451, 287 };
+ oneDollarButtonPos += fuelScreenCenter;
+ Button* fiveDollarButton = new Button { "gui/fuel/5dollars.png", oneDollarButtonPos , Point2f{0,0}, TextureManager::GetInstance() };
+ this->AddButton(fiveDollarButton);
+
+ Point2f tenDollarButtonPos = oneDollarButtonPos + Point2f { 113, -1 };
+ tenDollarButtonPos += fuelScreenCenter;
+ Button* tenDollarButton = new Button { "gui/fuel/10dollars.png", tenDollarButtonPos, Point2f{0,0}, TextureManager::GetInstance() };
+ this->AddButton(tenDollarButton);
+
+ Point2f twentyFiveDollarButtonPos = oneDollarButtonPos + Point2f { 0, -89 };
+ twentyFiveDollarButtonPos += fuelScreenCenter;
+ Button* twentyFiveDollarButton = new Button { "gui/fuel/25dollars.png", twentyFiveDollarButtonPos, Point2f{0,0}, TextureManager::GetInstance() };
+ this->AddButton(twentyFiveDollarButton);
+
+ Point2f fiftyDollarButtonPos = twentyFiveDollarButtonPos + Point2f { 114, 0 };
+ Button* fiftyDollarButton = new Button { "gui/fuel/50dollars.png", fiftyDollarButtonPos, Point2f{0,0}, TextureManager::GetInstance() };
+ this->AddButton(fiftyDollarButton);
+
+ Point2f fillTankButtonPos = Point2f { 450, 108 };
+ fillTankButtonPos += fuelScreenCenter;
+ Button* fillTankButton = new Button { "gui/fuel/fillTank.png", fillTankButtonPos, Point2f{0,0}, TextureManager::GetInstance() };
+ this->AddButton(fillTankButton);
+
}
void FuelScreen::Draw() const {
Screen::Draw();
diff --git a/Game/Gui/Screens/ScreenManager.cpp b/Game/Gui/Screens/ScreenManager.cpp
index 0bf7c33..e9d139d 100644
--- a/Game/Gui/Screens/ScreenManager.cpp
+++ b/Game/Gui/Screens/ScreenManager.cpp
@@ -35,43 +35,12 @@ void ScreenManager::CloseScreen() {
void ScreenManager::InitializeScreens() {
Point2f fuelScreenSize = Point2f { 492, 396 };
Point2f fuelScreenCenter = Point2f { utils::GetViewport().x / 2 - fuelScreenSize.x / 2, utils::GetViewport().y / 2 - fuelScreenSize.y / 2 };
- Fuel = new FuelScreen { "gui/fuel/background.png", fuelScreenCenter, fuelScreenSize, TextureManager::GetInstance() };
+ Fuel = new FuelScreen { "gui/fuel/background.png", fuelScreenCenter, Point2f { 0, 0 }, TextureManager::GetInstance() };
- Point2f closeButtonOffset = Point2f { 460, 396 - 14 };
- Point2f closeButtonPos = fuelScreenCenter + closeButtonOffset;
- closeButtonPos.y -= 18;
- Button* closeFuelButton = new Button { "gui/close.png", closeButtonPos, Point2f{0,0}, TextureManager::GetInstance() };
- closeFuelButton->SetOnClick([this]() { CloseScreen(); });
- Fuel->AddButton(closeFuelButton);
-
- Point2f oneDollarButtonPos = Point2f { 451, 287 };
- oneDollarButtonPos += fuelScreenCenter;
- Button* fiveDollarButton = new Button { "gui/fuel/5dollars.png", oneDollarButtonPos , Point2f{0,0}, TextureManager::GetInstance() };
- Fuel->AddButton(fiveDollarButton);
-
- Point2f tenDollarButtonPos = oneDollarButtonPos + Point2f { 113, -1 };
- tenDollarButtonPos += fuelScreenCenter;
- Button* tenDollarButton = new Button { "gui/fuel/10dollars.png", tenDollarButtonPos, Point2f{0,0}, TextureManager::GetInstance() };
- Fuel->AddButton(tenDollarButton);
-
- Point2f twentyFiveDollarButtonPos = oneDollarButtonPos + Point2f { 0, -89 };
- twentyFiveDollarButtonPos += fuelScreenCenter;
- Button* twentyFiveDollarButton = new Button { "gui/fuel/25dollars.png", twentyFiveDollarButtonPos, Point2f{0,0}, TextureManager::GetInstance() };
- Fuel->AddButton(twentyFiveDollarButton);
-
- Point2f fiftyDollarButtonPos = twentyFiveDollarButtonPos + Point2f { 114, 0 };
- Button* fiftyDollarButton = new Button { "gui/fuel/50dollars.png", fiftyDollarButtonPos, Point2f{0,0}, TextureManager::GetInstance() };
- Fuel->AddButton(fiftyDollarButton);
-
- Point2f fillTankButtonPos = Point2f { 450, 108 };
- fillTankButtonPos += fuelScreenCenter;
- Button* fillTankButton = new Button { "gui/fuel/fillTank.png", fillTankButtonPos, Point2f{0,0}, TextureManager::GetInstance() };
- Fuel->AddButton(fillTankButton);
-
Point2f sellScreenSize = Point2f { 533, 398 };
Point2f sellScreenCenter = Point2f { utils::GetViewport().x / 2 - sellScreenSize.x / 2, utils::GetViewport().y / 2 - sellScreenSize.y / 2 };
SellScreen = new Screen { "gui/sell/background.png", sellScreenCenter, sellScreenSize, TextureManager::GetInstance() };
-
+
//m_Button = Button { "gui/close.png", closeButtonPos, closeButtonSize, TextureManager::GetInstance() };
}
diff --git a/Game/WorldLevel.cpp b/Game/WorldLevel.cpp
index 5e5679a..6bcedce 100644
--- a/Game/WorldLevel.cpp
+++ b/Game/WorldLevel.cpp
@@ -39,8 +39,8 @@ WorldLevel::WorldLevel(Camera* camera, Rectf viewport): Level(camera),
default:
std::cout << "??" << '\n';
}
-
- m_gridManager.SetTileAtIndex(x, y, new WorldTile { pos, type, TextureManager::GetInstance() });
+
+ m_gridManager.SetTileAtIndex(x, y, new WorldTile { pos, Tiles::DIRT, TextureManager::GetInstance(), &m_gridManager});
}
}
for (size_t x { 0 }; x < WORLD_WIDTH; ++x) {
@@ -64,8 +64,10 @@ void WorldLevel::Update(float elapsedSec) {
for (size_t x { 0 }; x < WORLD_WIDTH; ++x) {
for (size_t y { 0 }; y < WORLD_HEIGHT; ++y) {
+ m_gridManager.GetTileAtIndex(x, y)->m_Hightlight = false;
if (m_gridManager.GetTileAtIndex(x, y)->GetCollisionRect().Contains(m_mousePos)) {
selectedTile = m_gridManager.GetTileAtIndex(x, y);
+ selectedTile->m_Hightlight = true;
}
}
}
@@ -75,12 +77,18 @@ void WorldLevel::Update(float elapsedSec) {
}
}
- m_player.Update(elapsedSec, *this);
-
- WorldTile* t = m_gridManager.GetTileAtWorldPos(m_mousePos);
- if (t != nullptr) {
- t->SetTileType(Tiles::AIR);
+ //Get the diogonal tiles of the selected tile
+ if(selectedTile != nullptr) {
+ std::vector surroundingTiles = m_gridManager.GetSurroundingTiles(selectedTile);
+ for (WorldTile* tile : surroundingTiles) {
+ if (tile != nullptr) {
+ tile->m_Hightlight = true;
+ }
+ }
}
+
+
+ //m_player.Update(elapsedSec, *this);
Screen* screen = m_screenManager->GetCurrentScreen();
if (screen != nullptr) {
diff --git a/Game/WorldLevel.h b/Game/WorldLevel.h
index 6b420a7..b45d8de 100644
--- a/Game/WorldLevel.h
+++ b/Game/WorldLevel.h
@@ -41,7 +41,7 @@ private:
// ImGui Vars
- bool m_ShowTextureManagerWindow { false };
+ bool m_ShowTextureManagerWindow { true };
bool m_ShowCameraWindow { false };
bool m_ShowPlayerInfo { false };
};
diff --git a/Resources/gui/close.png b/Resources/gui/close.png
new file mode 100644
index 0000000..1e8ae72
Binary files /dev/null and b/Resources/gui/close.png differ
diff --git a/Resources/gui/fuel/10dollars.png b/Resources/gui/fuel/10dollars.png
new file mode 100644
index 0000000..8c6baf6
Binary files /dev/null and b/Resources/gui/fuel/10dollars.png differ
diff --git a/Resources/gui/fuel/25dollars.png b/Resources/gui/fuel/25dollars.png
new file mode 100644
index 0000000..9525c43
Binary files /dev/null and b/Resources/gui/fuel/25dollars.png differ
diff --git a/Resources/gui/fuel/50dollars.png b/Resources/gui/fuel/50dollars.png
new file mode 100644
index 0000000..20f811a
Binary files /dev/null and b/Resources/gui/fuel/50dollars.png differ
diff --git a/Resources/gui/fuel/5dollars.png b/Resources/gui/fuel/5dollars.png
new file mode 100644
index 0000000..c21562e
Binary files /dev/null and b/Resources/gui/fuel/5dollars.png differ
diff --git a/Resources/gui/fuel/background.png b/Resources/gui/fuel/background.png
new file mode 100644
index 0000000..13741cb
Binary files /dev/null and b/Resources/gui/fuel/background.png differ
diff --git a/Resources/gui/fuel/fillTank.png b/Resources/gui/fuel/fillTank.png
new file mode 100644
index 0000000..6e7389d
Binary files /dev/null and b/Resources/gui/fuel/fillTank.png differ
diff --git a/Resources/gui/sell/background.png b/Resources/gui/sell/background.png
new file mode 100644
index 0000000..9d37637
Binary files /dev/null and b/Resources/gui/sell/background.png differ
diff --git a/Resources/tiles/dirt/sidepieces/bottomLeft.png b/Resources/tiles/dirt/sidepieces/bottomLeft.png
new file mode 100644
index 0000000..e4ed241
Binary files /dev/null and b/Resources/tiles/dirt/sidepieces/bottomLeft.png differ
diff --git a/Resources/tiles/dirt/sidepieces/bottomRight.png b/Resources/tiles/dirt/sidepieces/bottomRight.png
new file mode 100644
index 0000000..9fcb890
Binary files /dev/null and b/Resources/tiles/dirt/sidepieces/bottomRight.png differ
diff --git a/Resources/tiles/dirt/sidepieces/topLeft.png b/Resources/tiles/dirt/sidepieces/topLeft.png
new file mode 100644
index 0000000..2077bff
Binary files /dev/null and b/Resources/tiles/dirt/sidepieces/topLeft.png differ
diff --git a/Resources/tiles/dirt/sidepieces/topRight.png b/Resources/tiles/dirt/sidepieces/topRight.png
new file mode 100644
index 0000000..bbcdc69
Binary files /dev/null and b/Resources/tiles/dirt/sidepieces/topRight.png differ