data: first pass at items

This commit is contained in:
Christopher Monsanto 2020-08-31 08:02:29 -04:00
parent e72a1c3b77
commit bb4b75831f
2 changed files with 4232 additions and 9 deletions

4202
data/items.json Normal file

File diff suppressed because it is too large Load Diff

View File

@ -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>};