Finished what I was initially working on for ComputerTile

This commit is contained in:
2025-01-10 18:41:40 -05:00
parent bd8ce016bf
commit 438a7ae632
2 changed files with 40 additions and 2 deletions

View File

@@ -195,6 +195,40 @@ namespace CaveGame::Core
};
class WaterTile : public LiquidTile
{
public:
WaterTile();
WaterTile(TileID id, const std::string& name, const Color4& color);
void ForcedTicc(ITileMap* world, TileState state, int x, int y) override {
if (world->GetTile(x, y-1) == TileID::LAVA) {
world->SetTile(x, y-1, TileID::OBSIDIAN);
world->SetTile(x, y, TileID::AIR);
return;
}
if (world->GetTile(x, y+1) == TileID::LAVA) {
world->SetTile(x, y+1, TileID::OBSIDIAN);
world->SetTile(x, y, TileID::AIR);
return;
}
if (world->GetTile(x-1, y) == TileID::LAVA) {
world->SetTile(x-1, y, TileID::OBSIDIAN);
world->SetTile(x, y, TileID::AIR);
return;
}
if (world->GetTile(x+1, y) == TileID::LAVA) {
world->SetTile(x+1, y, TileID::OBSIDIAN);
world->SetTile(x, y, TileID::AIR);
return;
}
LiquidTile::ForcedTicc(world, state, x, y);
};
bool DoesForcedTicc() const override { return true;}
};
class SoilTile : public Tile
{
public:
@@ -412,7 +446,7 @@ namespace CaveGame::Core
static const Tile Ruby;
static const Tile Amber;
static const Tile Obsidian;
static const Tile Obsidian {ID::OBSIDIAN, "Obsidian", Colors::Purples::DarkMagenta};
static const SaplingTile OakSapling;
@@ -454,7 +488,7 @@ namespace CaveGame::Core
static const Tile BirchPlank;
static const LiquidTile Water {ID::WATER, "Water", Colors::Blues::DodgerBlue};
static const WaterTile Water {ID::WATER, "Water", Colors::Blues::DodgerBlue};
static const LiquidTile Blood;
static const LiquidTile Sludge;
static const LiquidTile Lava {ID::LAVA, "Lava", Colors::Red};

View File

@@ -275,4 +275,8 @@ namespace CaveGame::Core
uint16_t index = (uint16_t)data->NumericID();
registered_tiles[index] = data;
}
WaterTile::WaterTile() : LiquidTile() {}
WaterTile::WaterTile(TileID id, const std::string &name, const Color4 &color) : LiquidTile(id, name, color) {}
}