@jeremyckahn/farmhand
Version:
A farming game
51 lines (41 loc) • 1.34 kB
text/typescript
import { recipeType } from '../../enums.js'
import * as actualMaps from '../maps.js'
import * as items from './items.js'
import * as recipes from './recipes.js'
export const recipeCategories: Record<
string,
Record<string, farmhand.recipe>
> = {
[recipeType.KITCHEN]: {},
[recipeType.FORGE]: {},
[recipeType.RECYCLING]: {},
[recipeType.WINE]: {},
}
export const recipesMap: Record<string, farmhand.recipe> = {}
for (const recipeId of Object.keys(recipes)) {
const recipe = (recipes as Record<string, farmhand.recipe>)[recipeId]
// Only process objects that have recipe properties
if (recipe && typeof recipe === 'object' && recipe.recipeType && recipe.id) {
recipeCategories[recipe.recipeType][recipe.id] = recipe
recipesMap[recipe.id] = recipe
}
}
export const itemsMap = {
...Object.keys(items).reduce(
(acc: Record<string, farmhand.item>, itemName) => {
const item = (items as Record<string, farmhand.item>)[itemName]
acc[item.id] = item
return acc
},
{} as Record<string, farmhand.item>
),
...recipesMap,
// Ensure sample-recipe-1 is available for tests
'sample-recipe-1': recipes.sampleRecipe1,
}
export const cropTypeToIdMap = {
SAMPLE_CROP_TYPE_1: 'sample-crop-type-1',
}
export const { cropItemIdToSeedItemMap, fermentableItemsMap } = {
...actualMaps,
}