diff --git a/CMakeLists.txt b/CMakeLists.txt index cc2e3c4..6fad494 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,7 +34,7 @@ include(cmake/CPM.cmake) CPMAddPackage( NAME mcolor - URL https://git.redacted.cc/maxine/mcolor/archive/Prerelease-6.3.zip + URL https://git.redacted.cc/maxine/mcolor/archive/Release-1.zip ) CPMAddPackage( @@ -44,7 +44,7 @@ CPMAddPackage( CPMAddPackage( NAME jlog - URL https://git.redacted.cc/josh/jlog/archive/Prerelease-17.zip + URL https://git.redacted.cc/josh/jlog/archive/Prerelease-19.zip ) CPMAddPackage( @@ -54,22 +54,22 @@ CPMAddPackage( CPMAddPackage( NAME jstick - URL https://git.redacted.cc/josh/jstick/archive/Prerelease-3.zip + URL https://git.redacted.cc/josh/jstick/archive/Prerelease-4.zip ) CPMAddPackage( NAME ReWindow - URL https://git.redacted.cc/Redacted/ReWindow/archive/Prerelease-32.zip + URL https://git.redacted.cc/Redacted/ReWindow/archive/Prerelease-34.zip ) CPMAddPackage( NAME JGL - URL https://git.redacted.cc/josh/JGL/archive/Prerelease-52.zip + URL https://git.redacted.cc/josh/JGL/archive/Prerelease-58.zip ) CPMAddPackage( NAME JUI - URL https://git.redacted.cc/josh/ReJUI/archive/Prerelease-5.16.zip + URL https://git.redacted.cc/josh/ReJUI/archive/Prerelease-6.2.zip ) CPMAddPackage( diff --git a/Client/CMakeLists.txt b/Client/CMakeLists.txt index 7d73cd7..d49767b 100644 --- a/Client/CMakeLists.txt +++ b/Client/CMakeLists.txt @@ -13,7 +13,6 @@ endif() target_include_directories(CaveClient PUBLIC ${CaveCore_SOURCE_DIR}/include - # ${jstick_SOURCE_DIR}/include ${J3ML_SOURCE_DIR}/include ${JGL_SOURCE_DIR}/include ${JUI_SOURCE_DIR}/include diff --git a/Client/include/Client/ContainerWindow.hpp b/Client/include/Client/ContainerWindow.hpp index 2ae7fdd..cdc472a 100644 --- a/Client/include/Client/ContainerWindow.hpp +++ b/Client/include/Client/ContainerWindow.hpp @@ -26,7 +26,7 @@ namespace CaveGame { : JUI::Window(parent) { auto layout = this->ViewportInstance(); - this->SetTitle(title); + this->Title(title); this->Size(JUI::UDim2::FromPixels(48*rows, 48*cols)); this->MinSize(Vector2(48*rows, 48*cols)); this->SetResizable(false); diff --git a/Client/include/Client/SettingsMenu.hpp b/Client/include/Client/SettingsMenu.hpp index fe57c09..2ba6ca1 100644 --- a/Client/include/Client/SettingsMenu.hpp +++ b/Client/include/Client/SettingsMenu.hpp @@ -28,7 +28,7 @@ namespace CaveGame::Client { using namespace JUI::UDimLiterals; - SetTitle("Settings"); + Title("Settings"); Size({400_px, 400_px}); auto* root_layout = new JUI::VerticalListLayout(this->ViewportInstance()); diff --git a/Client/src/Client/AssetService.cpp b/Client/src/Client/AssetService.cpp index 615c5c2..81be849 100644 --- a/Client/src/Client/AssetService.cpp +++ b/Client/src/Client/AssetService.cpp @@ -44,7 +44,7 @@ void CaveGame::Client::AssetService::EnqueueSound(const std::string& name, const } bool CaveGame::Client::AssetService::LoadAsset(const CaveGame::Client::AssetRequest &request) { - last_asset_processed = request.path; + last_asset_processed = request.path.string(); switch(request.type) { case AssetType::TEXTURE: { @@ -58,7 +58,7 @@ bool CaveGame::Client::AssetService::LoadAsset(const CaveGame::Client::AssetRequ // TODO: We don't support this asset type yet!!! } } - last_asset_processed = request.path; //FilenameFromPath(request.path); + last_asset_processed = request.path.string(); //FilenameFromPath(request.path); total_loaded++; return true; } diff --git a/Client/src/Client/Camera2D.cpp b/Client/src/Client/Camera2D.cpp index 4185775..e382b14 100644 --- a/Client/src/Client/Camera2D.cpp +++ b/Client/src/Client/Camera2D.cpp @@ -13,7 +13,11 @@ namespace CaveGame::Client // TODO: implement freecam panning via mouse. - Vector2 m = jstick::GetLeftThumbstickAxisNormalized(); + + Vector2 m = {0,0}; + + if (jstick::GetLeftThumbstickAxis().Magnitude() > 0.f) + m = jstick::GetLeftThumbstickAxisNormalized(); if (m.Magnitude() > 0.1f) Move(m*elapsed); diff --git a/Client/src/Client/CreditsWindow.cpp b/Client/src/Client/CreditsWindow.cpp index 385190a..c40d203 100644 --- a/Client/src/Client/CreditsWindow.cpp +++ b/Client/src/Client/CreditsWindow.cpp @@ -3,14 +3,14 @@ int line_index = 0; JUI::TextRect* line_item(const std::string& content, int size, const Color4& color = Colors::White) { auto* item = new JUI::TextRect(); - item->SetFont(JGL::Fonts::Jupiteroid); + item->Font(JGL::Fonts::Jupiteroid); item->Size({0,4+size,1.f,0.f}); - item->SetTextSize(size); - item->SetContent(content); + item->TextSize(size); + item->Content(content); item->AlignCenterHorizontally(); item->AlignTop(); item->BGColor({0,0,0,0}); - item->SetTextColor(color); + item->TextColor(color); item->BorderWidth(0); item->LayoutOrder(line_index++); return item; @@ -20,7 +20,7 @@ JUI::Window *CaveGame::Client::CreateCreditsWindowWidget(JUI::Widget *parent) { auto* credits_window = new JUI::Window(parent); credits_window->SetTitleFont(JGL::Fonts::Jupiteroid); - credits_window->SetTitle("Credits"); + credits_window->Title("Credits"); //credits_window->MinSize({250, 450}); //credits_window->Size({300, 450, 0, 0}); credits_window->Visible(false); diff --git a/Client/src/Client/GameSession.cpp b/Client/src/Client/GameSession.cpp index 7e55a95..ddf5393 100644 --- a/Client/src/Client/GameSession.cpp +++ b/Client/src/Client/GameSession.cpp @@ -178,7 +178,9 @@ void CaveGame::Client::GameSession::Update(float elapsed) { } // Move the tile cursor when controller thumbstick is moved. - auto rstick = jstick::GetRightThumbstickAxisNormalized(); + Vector2 rstick = {0,0}; + if (jstick::GetRightThumbstickAxis().Magnitude() > 0) + rstick = jstick::GetRightThumbstickAxisNormalized(); if (rstick.Magnitude() > 0.1f) { diff --git a/Client/src/Client/Hotbar.cpp b/Client/src/Client/Hotbar.cpp index 76b58db..f383f5f 100644 --- a/Client/src/Client/Hotbar.cpp +++ b/Client/src/Client/Hotbar.cpp @@ -35,9 +35,9 @@ void CaveGame::Client::TileHotbar::Load(CaveGame::Client::LocalWorld *world) { item_label->BorderWidth(0); item_label->BGColor({0,0,0,0}); item_label->AnchorPoint({1,0}); - item_label->SetContent("Item Name Here"); - item_label->SetTextColor(Colors::White); - item_label->SetTextSize(22); + item_label->Content("Item Name Here"); + item_label->TextColor(Colors::White); + item_label->TextSize(22); item_label->Size({200_px, 30_px}); item_label->Position({0_percent, JUI::UDim(-25, 0)}); item_label->AlignRight(); @@ -73,7 +73,7 @@ void CaveGame::Client::TileHotbar::Load(CaveGame::Client::LocalWorld *world) { auto* canvas_texture = new Texture(Vector2i( icon_size, icon_size)); auto* tile_icon_canvas = new RenderTarget(canvas_texture, {0, 0, 0, 0}); - JGL::J2D::Begin(tile_icon_canvas, true); + JGL::J2D::Begin(tile_icon_canvas, nullptr, true); for (int x = 0; x < icon_size; x++) for (int y = 0; y < icon_size; y++) world->RenderTile(item.numeric_id, x, y, x, y); @@ -85,9 +85,9 @@ void CaveGame::Client::TileHotbar::Load(CaveGame::Client::LocalWorld *world) { auto* amount_label = new JUI::TextRect(cell); amount_label->BGColor({0,0,0,0}); amount_label->AnchorPoint({1,1}); - amount_label->SetContent("99x"); - amount_label->SetTextColor(Colors::White); - amount_label->SetTextSize(18); + amount_label->Content("99x"); + amount_label->TextColor(Colors::White); + amount_label->TextSize(18); amount_label->Size({30_px, 30_px}); amount_label->Position({95_percent, 95_percent}); amount_label->AlignRight(); @@ -134,7 +134,7 @@ void CaveGame::Client::TileHotbar::Update(float elapsed) { // Update item name label. Core::TileID active_item = slots[slot_index]; - item_label->SetContent(Tiles()[active_item].display_name); + item_label->Content(Tiles()[active_item].display_name); // Set appearance of selected slot. hotbar_elements[slot_index]->CornerRounding(8); diff --git a/Client/src/Client/LocalWorld.cpp b/Client/src/Client/LocalWorld.cpp index b9dfb14..000574f 100644 --- a/Client/src/Client/LocalWorld.cpp +++ b/Client/src/Client/LocalWorld.cpp @@ -335,7 +335,7 @@ namespace CaveGame::Client { TileID t_id; Core::Tile t_data; - JGL::J2D::Begin(destination, true); + JGL::J2D::Begin(destination, nullptr, true); for (int x = 0; x < Core::Chunk::ChunkSize; x++) { for (int y = 0; y < Core::Chunk::ChunkSize; y++) diff --git a/Client/src/Client/MainMenu.cpp b/Client/src/Client/MainMenu.cpp index f17f042..f2dfcad 100644 --- a/Client/src/Client/MainMenu.cpp +++ b/Client/src/Client/MainMenu.cpp @@ -55,9 +55,9 @@ T* create_widget(JUI::Widget* parent) JUI::TextButton* CaveGame::Client::MainMenu::create_mainmenu_btn(const std::string& content, JUI::Widget* parent) { auto* btn = create_widget(parent); - btn->SetFont(JGL::Fonts::Jupiteroid); - btn->SetTextSize(24); - btn->SetTextColor(Colors::White); + btn->Font(JGL::Fonts::Jupiteroid); + btn->TextSize(24); + btn->TextColor(Colors::White); btn->BaseBGColor(Colors::DarkGray); btn->HoveredBGColor(Colors::Blues::LightSteelBlue); btn->BGColor(btn->BaseBGColor()); @@ -65,7 +65,7 @@ JUI::TextButton* CaveGame::Client::MainMenu::create_mainmenu_btn(const std::stri btn->Size({0, 40, 1.f, 0}); btn->Enable(); btn->Center(); - btn->SetContent(content); + btn->Content(content); return btn; } diff --git a/Client/src/Client/PauseMenu.cpp b/Client/src/Client/PauseMenu.cpp index 089ff69..09858e9 100644 --- a/Client/src/Client/PauseMenu.cpp +++ b/Client/src/Client/PauseMenu.cpp @@ -24,12 +24,12 @@ namespace CaveGame::Client resume_btn->Size({100_percent, 50_px}); resume_btn->CornerRounding(7); resume_btn->Center(); - resume_btn->SetTextSize(24); - resume_btn->SetTextColor(Colors::White); + resume_btn->TextSize(24); + resume_btn->TextColor(Colors::White); resume_btn->BaseBGColor(Colors::DarkGray); resume_btn->HoveredBGColor(Colors::Blues::LightSteelBlue); resume_btn->BGColor(resume_btn->BaseBGColor()); - resume_btn->SetContent("Resume"); + resume_btn->Content("Resume"); resume_btn->OnClickEvent += [this] (Vector2 pos, JUI::MouseButton state) { OnResumeButtonPressed.Invoke(); @@ -39,12 +39,12 @@ namespace CaveGame::Client settings_btn->Size({100_percent, 50_px}); settings_btn->CornerRounding(7); settings_btn->Center(); - settings_btn->SetTextSize(24); - settings_btn->SetTextColor(Colors::White); + settings_btn->TextSize(24); + settings_btn->TextColor(Colors::White); settings_btn->BaseBGColor(Colors::DarkGray); settings_btn->HoveredBGColor(Colors::Blues::LightSteelBlue); settings_btn->BGColor(settings_btn->BaseBGColor()); - settings_btn->SetContent("Settings"); + settings_btn->Content("Settings"); settings_btn->OnClickEvent += [this] (Vector2 pos, JUI::MouseButton state) { OnSettingsButtonPressed.Invoke(); @@ -54,12 +54,12 @@ namespace CaveGame::Client quit_btn->Size({100_percent, 50_px}); quit_btn->CornerRounding(7); quit_btn->Center(); - quit_btn->SetTextSize(24); - quit_btn->SetTextColor(Colors::White); + quit_btn->TextSize(24); + quit_btn->TextColor(Colors::White); quit_btn->BaseBGColor(Colors::DarkGray); quit_btn->HoveredBGColor(Colors::Blues::LightSteelBlue); quit_btn->BGColor(quit_btn->BaseBGColor()); - quit_btn->SetContent("Save & Exit World"); + quit_btn->Content("Save & Exit World"); quit_btn->OnClickEvent += [this] (Vector2 pos, JUI::MouseButton state) { OnQuitButtonPressed.Invoke(); diff --git a/Client/src/Client/Player.cpp b/Client/src/Client/Player.cpp index fbcc0dd..93151c1 100644 --- a/Client/src/Client/Player.cpp +++ b/Client/src/Client/Player.cpp @@ -43,8 +43,8 @@ void CaveGame::Core::Player::Draw() { JGL::J2D::DrawPartialSprite(myAsset.get(), RenderTopLeft(), quad.minPoint, {16, 24}, 0, {0,0}, {1,1}, Colors::White, dir); JGL::J2D::OutlineRect(Colors::Red, RenderTopLeft(), texture_center * 2.f); JGL::J2D::OutlineRect(Colors::Blue, TopLeft(), bounding_box); - J2D::DrawString(Colors::White, std::format("vel: {},{}", Math::Round(velocity.x, 2), Math::Round(velocity.y, 2)), position.x, position.y-8, 0.5f, 8); - J2D::DrawString(Colors::White, std::format("ct: {} cd: {}", coll_tests, coll_hits), position.x, position.y-16, 0.5f, 8); + J2D::DrawString(Colors::White, std::format("vel: {},{}", Math::Round(velocity.x, 2), Math::Round(velocity.y, 2)), position.x, position.y-8, 8, 0.5f); + J2D::DrawString(Colors::White, std::format("ct: {} cd: {}", coll_tests, coll_hits), position.x, position.y-16, 8, 0.5f); } void CaveGame::Core::Player::Update(float elapsed) { @@ -54,7 +54,7 @@ void CaveGame::Core::Player::Update(float elapsed) { walking = false; - Vector2 dpad = jstick::GetDPadAxisNormalized(); + Vector2 dpad = jstick::GetDPadAxis(); if (noclip) { if (InputService::IsKeyDown(Keys::A) || dpad.x <= -0.5f) diff --git a/Client/src/Client/Splash.cpp b/Client/src/Client/Splash.cpp index 9ff3565..cfd4f28 100644 --- a/Client/src/Client/Splash.cpp +++ b/Client/src/Client/Splash.cpp @@ -40,11 +40,11 @@ void CaveGame::Client::Splash::ComputeMatrixTextureCache() Vector2i column_size = {(int) glyph_measurement.x, (int) glyph_measurement.y * 100}; auto* column = new JGL::RenderTarget(column_size, {0, 0, 0, 0}, false); - JGL::J2D::Begin(column, true); + JGL::J2D::Begin(column, nullptr, true); for (int col = 0; col < 50; col++) { Color4 text_col = Color4(32, 192, 92, 255 - (col*4)); - JGL::J2D::DrawString(text_col, std::to_string(rand() % 2), 0, glyph_measurement.y * col, 1, 16); + JGL::J2D::DrawString(text_col, std::to_string(rand() % 2), 0, glyph_measurement.y * col, 16); } JGL::J2D::End(); diff --git a/Client/src/Client/TileTool.cpp b/Client/src/Client/TileTool.cpp index 670fccc..9a59a88 100644 --- a/Client/src/Client/TileTool.cpp +++ b/Client/src/Client/TileTool.cpp @@ -3,7 +3,7 @@ CaveGame::Client::TileTool::TileTool(JUI::Widget *parent) : JUI::Window(parent) { - this->SetTitle(tool_title); + this->Title(tool_title); this->MinSize({200, 400}); this->Size({200, 400, 0, 0}); this->Visible(false); @@ -18,18 +18,18 @@ CaveGame::Client::TileTool::TileTool(JUI::Widget *parent) : JUI::Window(parent) tool_size_label = new TextRect(left_row_layout); tool_size_label->Size({0, row_height, 1, 0}); - tool_size_label->SetContent("Size: 8"); + tool_size_label->Content("Size: 8"); tool_size_label->BGColor(Colors::Transparent); //tool_size_label->LayoutOrder(1); auto* tool_percent_label = new TextRect(left_row_layout); tool_percent_label->Size({0, row_height, 1, 0}); - tool_percent_label->SetContent("Percent: 100%"); + tool_percent_label->Content("Percent: 100%"); tool_percent_label->BGColor(Colors::Transparent); auto* tile_sim_label = new TextRect(left_row_layout); tile_sim_label->Size({0, row_height, 1, 0}); - tile_sim_label->SetContent("Pause Tile Sim:"); + tile_sim_label->Content("Pause Tile Sim:"); tile_sim_label->BGColor(Colors::Transparent); auto* col_right = new Rect(column_layout); @@ -47,7 +47,7 @@ CaveGame::Client::TileTool::TileTool(JUI::Widget *parent) : JUI::Window(parent) brush_size_slider->ValueChanged += [&, this] (float val) mutable { float newval = val * 50; - tool_size_label->SetContent(std::format("Size: {}", Math::Round(newval, 1))); + tool_size_label->Content(std::format("Size: {}", Math::Round(newval, 1))); BrushSizeChanged(newval); }; brush_size_slider->CurrentValue(0.5f); @@ -62,7 +62,7 @@ CaveGame::Client::TileTool::TileTool(JUI::Widget *parent) : JUI::Window(parent) brush_percent_slider->ValueChanged += [&, this, tool_percent_label] (float val) mutable { float newval = val * 100.f; - tool_percent_label->SetContent(std::format("Percent: {}%", Math::Floor(newval))); + tool_percent_label->Content(std::format("Percent: {}%", Math::Floor(newval))); BrushPercentChanged(newval); }; brush_percent_slider->CurrentValue(1.f); @@ -85,7 +85,7 @@ CaveGame::Client::TileTool::TileTool(JUI::Widget *parent) : JUI::Window(parent) step_btn = new TextButton(left_row_layout); step_btn->Size({100_percent, UDim(row_height, 0)}); - step_btn->SetContent("Step"); + step_btn->Content("Step"); step_btn->BGColor(Colors::LightGray); step_btn->BaseBGColor(Colors::LightGray); step_btn->Disable(); @@ -95,7 +95,7 @@ CaveGame::Client::TileTool::TileTool(JUI::Widget *parent) : JUI::Window(parent) step2_btn = new TextButton(left_row_layout); step2_btn->Size({100_percent, UDim(row_height, 0)}); - step2_btn->SetContent("Step 10"); + step2_btn->Content("Step 10"); step2_btn->BGColor(Colors::LightGray); step2_btn->BaseBGColor(Colors::LightGray); step2_btn->Disable(); @@ -105,7 +105,7 @@ CaveGame::Client::TileTool::TileTool(JUI::Widget *parent) : JUI::Window(parent) step3_btn = new TextButton(left_row_layout); step3_btn->Size({100_percent, UDim(row_height, 0)}); - step3_btn->SetContent("Step 100"); + step3_btn->Content("Step 100"); step3_btn->BGColor(Colors::LightGray); step3_btn->BaseBGColor(Colors::LightGray); step3_btn->Disable(); @@ -127,7 +127,7 @@ CaveGame::Client::TileTool::TileTool(JUI::Widget *parent) : JUI::Window(parent) void CaveGame::Client::TileTool::BrushRadius(float size) { brush_size_slider->CurrentValue(size/50.f); - tool_size_label->SetContent(std::format("Size: {}", Math::Round(size, 1))); + tool_size_label->Content(std::format("Size: {}", Math::Round(size, 1))); brush_radius = size; } @@ -144,7 +144,7 @@ float CaveGame::Client::TileTool::BrushRadius() { return brush_radius;} void CaveGame::Client::TileTool::BrushDensity(float percent) { brush_percent_slider->CurrentValue(percent / 100.f); - tool_size_label->SetContent(std::format("Density: {}", Math::Round(percent, 1))); + tool_size_label->Content(std::format("Density: {}", Math::Round(percent, 1))); brush_density = percent; } diff --git a/ClientApp/main.cpp b/ClientApp/main.cpp index a33027d..ec7b99a 100644 --- a/ClientApp/main.cpp +++ b/ClientApp/main.cpp @@ -26,6 +26,7 @@ int main(int argc, char** argv) { + mcolor::windowsSaneify(); // Hide logs from engine components so we can focus on CaveGame. JGL::Logger::Warning.EnableConsole(false); JGL::Logger::Debug.EnableConsole(false); diff --git a/ClientApp/src/ClientApp/CaveGameWindow.cpp b/ClientApp/src/ClientApp/CaveGameWindow.cpp index d529413..b3494b8 100644 --- a/ClientApp/src/ClientApp/CaveGameWindow.cpp +++ b/ClientApp/src/ClientApp/CaveGameWindow.cpp @@ -1,7 +1,7 @@ #include #include "ClientApp/CaveGameWindow.hpp" #include -#include + #include #include #include @@ -11,6 +11,7 @@ #include #include #include +#include namespace CaveGame::ClientApp { @@ -50,11 +51,11 @@ namespace CaveGame::ClientApp { // TODO: Parse Info to construct gameworld files. ChangeScene(game_ctx); - game_ctx->RequestToggleSettings += [&, this] mutable { + game_ctx->RequestToggleSettings += [&, this] { settings_window->Toggle(); }; - game_ctx->OnSessionExit += [&, this] mutable { + game_ctx->OnSessionExit += [&, this] { ChangeScene(menu_ctx); }; } @@ -92,7 +93,9 @@ namespace CaveGame::ClientApp { if (this->max_fps > 0) { float min_delta = 1.f / max_fps; float delta_diff = min_delta - dt; - std::this_thread::sleep_for(std::chrono::microseconds((int)(delta_diff*1000*1000))); + // TODO: only guaranteed to sleep *at least* as long as we request! + // Fake bias to sleep for less time than we want, so it averages out? + //std::this_thread::sleep_for(std::chrono::microseconds((long long)(delta_diff*1000*500))); } auto sure_end = GetTimestamp(); @@ -109,7 +112,7 @@ namespace CaveGame::ClientApp { void CaveGameWindow::Run() { - int js = jstick::Connect(); + int js = 0;//jstick::Connect(); //this->SetRenderer(RenderingAPI::OPENGL); bool success = this->Open(); @@ -170,6 +173,17 @@ namespace CaveGame::ClientApp { credits_window = Client::CreateCreditsWindowWidget(wm); create_stats_window(); create_settings_window(); + + + // TODO: Swap out with FpsGraphWindow on next JUI release. + auto* graph_window = new JUI::Window(wm); + graph_window->Name("FPS Graph"); + graph_window->Title("FPS Graph"); + graph_window->Size({500_px, 50_px}); + + auto* graph = new JUI::FpsGraph(graph_window->Content()); + graph->Name("Graph"); + graph->Size({500_px, 50_px}); } void CaveGameWindow::Init() @@ -215,7 +229,7 @@ namespace CaveGame::ClientApp { { text_size = JGL::Fonts::Jupiteroid.MeasureString(token, font_size); JGL::J2D::FillRect(bg_color, pos, text_size); - JGL::J2D::DrawString(text_color, token, pos.x, pos.y, 1.f, font_size); + JGL::J2D::DrawString(text_color, token, pos.x, pos.y, font_size); pos.y += text_size.y; } JGL::J2D::End(); diff --git a/Core/include/Core/Macros.hpp b/Core/include/Core/Macros.hpp index 600fb40..cab9983 100644 --- a/Core/include/Core/Macros.hpp +++ b/Core/include/Core/Macros.hpp @@ -4,10 +4,10 @@ #include #include #include +#include std::vector string_split(const std::string& s, char delim); std::string string_build(const std::vector &list, const std::string& delim = " "); - -std::string read_file(const std::string &file_path); \ No newline at end of file +std::string read_file(const std::filesystem::path& file_path); \ No newline at end of file diff --git a/Core/include/Core/World.hpp b/Core/include/Core/World.hpp index ba004b6..9426729 100644 --- a/Core/include/Core/World.hpp +++ b/Core/include/Core/World.hpp @@ -101,9 +101,6 @@ namespace CaveGame::Core { std::unordered_map GetChunkList(); - void DoRandomTileTicks(); - - void DoForcedTileTicks(); void DoRandomTileTick(const Vector2i& coords, Chunk* chunk); @@ -184,7 +181,7 @@ namespace CaveGame::Core { std::vector chunks_in_waiting; ConcurrentQueue ServedChunks; - float tile_ticc_counter; + float tile_ticc_counter = 0; float physics_ticc = 0; // Ticcs per second. diff --git a/Core/src/Core/Macros.cpp b/Core/src/Core/Macros.cpp index cee7343..c2a7b8b 100644 --- a/Core/src/Core/Macros.cpp +++ b/Core/src/Core/Macros.cpp @@ -31,10 +31,10 @@ std::string string_build(const std::vector &list, const std::string // }); } -std::string read_file(const std::string &file_path) { +std::string read_file(const std::filesystem::path& file_path) { std::ifstream file(file_path, std::ios::binary | std::ios::ate); if (!file) - throw std::runtime_error("We couldn't find the file: " + file_path); + throw std::runtime_error("We couldn't find the file: " + file_path.string()); std::streamsize file_size; file.seekg(0, std::ios::end); diff --git a/Core/src/Core/Player.cpp b/Core/src/Core/Player.cpp index bc2c730..1962b14 100644 --- a/Core/src/Core/Player.cpp +++ b/Core/src/Core/Player.cpp @@ -8,9 +8,11 @@ namespace CaveGame::Core { texture_center = {8, 12}; } - void Player::Draw() { /* See Client/Player.cpp */} - - void Player::Update(float elapsed) {/* See Client/Player.cpp */} + // TODO: This is ridiculously dumb and weird. +#ifndef _WIN32 + void Player::Draw() {} + void Player::Update(float elapsed) {} +#endif void Player::PhysicsUpdate(float elapsed) { Humanoid::PhysicsUpdate(elapsed); diff --git a/Core/src/Core/World.cpp b/Core/src/Core/World.cpp index e5fc498..f8d9ecb 100644 --- a/Core/src/Core/World.cpp +++ b/Core/src/Core/World.cpp @@ -353,7 +353,7 @@ namespace CaveGame::Core { } - void World::DoForcedTileTicks() { + /*void World::DoForcedTileTicks() { Tile tile; for (auto& [coords, chunk] : loaded_chunks) { @@ -378,7 +378,7 @@ namespace CaveGame::Core { //if (tile != nullptr) { if (tile.does_forced_ticc) { - // tile->ForcedTicc(this, 0, wx, wy); + //chunk->SetTileUpdateFlag(x, y, true); //} } @@ -416,16 +416,16 @@ namespace CaveGame::Core { // tile = GetByNumeric(at); - /* + if (tile != nullptr) if (tile->DoesRandomTicc()) tile->RandomTicc(this, 0, wx, wy); - */ + //if ((tile != nullptr) && (tile->DoesRandomTicc())) // tile->RandomTicc(this, 0, wx, wy); } } - } + }*/ void World::Save() { for (auto& [coords, chunk] : loaded_chunks)