mirror of
https://github.com/smogon/sprites.git
synced 2026-03-21 17:35:13 -05:00
data: first pass at items
This commit is contained in:
parent
e72a1c3b77
commit
bb4b75831f
4202
data/items.json
Normal file
4202
data/items.json
Normal file
File diff suppressed because it is too large
Load Diff
|
|
@ -7,7 +7,7 @@ const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|||
|
||||
const libdir = path.join(__dirname, "../..");
|
||||
|
||||
export type Type = {
|
||||
export type SpecieEntry = {
|
||||
num: number,
|
||||
formeNum: number,
|
||||
base: string,
|
||||
|
|
@ -15,25 +15,46 @@ export type Type = {
|
|||
sid: number
|
||||
};
|
||||
|
||||
const species : Record<number, Type> = JSON.parse(fs.readFileSync(path.join(libdir, "species.json"), 'utf8'));
|
||||
|
||||
const result = new Map<number, Type>();
|
||||
export type ItemEntry = {
|
||||
sid : number,
|
||||
name : string
|
||||
};
|
||||
|
||||
const species : Record<number, SpecieEntry> = JSON.parse(fs.readFileSync(path.join(libdir, "species.json"), 'utf8'));
|
||||
const speciesMap = new Map<number, SpecieEntry>();
|
||||
for (const entry of Object.values(species)) {
|
||||
result.set(entry.sid, entry);
|
||||
speciesMap.set(entry.sid, entry);
|
||||
}
|
||||
|
||||
export function get(id : number) : Type {
|
||||
const entry = result.get(id);
|
||||
export function get(id : number) : SpecieEntry {
|
||||
const entry = speciesMap.get(id);
|
||||
if (entry === undefined)
|
||||
throw new Error(`No id for ${id}`);
|
||||
return entry;
|
||||
}
|
||||
|
||||
export function entries() : [number, Type][] {
|
||||
return Array.from(result.entries());
|
||||
export function entries() : [number, SpecieEntry][] {
|
||||
return Array.from(speciesMap.entries());
|
||||
}
|
||||
|
||||
|
||||
// TODO: needs cleanup!!!
|
||||
const items : Record<number, ItemEntry> = JSON.parse(fs.readFileSync(path.join(libdir, "items.json"), 'utf8'));
|
||||
const itemsMap = new Map<number, ItemEntry>();
|
||||
for (const entry of Object.values(items)) {
|
||||
itemsMap.set(entry.sid, entry);
|
||||
}
|
||||
export function getItem(id : number) : ItemEntry {
|
||||
const entry = itemsMap.get(id);
|
||||
if (entry === undefined)
|
||||
throw new Error(`No id for ${id}`);
|
||||
return entry;
|
||||
}
|
||||
export function itemEntries() : [number, ItemEntry][] {
|
||||
return Array.from(itemsMap.entries());
|
||||
}
|
||||
|
||||
|
||||
// TODO Moved here from deploy/spritename.ts, better place to put these??
|
||||
export type SpriteFilename = {id : number | string, extra : Map<string, string>};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user