(4) some implementation

This commit is contained in:
tresabhi committed 2026-08-01 14:01:34 -05:00
1 parent bd7c952478
commit 6ad64c9bd9
2 files changed
+45 -45

No files matched your search

+45
View File
@@ -18,6 +18,7 @@ import {
EngineDefinitionsList,
Equalizer,
EquipmentDefinitions,
EquipmentSlot,
GunDefinition,
GunDefinitionsList,
I18nString,
@@ -950,6 +951,20 @@ export class ServerBlitzKitAPI extends BlitzKitAPI {
}
}
Object.values(tankDefinitions.tanks).forEach((tank) => {
tank.research_cost = tankXps.get(tank.id);
});
Object.values(tankDefinitions.tanks).forEach((tank) => {
tank.successors?.forEach((predecessorId) => {
if (
!tankDefinitions.tanks[predecessorId].ancestors?.includes(tank.id)
) {
tankDefinitions.tanks[predecessorId].ancestors?.push(tank.id);
}
});
});
return tankDefinitions;
}
@@ -1301,6 +1316,36 @@ export class ServerBlitzKitAPI extends BlitzKitAPI {
async equipmentDefinitions() {
const equipmentDefinitions = EquipmentDefinitions.create();
Object.entries(this.optionalDevices!.root).forEach(
([optionalDeviceKey, optionalDeviceEntry]) => {
if (optionalDeviceKey === "nextAvailableId") return;
equipmentDefinitions.equipments[optionalDeviceEntry.id] = {
name: this.getString(optionalDeviceEntry.userString),
description: this.getString(optionalDeviceEntry.description),
};
},
);
Object.entries(this.optionalDeviceSlots!.root.presets).forEach(
([optionalDeviceSlotKey, optionalDeviceSlotEntry]) => {
if (optionalDeviceSlotKey === "emptyPreset") return;
equipmentDefinitions.presets[optionalDeviceSlotKey] = {
slots: Object.values(optionalDeviceSlotEntry)
.map((level) => {
return Object.values(level).map((options) => {
return {
left: this.optionalDevices!.root[options.device0].id,
right: this.optionalDevices!.root[options.device1].id,
} satisfies EquipmentSlot;
});
})
.flat(),
};
},
);
return equipmentDefinitions;
}
@@ -5,16 +5,13 @@ import {
ConsumableDefinitions,
ConsumableTankCategoryFilterCategory,
EquipmentDefinitions,
EquipmentSlot,
MapDefinitions,
ModelDefinitions,
Provision,
ProvisionDefinitions,
SkillDefinitions,
TankDefinitions,
Vector3,
} from "@blitzkit/core";
import type { Vector3Tuple } from "three";
type BlitzTankFilterDefinitionCategory = "clip";
const blitzTankFilterDefinitionCategoryToBlitzkit: Record<
@@ -85,48 +82,6 @@ type CombatRolesYaml = Record<
>;
export async function definitions() {
Object.values(tankDefinitions.tanks).forEach((tank) => {
tank.research_cost = tankXps.get(tank.id);
});
Object.values(tankDefinitions.tanks).forEach((tank) => {
tank.successors?.forEach((predecessorId) => {
if (!tankDefinitions.tanks[predecessorId].ancestors?.includes(tank.id)) {
tankDefinitions.tanks[predecessorId].ancestors?.push(tank.id);
}
});
});
Object.entries(optionalDevices.root).forEach(
([optionalDeviceKey, optionalDeviceEntry]) => {
if (optionalDeviceKey === "nextAvailableId") return;
equipmentDefinitions.equipments[optionalDeviceEntry.id] = {
name: getString(optionalDeviceEntry.userString),
description: getString(optionalDeviceEntry.description),
};
},
);
Object.entries(optionalDeviceSlots.root.presets).forEach(
([optionalDeviceSlotKey, optionalDeviceSlotEntry]) => {
if (optionalDeviceSlotKey === "emptyPreset") return;
equipmentDefinitions.presets[optionalDeviceSlotKey] = {
slots: Object.values(optionalDeviceSlotEntry)
.map((level) => {
return Object.values(level).map((options) => {
return {
left: optionalDevices.root[options.device0].id,
right: optionalDevices.root[options.device1].id,
} satisfies EquipmentSlot;
});
})
.flat(),
};
},
);
Object.entries(consumablesCommon).forEach(([key, consumable]) => {
const entry: Consumable = {
id: consumable.id,