Bunch of edits.
This commit is contained in:
@@ -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(
|
||||
|
@@ -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
|
||||
|
@@ -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);
|
||||
|
@@ -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());
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
|
@@ -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)
|
||||
{
|
||||
|
@@ -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);
|
||||
|
@@ -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++)
|
||||
|
@@ -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<JUI::TextButton>(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;
|
||||
}
|
||||
|
||||
|
@@ -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();
|
||||
|
@@ -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)
|
||||
|
@@ -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();
|
||||
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
|
@@ -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);
|
||||
|
@@ -1,7 +1,7 @@
|
||||
#include <Client/CreditsWindow.hpp>
|
||||
#include "ClientApp/CaveGameWindow.hpp"
|
||||
#include <Client/SettingsMenu.hpp>
|
||||
#include <bits/random.h>
|
||||
|
||||
#include <Core/Explosion.hpp>
|
||||
#include <Core/Loggers.hpp>
|
||||
#include <Core/Player.hpp>
|
||||
@@ -11,6 +11,7 @@
|
||||
#include <Core/ItemRegistry.hpp>
|
||||
#include <Core/TileRegistry.hpp>
|
||||
#include <JJX/JSON.hpp>
|
||||
#include <JUI/Widgets/FpsGraph.hpp>
|
||||
|
||||
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();
|
||||
|
@@ -4,10 +4,10 @@
|
||||
#include <string>
|
||||
#include <sstream>
|
||||
#include <numeric>
|
||||
#include <filesystem>
|
||||
|
||||
std::vector<std::string> string_split(const std::string& s, char delim);
|
||||
|
||||
std::string string_build(const std::vector<std::string> &list, const std::string& delim = " ");
|
||||
|
||||
|
||||
std::string read_file(const std::string &file_path);
|
||||
std::string read_file(const std::filesystem::path& file_path);
|
@@ -101,9 +101,6 @@ namespace CaveGame::Core {
|
||||
|
||||
std::unordered_map<Vector2i, Chunk*> GetChunkList();
|
||||
|
||||
void DoRandomTileTicks();
|
||||
|
||||
void DoForcedTileTicks();
|
||||
|
||||
void DoRandomTileTick(const Vector2i& coords, Chunk* chunk);
|
||||
|
||||
@@ -184,7 +181,7 @@ namespace CaveGame::Core {
|
||||
std::vector<Vector2i> chunks_in_waiting;
|
||||
ConcurrentQueue<Core::Chunk*> ServedChunks;
|
||||
|
||||
float tile_ticc_counter;
|
||||
float tile_ticc_counter = 0;
|
||||
float physics_ticc = 0;
|
||||
|
||||
// Ticcs per second.
|
||||
|
@@ -31,10 +31,10 @@ std::string string_build(const std::vector<std::string> &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);
|
||||
|
@@ -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);
|
||||
|
@@ -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)
|
||||
|
Reference in New Issue
Block a user