mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-21 02:37:05 +02:00
useProtagonist
This commit is contained in:
1 parent
7592381b12
commit
99965118b3
4 files changed
+35
-20
No files matched your search
@@ -1,3 +1,4 @@
|
||||
import { useProtagonist } from "../../hooks/useProtagonist";
|
||||
import type { ComputedCharacteristics } from "../../types/characteristics";
|
||||
|
||||
interface TankopediaLoadoutProps {
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
import { api } from "../blitzkit/api";
|
||||
import { Tankopedia } from "../stores/tankopedia";
|
||||
import { useAwait } from "./useAwait";
|
||||
|
||||
export function useProtagonist() {
|
||||
const id = Tankopedia.use((state) => state.protagonist.tank);
|
||||
const tank = useAwait(() => api.tank(id), `tank-${id}`);
|
||||
|
||||
return tank;
|
||||
}
|
||||
@@ -1,11 +1,7 @@
|
||||
import {
|
||||
createDefaultSkills,
|
||||
EngineDefinition,
|
||||
GunDefinition,
|
||||
ShellDefinition,
|
||||
TankDefinition,
|
||||
TrackDefinition,
|
||||
TurretDefinition,
|
||||
type ModelDefinition,
|
||||
} from "@blitzkit/core";
|
||||
import type { Vector3 } from "three";
|
||||
@@ -14,8 +10,10 @@ import { api } from "../blitzkit/api";
|
||||
import type { ArmorType } from "../components/Armor/components/SpacedArmorScene";
|
||||
import type { ExternalModuleVariant } from "../components/Armor/components/SpacedArmorSceneComponent";
|
||||
import type { XP_MULTIPLIERS } from "../components/Tankopedia/TechTreeSection";
|
||||
import { createTankState } from "../tankopedia/createTankState";
|
||||
import type { EquipmentMatrix } from "./duel";
|
||||
import {
|
||||
createTankState,
|
||||
type EquipmentMatrix,
|
||||
} from "../tankopedia/createTankState";
|
||||
import { TankopediaDisplay } from "./tankopediaPersistent/constants";
|
||||
|
||||
export interface ShotLayerBase {
|
||||
@@ -84,14 +82,15 @@ export enum TankopediaRelativeAgainst {
|
||||
}
|
||||
|
||||
export interface TankState {
|
||||
tank: TankDefinition;
|
||||
model: ModelDefinition;
|
||||
tank: number;
|
||||
|
||||
engine: EngineDefinition;
|
||||
turret: TurretDefinition;
|
||||
gun: GunDefinition;
|
||||
shell: ShellDefinition;
|
||||
track: TrackDefinition;
|
||||
engine: number;
|
||||
turret: number;
|
||||
gun: number;
|
||||
shell: number;
|
||||
track: number;
|
||||
|
||||
model: ModelDefinition;
|
||||
|
||||
equipment_matrix: EquipmentMatrix;
|
||||
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
import { createDefaultProvisions, type TankDefinition } from "@blitzkit/core";
|
||||
import { api } from "../blitzkit/api";
|
||||
import type { EquipmentMatrix } from "../stores/duel";
|
||||
import type { TankState } from "../stores/tankopedia";
|
||||
|
||||
export type EquipmentMatrix = [
|
||||
[number, number, number],
|
||||
[number, number, number],
|
||||
[number, number, number],
|
||||
];
|
||||
|
||||
const models = await api.models();
|
||||
const provisions = await api.provisions();
|
||||
const scripts = await api.scripts();
|
||||
@@ -18,14 +23,14 @@ export function createTankState(tank: TankDefinition) {
|
||||
const gun = turret.guns.at(-1)!;
|
||||
|
||||
return {
|
||||
tank,
|
||||
tank: tank.id,
|
||||
model: models.models[turret.id],
|
||||
|
||||
engine: tank.engines.at(-1)!,
|
||||
turret,
|
||||
gun,
|
||||
shell: gun.shells[0],
|
||||
track: tank.tracks.at(-1)!,
|
||||
engine: tank.engines.at(-1)!.id,
|
||||
turret: turret.id,
|
||||
gun: gun.id,
|
||||
shell: gun.shells[0].id,
|
||||
track: tank.tracks.at(-1)!.id,
|
||||
|
||||
equipment_matrix: genericDefaultEquipmentMatrix,
|
||||
|
||||
|
||||
Reference in new issue
Block a user