Finished what I was initially working on for ComputerTile
This commit is contained in:
@@ -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};
|
||||
|
@@ -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) {}
|
||||
}
|
Reference in New Issue
Block a user