too many things

This commit is contained in:
2025-07-18 13:11:18 +02:00
parent b788caafa6
commit 6d0e56eb46
26 changed files with 529 additions and 191 deletions

View File

@@ -1,5 +1,6 @@
#pragma once
#include <td/simulation/WorldTicker.h>
#include <td/game/WorldTypes.h>
#include <td/protocol/packet/Packets.h>
@@ -19,11 +20,10 @@ class World {
TilePalette m_TilePalette;
MobList m_Mobs;
sim::WorldSnapshot m_CurrentState;
TowerList m_Towers;
TeamList m_Teams;
private:
sim::WorldTicker m_Ticker;
public:
World();
@@ -34,8 +34,6 @@ class World {
bool LoadMapFromFile(const std::string& fileName);
bool SaveMap(const std::string& fileName) const;
void Tick(std::uint64_t delta);
void SpawnMobAt(MobID id, MobType type, std::uint8_t level, PlayerID sender, float x, float y, Direction dir);
TowerPtr PlaceTowerAt(TowerID id, TowerType type, std::int32_t x, std::int32_t y, PlayerID builder);
@@ -83,47 +81,49 @@ class World {
}
const MobList& GetMobList() const {
return m_Mobs;
return m_CurrentState.m_Mobs;
}
MobList& GetMobList() {
return m_Mobs;
return m_CurrentState.m_Mobs;
}
const Color* GetTileColor(TilePtr tile) const;
Team& GetRedTeam() {
return m_Teams[static_cast<std::uint8_t>(TeamColor::Red)];
return m_CurrentState.m_Teams[static_cast<std::uint8_t>(TeamColor::Red)];
}
const Team& GetRedTeam() const {
return m_Teams[static_cast<std::uint8_t>(TeamColor::Red)];
return m_CurrentState.m_Teams[static_cast<std::uint8_t>(TeamColor::Red)];
}
Team& GetBlueTeam() {
return m_Teams[static_cast<std::uint8_t>(TeamColor::Blue)];
return m_CurrentState.m_Teams[static_cast<std::uint8_t>(TeamColor::Blue)];
}
const Team& GetBlueTeam() const {
return m_Teams[static_cast<std::uint8_t>(TeamColor::Red)];
return m_CurrentState.m_Teams[static_cast<std::uint8_t>(TeamColor::Red)];
}
Team& GetTeam(TeamColor team) {
return m_Teams[static_cast<std::uint8_t>(team)];
return m_CurrentState.m_Teams[static_cast<std::uint8_t>(team)];
}
const Team& GetTeam(TeamColor team) const {
return m_Teams[static_cast<std::uint8_t>(team)];
return m_CurrentState.m_Teams[static_cast<std::uint8_t>(team)];
}
const TeamList& GetTeams() const {
return m_Teams;
return m_CurrentState.m_Teams;
}
const TowerList& GetTowers() const {
return m_Towers;
return m_CurrentState.m_Towers;
}
TowerPtr GetTowerById(TowerID tower);
const Player* GetPlayerById(PlayerID id) const;
void Tick(const protocol::LockStep& a_LockStep, FpFloat a_Delta);
private:
void TickMobs(std::uint64_t delta);
void CleanDeadMobs();