Initial codebase
This commit is contained in:
commit
e09210f3e0
47 changed files with 2645 additions and 0 deletions
212
src/state/item.ts
Normal file
212
src/state/item.ts
Normal file
|
|
@ -0,0 +1,212 @@
|
|||
import type { Company } from "./company.js";
|
||||
import type { ConnectorType } from "./connector.js";
|
||||
import type { SocketType } from "./cpu.js";
|
||||
import type { MemoryType } from "./memory.js";
|
||||
import type { DiscType, DiskType, IStorage } from "./storage.js";
|
||||
import type { INet } from "./types.js";
|
||||
|
||||
export enum ItemType {
|
||||
SCREWDRIVER,
|
||||
CPU,
|
||||
GRAPHIC_CARD,
|
||||
RAM_MODULE,
|
||||
DISK,
|
||||
DISC,
|
||||
TAPE,
|
||||
VHS,
|
||||
DISKETTE,
|
||||
CASE,
|
||||
PSU,
|
||||
MOTHERBOARD,
|
||||
FAN,
|
||||
CPU_COOLER,
|
||||
GPU_COOLER,
|
||||
NETWORK_CARD,
|
||||
SOUND_CARD,
|
||||
NETWORK_SWITCH,
|
||||
WIFI_AP,
|
||||
ROUTER,
|
||||
MODEM,
|
||||
MONITOR,
|
||||
KEYBOARD,
|
||||
MOUSE,
|
||||
JOYSTICK,
|
||||
HEADPHONES,
|
||||
DAC,
|
||||
MICROPHONE,
|
||||
CAMERA,
|
||||
PHONE,
|
||||
LAPTOP,
|
||||
COMPUTER,
|
||||
SECURITY_KEY,
|
||||
}
|
||||
|
||||
export enum FormFactorType {
|
||||
M_ATX,
|
||||
ATX,
|
||||
E_ATX,
|
||||
}
|
||||
|
||||
interface IItem {
|
||||
type: ItemType;
|
||||
name: string;
|
||||
durability: number;
|
||||
manufacturer?: Company | "Player";
|
||||
availability?: number;
|
||||
rarity?: number;
|
||||
price?: number;
|
||||
canFitInComputerCase?: boolean;
|
||||
canFitInLaptopCase?: boolean;
|
||||
canFitInMobileCase?: boolean;
|
||||
}
|
||||
|
||||
interface IConnectedDevice extends IItem {
|
||||
connector: ConnectorType;
|
||||
}
|
||||
|
||||
interface IScrewdriver extends IItem {
|
||||
quality: number;
|
||||
}
|
||||
|
||||
interface ICPUCore {
|
||||
originalClockSpeed: number;
|
||||
clockSpeed: number;
|
||||
threads: number;
|
||||
cacheL1?: number;
|
||||
cacheL2?: number;
|
||||
}
|
||||
|
||||
interface ICPU extends IItem {
|
||||
cores: ICPUCore[];
|
||||
cacheL3?: number;
|
||||
cacheL4?: number;
|
||||
gpu?: IGPU;
|
||||
npu?: INPU;
|
||||
tdp: number;
|
||||
process: number;
|
||||
socket: SocketType;
|
||||
}
|
||||
|
||||
interface IGPU extends IItem {
|
||||
originalClockSpeed: number;
|
||||
clockSpeed: number;
|
||||
coreCount: number;
|
||||
shadingUnitCount: number;
|
||||
tmuCount: number;
|
||||
ropCount: number;
|
||||
tensorCoreCount: number;
|
||||
rtCoreCount: number;
|
||||
cacheL0?: number;
|
||||
cacheL1?: number;
|
||||
cacheL2?: number;
|
||||
cacheL3?: number;
|
||||
tops: number;
|
||||
pixelRate: number;
|
||||
textureRate: number;
|
||||
fp16flops: number;
|
||||
fp32flops: number;
|
||||
fp64flops: number;
|
||||
features: IGPUFeatures;
|
||||
process: number;
|
||||
}
|
||||
|
||||
interface INPU extends IItem {
|
||||
tops: number;
|
||||
}
|
||||
|
||||
interface IGPUFeatures {
|
||||
directxVersion?: number;
|
||||
openglVersion?: number;
|
||||
openclVersion?: number;
|
||||
vulkanVersion?: number;
|
||||
cudaVersion?: number;
|
||||
shaderModel?: number;
|
||||
}
|
||||
|
||||
interface IGraphicsCard extends IConnectedDevice {
|
||||
gpu: IGPU;
|
||||
memory: IGraphicsCardMemory;
|
||||
tdp: number;
|
||||
}
|
||||
|
||||
interface IGraphicsCardMemory {
|
||||
type: MemoryType;
|
||||
originalClockSpeed: number;
|
||||
clockSpeed: number;
|
||||
busWidth: number;
|
||||
bandwidth: number;
|
||||
capacity: number;
|
||||
}
|
||||
|
||||
interface IRAMModule extends IItem {
|
||||
memoryType: MemoryType;
|
||||
originalClockSpeed: number;
|
||||
clockSpeed: number;
|
||||
capacity: number;
|
||||
tdp: number;
|
||||
}
|
||||
|
||||
interface IDisk extends IConnectedDevice {
|
||||
diskType: DiskType;
|
||||
bandwidth: number;
|
||||
capacity: number;
|
||||
tdp: number;
|
||||
storage: IStorage;
|
||||
}
|
||||
|
||||
interface IDisc extends IItem {
|
||||
discType: DiscType;
|
||||
bandwidth: number;
|
||||
capacity: number;
|
||||
storage: IStorage;
|
||||
}
|
||||
|
||||
interface ICase extends IItem {
|
||||
formFactor: FormFactorType;
|
||||
width: number;
|
||||
height: number;
|
||||
depth: number;
|
||||
installedDevices: IItem[];
|
||||
}
|
||||
|
||||
interface IPSU extends IItem {
|
||||
formFactor: FormFactorType;
|
||||
width: number;
|
||||
height: number;
|
||||
depth: number;
|
||||
wattage: number;
|
||||
connectors: ConnectorType[];
|
||||
}
|
||||
|
||||
interface IMotherboard extends IItem {
|
||||
formFactor: FormFactorType;
|
||||
connectors: ConnectorType[];
|
||||
socket: SocketType;
|
||||
socketCount: number;
|
||||
memoryType: MemoryType;
|
||||
memorySlots: number;
|
||||
installedCPUs: ICPU[];
|
||||
installedRAMs: IRAMModule[];
|
||||
installedDevices: IConnectedDevice[];
|
||||
}
|
||||
|
||||
interface IModem extends IItem {
|
||||
bandwidth: number;
|
||||
net: INet;
|
||||
}
|
||||
|
||||
export {
|
||||
type IItem,
|
||||
type IConnectedDevice,
|
||||
type IScrewdriver,
|
||||
type ICPU,
|
||||
type IGPU,
|
||||
type IGraphicsCard,
|
||||
type IRAMModule,
|
||||
type IDisk,
|
||||
type IDisc,
|
||||
type ICase,
|
||||
type IPSU,
|
||||
type IMotherboard,
|
||||
type IModem,
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue