feat: some implementation for client unmounted mode

This commit is contained in:
tresabhi committed 2026-05-05 16:48:16 -05:00
1 parent 980fd6e50e
commit ba4e6dfd68
7 files changed
+29 -26

No files matched your search

+2 -16
View File
@@ -21,21 +21,7 @@ public class BlitzFileProvider : DefaultFileProvider
Initialize();
Mount();
string libraryExtension;
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
libraryExtension = "dll";
}
else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
{
libraryExtension = "so";
}
else
{
throw new Exception("Unsupported OS");
}
OodleHelper.DownloadOodleDll($"../../temp/oodle.{libraryExtension}");
OodleHelper.Initialize($"../../temp/oodle.{libraryExtension}");
// OodleHelper.DownloadOodleDll($"../../temp/oodle.so");
OodleHelper.Initialize($"../../temp/oodle.so");
}
}
+1 -1
View File
@@ -2,7 +2,7 @@
<PropertyGroup>
<RootNamespace>BlitzKit.Game</RootNamespace>
<TargetFramework>net9.0</TargetFramework>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<!-- <RuntimeIdentifier>win-x64</RuntimeIdentifier> -->
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<NodeApiAssemblyJSModuleType>esm</NodeApiAssemblyJSModuleType>
+1 -1
View File
@@ -1 +1 @@
export * from "../bin/Debug/net9.0/win-x64/game";
export * from "../bin/Debug/net9.0/game";
@@ -0,0 +1,3 @@
export const clientUnmountedResponse = new Response(null, { status: 503 });
export const notFoundResponse = new Response(null, { status: 404 });
+11 -3
View File
@@ -1,5 +1,13 @@
import { GameInterface } from "@blitzkit/game";
export const game = new GameInterface(
"C:/Program Files (x86)/Steam/steamapps/common/World of Tanks Blitz Playtest",
);
export const clientUnmounted = !("WOTB_CLIENT" in import.meta.env);
let _game: GameInterface | null = null;
if (!clientUnmounted) {
_game = new GameInterface(import.meta.env.WOTB_CLIENT);
} else {
console.warn("Running in client denied mode...");
}
export const game = _game;
@@ -1,14 +1,20 @@
import type { APIContext } from "astro";
import { api } from "../../../core/api/dynamic";
import { game } from "../../../core/game/game";
import {
clientUnmountedResponse,
notFoundResponse,
} from "../../../core/api/responses";
import { clientUnmounted, game } from "../../../core/game/game";
export { getStaticPaths } from "./[id].json";
export async function GET({ params }: APIContext<never, { id: string }>) {
const tank = await api.tank(params.id);
const image = game.tankBigIcon(params.id, tank.tank!.visual_data);
if (clientUnmounted) return clientUnmountedResponse;
if (image.length === 0) return new Response(null, { status: 404 });
const tank = await api.tank(params.id);
const image = game!.tankBigIcon(params.id, tank.tank!.visual_data);
if (image.length === 0) return notFoundResponse;
return new Response(new Uint8Array(image));
}