mirror of
https://github.com/smogon/sprites.git
synced 2026-04-25 23:54:07 -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, "../..");
|
const libdir = path.join(__dirname, "../..");
|
||||||
|
|
||||||
export type Type = {
|
export type SpecieEntry = {
|
||||||
num: number,
|
num: number,
|
||||||
formeNum: number,
|
formeNum: number,
|
||||||
base: string,
|
base: string,
|
||||||
|
|
@ -15,25 +15,46 @@ export type Type = {
|
||||||
sid: number
|
sid: number
|
||||||
};
|
};
|
||||||
|
|
||||||
const species : Record<number, Type> = JSON.parse(fs.readFileSync(path.join(libdir, "species.json"), 'utf8'));
|
export type ItemEntry = {
|
||||||
|
sid : number,
|
||||||
const result = new Map<number, Type>();
|
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)) {
|
for (const entry of Object.values(species)) {
|
||||||
result.set(entry.sid, entry);
|
speciesMap.set(entry.sid, entry);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function get(id : number) : Type {
|
export function get(id : number) : SpecieEntry {
|
||||||
const entry = result.get(id);
|
const entry = speciesMap.get(id);
|
||||||
if (entry === undefined)
|
if (entry === undefined)
|
||||||
throw new Error(`No id for ${id}`);
|
throw new Error(`No id for ${id}`);
|
||||||
return entry;
|
return entry;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function entries() : [number, Type][] {
|
export function entries() : [number, SpecieEntry][] {
|
||||||
return Array.from(result.entries());
|
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??
|
// TODO Moved here from deploy/spritename.ts, better place to put these??
|
||||||
export type SpriteFilename = {id : number | string, extra : Map<string, string>};
|
export type SpriteFilename = {id : number | string, extra : Map<string, string>};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user