mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-23 19:49:50 +02:00
rename methods
This commit is contained in:
1 parent
ec161addab
commit
5f737d940d
111 files changed
+563
-413
No files matched your search
@@ -12,14 +12,19 @@ import {
|
||||
} from "@blitzkit/core";
|
||||
|
||||
export abstract class BlitzKitAPI {
|
||||
abstract skillDefinitions(): Promise<SkillDefinitions>;
|
||||
abstract provisionDefinitions(): Promise<ProvisionDefinitions>;
|
||||
abstract consumableDefinitions(): Promise<ConsumableDefinitions>;
|
||||
abstract equipmentDefinitions(): Promise<EquipmentDefinitions>;
|
||||
abstract mapDefinitions(): Promise<MapDefinitions>;
|
||||
abstract modelDefinitions(): Promise<ModelDefinitions>;
|
||||
abstract camouflageDefinitions(): Promise<CamouflageDefinitions>;
|
||||
abstract tankDefinitions(): Promise<TankDefinitions>;
|
||||
abstract gameDefinitions(): Promise<GameDefinitions>;
|
||||
abstract galleryDefinitions(): Promise<Gallery>;
|
||||
abstract skills(): Promise<SkillDefinitions>;
|
||||
abstract provisions(): Promise<ProvisionDefinitions>;
|
||||
abstract consumables(): Promise<ConsumableDefinitions>;
|
||||
abstract equipments(): Promise<EquipmentDefinitions>;
|
||||
abstract maps(): Promise<MapDefinitions>;
|
||||
abstract models(): Promise<ModelDefinitions>;
|
||||
abstract camouflages(): Promise<CamouflageDefinitions>;
|
||||
abstract tanks(): Promise<TankDefinitions>;
|
||||
abstract game(): Promise<GameDefinitions>;
|
||||
abstract gallery(): Promise<Gallery>;
|
||||
|
||||
async tank(id: number) {
|
||||
const tanks = await this.tanks();
|
||||
return tanks.tanks[id];
|
||||
}
|
||||
}
|
||||
@@ -15,55 +15,55 @@ import {
|
||||
import { BlitzKitAPI } from "./base";
|
||||
|
||||
export class ClientBlitzKitAPI extends BlitzKitAPI {
|
||||
gameDefinitions() {
|
||||
game() {
|
||||
return fetchPB(alias("api", "/definitions/game.pb"), GameDefinitions);
|
||||
}
|
||||
|
||||
consumableDefinitions() {
|
||||
consumables() {
|
||||
return fetchPB(
|
||||
alias("api", "/definitions/consumables.pb"),
|
||||
ConsumableDefinitions,
|
||||
);
|
||||
}
|
||||
|
||||
tankDefinitions() {
|
||||
tanks() {
|
||||
return fetchPB(alias("api", "/definitions/tanks.pb"), TankDefinitions);
|
||||
}
|
||||
|
||||
camouflageDefinitions() {
|
||||
camouflages() {
|
||||
return fetchPB(
|
||||
alias("api", "/definitions/camouflage.pb"),
|
||||
CamouflageDefinitions,
|
||||
);
|
||||
}
|
||||
|
||||
provisionDefinitions() {
|
||||
provisions() {
|
||||
return fetchPB(
|
||||
alias("api", "/definitions/provisions.pb"),
|
||||
ProvisionDefinitions,
|
||||
);
|
||||
}
|
||||
|
||||
modelDefinitions() {
|
||||
models() {
|
||||
return fetchPB(alias("api", "/definitions/models.pb"), ModelDefinitions);
|
||||
}
|
||||
|
||||
skillDefinitions() {
|
||||
skills() {
|
||||
return fetchPB(alias("api", "/definitions/skills.pb"), SkillDefinitions);
|
||||
}
|
||||
|
||||
equipmentDefinitions() {
|
||||
equipments() {
|
||||
return fetchPB(
|
||||
alias("api", "/definitions/equipment.pb"),
|
||||
EquipmentDefinitions,
|
||||
);
|
||||
}
|
||||
|
||||
galleryDefinitions() {
|
||||
gallery() {
|
||||
return fetchPB(alias("api", "/definitions/gallery.pb"), Gallery);
|
||||
}
|
||||
|
||||
mapDefinitions() {
|
||||
maps() {
|
||||
return fetchPB(alias("api", "/definitions/maps.pb"), MapDefinitions);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
import { AbstractVFS, BlitzKitAPI } from "@blitzkit/core";
|
||||
|
||||
export async function createDynamicAPI(vfs: AbstractVFS) {
|
||||
let _api: BlitzKitAPI;
|
||||
|
||||
if (import.meta.env.SSR) {
|
||||
const { ServerBlitzKitAPI } = await import(
|
||||
"@blitzkit/core/src/blitzkit/api/server/index"
|
||||
);
|
||||
|
||||
_api = await new ServerBlitzKitAPI(vfs).init();
|
||||
} else {
|
||||
const { ClientBlitzKitAPI } = await import(
|
||||
"@blitzkit/core/src/blitzkit/api/client"
|
||||
);
|
||||
|
||||
_api = new ClientBlitzKitAPI();
|
||||
}
|
||||
|
||||
return _api;
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
export * from "./base";
|
||||
export * from "./client";
|
||||
export * from "./dynamic";
|
||||
export * from "./server";
|
||||
@@ -27,11 +27,14 @@ import {
|
||||
import { AbstractVFS } from "@blitzkit/core/src/blitzkit/vfs/abstract";
|
||||
import { SUPPORTED_LOCALE_BLITZ_MAP } from "@blitzkit/i18n";
|
||||
import locales from "@blitzkit/i18n/locales.json";
|
||||
import type { extname, parse } from "node:path";
|
||||
import { parse as parseYaml } from "yaml";
|
||||
import { BlitzKitAPI } from "../base";
|
||||
|
||||
export abstract class ServerBlitzKitAPI0 extends BlitzKitAPI {
|
||||
protected vfs: AbstractVFS;
|
||||
protected parsePath?: typeof parse;
|
||||
protected extname?: typeof extname;
|
||||
|
||||
protected nationSlugDiscriminators = {
|
||||
china: "cn",
|
||||
@@ -109,11 +112,18 @@ export abstract class ServerBlitzKitAPI0 extends BlitzKitAPI {
|
||||
|
||||
constructor(vfs: AbstractVFS) {
|
||||
super();
|
||||
|
||||
this.vfs = vfs;
|
||||
}
|
||||
|
||||
async init() {
|
||||
console.log("Initializing virtual file system...");
|
||||
|
||||
const path = await import("node:path");
|
||||
|
||||
this.extname = path.extname;
|
||||
this.parsePath = path.parse;
|
||||
|
||||
await this.vfs.init();
|
||||
|
||||
console.log("Fetching game data...");
|
||||
|
||||
+3
-4
@@ -1,12 +1,11 @@
|
||||
import { Avatar, fetchGlossary, Gallery } from "@blitzkit/core";
|
||||
import locales from "@blitzkit/i18n/locales.json";
|
||||
import { extname } from "path";
|
||||
import { Cache } from "./0_base";
|
||||
import { ServerBlitzKitAPI9 } from "./9_gameDefinitions";
|
||||
import { ServerBlitzKitAPI9 } from "./9_game";
|
||||
|
||||
export abstract class ServerBlitzKitAPI10 extends ServerBlitzKitAPI9 {
|
||||
@Cache()
|
||||
async galleryDefinitions() {
|
||||
async gallery() {
|
||||
const avatars: Record<string, { avatar: Avatar; url: string }> = {};
|
||||
|
||||
await Promise.all(
|
||||
@@ -34,7 +33,7 @@ export abstract class ServerBlitzKitAPI10 extends ServerBlitzKitAPI9 {
|
||||
avatars[key].avatar.name!.locales[supported.locale] =
|
||||
glossaryEntry.title;
|
||||
} else {
|
||||
const extension = extname(glossaryEntry.image_url);
|
||||
const extension = this.extname!(glossaryEntry.image_url);
|
||||
|
||||
avatars[key] = {
|
||||
url: glossaryEntry.image_url,
|
||||
+1
-1
@@ -47,7 +47,7 @@ export abstract class ServerBlitzKitAPI1 extends ServerBlitzKitAPI0 {
|
||||
}
|
||||
|
||||
@Cache()
|
||||
async tankDefinitions() {
|
||||
async tanks() {
|
||||
const tankDefinitions = TankDefinitions.create();
|
||||
|
||||
const gameModeNativeNames: Record<string, number> = {};
|
||||
+2
-2
@@ -1,10 +1,10 @@
|
||||
import { CamouflageDefinitions } from "@blitzkit/core";
|
||||
import { Cache } from "./0_base";
|
||||
import { ServerBlitzKitAPI1 } from "./1_tankDefinitions";
|
||||
import { ServerBlitzKitAPI1 } from "./1_tanks";
|
||||
|
||||
export abstract class ServerBlitzKitAPI2 extends ServerBlitzKitAPI1 {
|
||||
@Cache()
|
||||
async camouflageDefinitions() {
|
||||
async camouflages() {
|
||||
const camouflageDefinitions = CamouflageDefinitions.create();
|
||||
|
||||
for (const camoKey in this.camouflagesXml!.root.camouflages) {
|
||||
+11
-13
@@ -6,7 +6,6 @@ import {
|
||||
EngineDefinitionsList,
|
||||
GunDefinitionsList,
|
||||
ModelDefinitions,
|
||||
ResearchCost,
|
||||
TankParameters,
|
||||
toUniqueId,
|
||||
TurretDefinitionsList,
|
||||
@@ -15,10 +14,9 @@ import {
|
||||
VehicleDefinitionList,
|
||||
VehicleDefinitions,
|
||||
} from "@blitzkit/core";
|
||||
import { Cache } from "./0_base";
|
||||
import { ServerBlitzKitAPI2 } from "./2_camouflageDefinitions";
|
||||
import { parse as parsePath } from "path";
|
||||
import { Vector3Tuple } from "three";
|
||||
import { Cache } from "./0_base";
|
||||
import { ServerBlitzKitAPI2 } from "./2_camouflages";
|
||||
|
||||
export abstract class ServerBlitzKitAPI3 extends ServerBlitzKitAPI2 {
|
||||
private vector3TupleToBlitzkit(tuple: Vector3Tuple) {
|
||||
@@ -42,7 +40,7 @@ export abstract class ServerBlitzKitAPI3 extends ServerBlitzKitAPI2 {
|
||||
}
|
||||
|
||||
@Cache()
|
||||
async modelDefinitions() {
|
||||
async models() {
|
||||
const modelDefinitions = ModelDefinitions.create();
|
||||
|
||||
for (const nation of this.nationsDir!) {
|
||||
@@ -65,10 +63,6 @@ export abstract class ServerBlitzKitAPI3 extends ServerBlitzKitAPI2 {
|
||||
for (const tankKey in tankList.root) {
|
||||
if (this.botPattern.test(tankKey)) continue;
|
||||
|
||||
const gunXps = new Map<number, ResearchCost>();
|
||||
const turretXps = new Map<number, ResearchCost>();
|
||||
const engineXps = new Map<number, ResearchCost>();
|
||||
const trackXps = new Map<number, ResearchCost>();
|
||||
const tank = tankList.root[tankKey];
|
||||
const tankDefinition = await this.vfs.xml<{ root: VehicleDefinitions }>(
|
||||
`Data/XML/item_defs/vehicles/${nation}/${tankKey}.xml`,
|
||||
@@ -181,7 +175,7 @@ export abstract class ServerBlitzKitAPI3 extends ServerBlitzKitAPI2 {
|
||||
Object.keys(tankDefinition.root.turrets0).forEach((turretKey) => {
|
||||
const turret = tankDefinition.root.turrets0[turretKey];
|
||||
const turretModel = Number(
|
||||
parsePath(turret.models.undamaged).name.split("_")[1],
|
||||
this.parsePath!(turret.models.undamaged).name.split("_")[1],
|
||||
);
|
||||
const turretId = toUniqueId(nation, turretList.root.ids[turretKey]);
|
||||
const turretYaw = (
|
||||
@@ -229,12 +223,16 @@ export abstract class ServerBlitzKitAPI3 extends ServerBlitzKitAPI2 {
|
||||
bounding_box: {
|
||||
min: this.vector3TupleToBlitzkit(
|
||||
tankParameters.collision[
|
||||
parsePath(turret.hitTester.collisionModel).name.toLowerCase()
|
||||
this.parsePath!(
|
||||
turret.hitTester.collisionModel,
|
||||
).name.toLowerCase()
|
||||
].bbox.min,
|
||||
),
|
||||
max: this.vector3TupleToBlitzkit(
|
||||
tankParameters.collision[
|
||||
parsePath(turret.hitTester.collisionModel).name.toLowerCase()
|
||||
this.parsePath!(
|
||||
turret.hitTester.collisionModel,
|
||||
).name.toLowerCase()
|
||||
].bbox.max,
|
||||
),
|
||||
},
|
||||
@@ -253,7 +251,7 @@ export abstract class ServerBlitzKitAPI3 extends ServerBlitzKitAPI2 {
|
||||
.split(" ")
|
||||
.map(Number) as [number, number];
|
||||
const gunModel = Number(
|
||||
parsePath(gun.models.undamaged).name.split("_")[1],
|
||||
this.parsePath!(gun.models.undamaged).name.split("_")[1],
|
||||
);
|
||||
const front = gun.extraPitchLimits?.front
|
||||
? gun.extraPitchLimits.front.split(" ").map(Number)
|
||||
+2
-2
@@ -1,10 +1,10 @@
|
||||
import { MapDefinitions } from "@blitzkit/core";
|
||||
import { Cache } from "./0_base";
|
||||
import { ServerBlitzKitAPI3 } from "./3_modelDefinitions";
|
||||
import { ServerBlitzKitAPI3 } from "./3_models";
|
||||
|
||||
export abstract class ServerBlitzKitAPI4 extends ServerBlitzKitAPI3 {
|
||||
@Cache()
|
||||
async mapDefinitions() {
|
||||
async maps() {
|
||||
const mapDefinitions = MapDefinitions.create();
|
||||
|
||||
for (const key in this.mapsYaml!.maps) {
|
||||
+2
-2
@@ -1,10 +1,10 @@
|
||||
import { EquipmentDefinitions, EquipmentSlot } from "@blitzkit/core";
|
||||
import { Cache } from "./0_base";
|
||||
import { ServerBlitzKitAPI4 } from "./4_mapDefinitions";
|
||||
import { ServerBlitzKitAPI4 } from "./4_maps";
|
||||
|
||||
export abstract class ServerBlitzKitAPI5 extends ServerBlitzKitAPI4 {
|
||||
@Cache()
|
||||
async equipmentDefinitions() {
|
||||
async equipments() {
|
||||
const equipmentDefinitions = EquipmentDefinitions.create();
|
||||
|
||||
Object.entries(this.optionalDevices!.root).forEach(
|
||||
+2
-2
@@ -4,11 +4,11 @@ import {
|
||||
ConsumableDefinitions,
|
||||
} from "@blitzkit/core";
|
||||
import { Cache } from "./0_base";
|
||||
import { ServerBlitzKitAPI5 } from "./5_equipmentDefinitions";
|
||||
import { ServerBlitzKitAPI5 } from "./5_equipments";
|
||||
|
||||
export abstract class ServerBlitzKitAPI6 extends ServerBlitzKitAPI5 {
|
||||
@Cache()
|
||||
async consumableDefinitions() {
|
||||
async consumables() {
|
||||
const consumableDefinitions = ConsumableDefinitions.create();
|
||||
|
||||
Object.entries(this.consumablesCommon).forEach(([key, consumable]) => {
|
||||
+2
-2
@@ -4,11 +4,11 @@ import {
|
||||
ProvisionDefinitions,
|
||||
} from "@blitzkit/core";
|
||||
import { Cache } from "./0_base";
|
||||
import { ServerBlitzKitAPI6 } from "./6_consumableDefinitions";
|
||||
import { ServerBlitzKitAPI6 } from "./6_consumables";
|
||||
|
||||
export abstract class ServerBlitzKitAPI7 extends ServerBlitzKitAPI6 {
|
||||
@Cache()
|
||||
async provisionDefinitions() {
|
||||
async provisions() {
|
||||
const provisionDefinitions = ProvisionDefinitions.create();
|
||||
|
||||
Object.entries(this.provisionsCommon).forEach(([, provision]) => {
|
||||
+2
-2
@@ -1,11 +1,11 @@
|
||||
import { BlitzTankClass, SkillDefinitions } from "@blitzkit/core";
|
||||
|
||||
import { Cache } from "./0_base";
|
||||
import { ServerBlitzKitAPI7 } from "./7_provisionDefinitions";
|
||||
import { ServerBlitzKitAPI7 } from "./7_provisions";
|
||||
|
||||
export abstract class ServerBlitzKitAPI8 extends ServerBlitzKitAPI7 {
|
||||
@Cache()
|
||||
async skillDefinitions() {
|
||||
async skills() {
|
||||
const skillDefinitions = SkillDefinitions.create();
|
||||
|
||||
for (const tankClass in this.tankmenAvatar!.root.skillsByClasses) {
|
||||
+2
-2
@@ -1,11 +1,11 @@
|
||||
import { AvailableNationsYaml, GameDefinitions } from "@blitzkit/core";
|
||||
|
||||
import { Cache } from "./0_base";
|
||||
import { ServerBlitzKitAPI8 } from "./8_skillDefinitions";
|
||||
import { ServerBlitzKitAPI8 } from "./8_skills";
|
||||
|
||||
export abstract class ServerBlitzKitAPI9 extends ServerBlitzKitAPI8 {
|
||||
@Cache()
|
||||
async gameDefinitions() {
|
||||
async game() {
|
||||
const gameDefinitions = GameDefinitions.create();
|
||||
|
||||
const consumableNativeNames: Record<string, number> = {};
|
||||
@@ -1,3 +1,3 @@
|
||||
import { ServerBlitzKitAPI10 } from "@blitzkit/core/src/blitzkit/api/server/10_galleryDefinitions";
|
||||
import { ServerBlitzKitAPI10 } from "./10_avatars";
|
||||
|
||||
export class ServerBlitzKitAPI extends ServerBlitzKitAPI10 {}
|
||||
@@ -10,7 +10,7 @@ export interface AverageDefinitionsManifest {
|
||||
latest: number;
|
||||
}
|
||||
|
||||
export async function fetchAverageDefinitions() {
|
||||
export async function fetchAverage() {
|
||||
return await fetchPB(staticAsset("averages.pb"), AverageDefinitions);
|
||||
}
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ export interface DiscoveredIdsDefinitions {
|
||||
count: number;
|
||||
}
|
||||
|
||||
export async function fetchDiscoveredIdsDefinitions() {
|
||||
export async function fetchDiscoveredIds() {
|
||||
const response = await fetch(staticAsset("ids/manifest.json"));
|
||||
return response.json() as Promise<DiscoveredIdsDefinitions>;
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
export * from "./alias";
|
||||
export * from "./api";
|
||||
export * from "./assertSecret";
|
||||
export * from "./availableProvisions";
|
||||
export * from "./averageDefinitions";
|
||||
@@ -30,5 +31,6 @@ export * from "./tankNames";
|
||||
export * from "./unionBoundingBox";
|
||||
export * from "./uniqueGuns";
|
||||
export * from "./unwrapBlitzkitResponse";
|
||||
export * from "./vfs";
|
||||
export * from "./votes";
|
||||
export * from "./youtubers";
|
||||
@@ -5,8 +5,8 @@ import { I18nString } from "../protos";
|
||||
|
||||
export async function fetchTankNames(api: BlitzKitAPI) {
|
||||
const [tankDefinitions, camouflageDefinitions] = await Promise.all([
|
||||
api.tankDefinitions(),
|
||||
api.camouflageDefinitions(),
|
||||
api.tanks(),
|
||||
api.camouflages(),
|
||||
]);
|
||||
const tankDefinitionsArray = Object.values(tankDefinitions.tanks);
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
export * from "./abstract";
|
||||
export * from "./local";
|
||||
export * from "./mixed";
|
||||
export * from "./steam";
|
||||
export * from "./zip";
|
||||
Reference in new issue
Block a user