@jeremyckahn/farmhand
Version:
A farming game
479 lines (456 loc) • 17.5 kB
JavaScript
import { grapeVariety } from '../enums.js'
// Plot states
import wateredPlot from './plot-states/watered-plot.png'
import fertilizedPlot from './plot-states/fertilized-plot.png'
import rainbowFertilizedPlot from './plot-states/rainbow-fertilized-plot.png'
import shoveledPlot from './plot-states/shoveled-plot.png'
// Recipes
import bread from './dishes/bread.png'
import burger from './dishes/burger.png'
import butter from './dishes/butter.png'
import carrotSoup from './dishes/carrot-soup.png'
import cheese from './dishes/cheese.png'
import chicknPotPie from './dishes/chickn-pot-pie.png'
import chocolate from './dishes/chocolate.png'
import garlicBread from './dishes/garlic-bread.png'
import garlicFries from './dishes/garlic-fries.png'
import flour from './dishes/flour.png'
import frenchOnionSoup from './dishes/french-onion-soup.png'
import friedTofu from './dishes/fried-tofu.png'
import jackolantern from './items/jackolantern.png'
import hotSauce from './dishes/hot-sauce.png'
import rainbowCheese from './dishes/rainbow-cheese.png'
import salsa from './dishes/salsa.png'
import soyMilk from './dishes/soy-milk.png'
import spicyCheese from './dishes/spicy-cheese.png'
import spicyPickledGarlic from './dishes/spicy-pickled-garlic.png'
import sunButter from './dishes/sun-butter.png'
import chocolateSoyMilk from './dishes/chocolate-soy-milk.png'
import oliveOil from './dishes/olive-oil.png'
import onionRings from './dishes/onion-rings.png'
import popcorn from './dishes/popcorn.png'
import pumpkinPie from './dishes/pumpkin-pie.png'
import salt from './dishes/salt.png'
import summerSalad from './dishes/summer-salad.png'
import sweetPotatoFries from './dishes/sweet-potato-fries.png'
import sweetPotatoPie from './dishes/sweet-potato-pie.png'
import spaghetti from './dishes/spaghetti.png'
import strawberryJam from './dishes/strawberry-jam.png'
import tofu from './dishes/tofu.png'
import vegetableOil from './dishes/vegetable-oil.png'
import yeast from './dishes/yeast.png'
// Wine recipes
import wineGreen from './wines/wine-green.png'
import winePurple from './wines/wine-purple.png'
// Crops
import asparagus from './items/asparagus.png'
import asparagusGrowing1 from './items/asparagus-growing1.png'
import asparagusGrowing2 from './items/asparagus-growing2.png'
import asparagusGrowing3 from './items/asparagus-growing3.png'
import asparagusSeed from './items/asparagus-seed.png'
import carrot from './items/carrot.png'
import carrotGrowing1 from './items/carrot-growing1.png'
import carrotGrowing2 from './items/carrot-growing2.png'
import carrotGrowing3 from './items/carrot-growing3.png'
import carrotSeed from './items/carrot-seed.png'
import garlic from './items/garlic.png'
import garlicGrowing1 from './items/garlic-growing1.png'
import garlicGrowing2 from './items/garlic-growing2.png'
import garlicGrowing3 from './items/garlic-growing3.png'
import garlicSeed from './items/garlic-seed.png'
import grapeSeed from './items/grape-seed.png'
import grapeGreenGrowing1 from './items/grape-green-growing1.png'
import grapePurpleGrowing1 from './items/grape-purple-growing1.png'
import grapeGreen from './items/grape-green.png'
import grapePurple from './items/grape-purple.png'
import jalapeno from './items/jalapeno.png'
import jalapenoGrowing1 from './items/jalapeno-growing1.png'
import jalapenoGrowing2 from './items/jalapeno-growing2.png'
import jalapenoGrowing3 from './items/jalapeno-growing3.png'
import jalapenoSeed from './items/jalapeno-seed.png'
import pea from './items/pea.png'
import peaGrowing1 from './items/pea-growing1.png'
import peaSeed from './items/pea-seed.png'
import pumpkin from './items/pumpkin.png'
import pumpkinGrowing1 from './items/pumpkin-growing1.png'
import pumpkinGrowing2 from './items/pumpkin-growing2.png'
import pumpkinGrowing3 from './items/pumpkin-growing3.png'
import pumpkinGrowing4 from './items/pumpkin-growing4.png'
import pumpkinGrowing5 from './items/pumpkin-growing5.png'
import pumpkinSeed from './items/pumpkin-seed.png'
import spinach from './items/spinach.png'
import spinachGrowing1 from './items/spinach-growing1.png'
import spinachSeed from './items/spinach-seed.png'
import strawberry from './items/strawberry.png'
import strawberryGrowing1 from './items/strawberry-growing1.png'
import strawberrySeed from './items/strawberry-seed.png'
import compost from './items/compost.png'
import corn from './items/corn.png'
import cornGrowing1 from './items/corn-growing1.png'
import cornGrowing2 from './items/corn-growing2.png'
import cornGrowing3 from './items/corn-growing3.png'
import cornGrowing4 from './items/corn-growing4.png'
import cornGrowing5 from './items/corn-growing5.png'
import cornSeed from './items/corn-seed.png'
import potato from './items/potato.png'
import potatoGrowing1 from './items/potato-growing1.png'
import potatoGrowing2 from './items/potato-growing2.png'
import potatoGrowing3 from './items/potato-growing3.png'
import potatoSeed from './items/potato-seed.png'
import sweetPotato from './items/sweet-potato.png'
import sweetPotatoGrowing1 from './items/sweet-potato-growing1.png'
import sweetPotatoGrowing2 from './items/sweet-potato-growing2.png'
import sweetPotatoGrowing3 from './items/sweet-potato-growing3.png'
import sweetPotatoGrowing4 from './items/sweet-potato-growing4.png'
import sweetPotatoSeed from './items/sweet-potato-seed.png'
import olive from './items/olive.png'
import oliveGrowing1 from './items/olive-growing1.png'
import oliveSeed from './items/olive-seed.png'
import onion from './items/onion.png'
import onionGrowing1 from './items/onion-growing1.png'
import onionGrowing2 from './items/onion-growing2.png'
import onionGrowing3 from './items/onion-growing3.png'
import onionSeed from './items/onion-seed.png'
import soybean from './items/soybean.png'
import soybeanGrowing1 from './items/soybean-growing1.png'
import soybeanSeed from './items/soybean-seed.png'
import sunflower from './items/sunflower.png'
import sunflowerGrowing1 from './items/sunflower-growing1.png'
import sunflowerGrowing2 from './items/sunflower-growing2.png'
import sunflowerGrowing3 from './items/sunflower-growing3.png'
import sunflowerGrowing4 from './items/sunflower-growing4.png'
import sunflowerGrowing5 from './items/sunflower-growing5.png'
import sunflowerSeed from './items/sunflower-seed.png'
import watermelon from './items/watermelon.png'
import watermelonGrowing1 from './items/watermelon-growing1.png'
import watermelonSeed from './items/watermelon-seed.png'
import wheat from './items/wheat.png'
import wheatGrowing1 from './items/wheat-growing1.png'
import wheatSeed from './items/wheat-seed.png'
import tomato from './items/tomato.png'
import tomatoGrowing1 from './items/tomato-growing1.png'
import tomatoGrowing2 from './items/tomato-growing2.png'
import tomatoGrowing3 from './items/tomato-growing3.png'
import tomatoGrowing4 from './items/tomato-growing4.png'
import tomatoGrowing5 from './items/tomato-growing5.png'
import tomatoGrowing6 from './items/tomato-growing6.png'
import tomatoSeed from './items/tomato-seed.png'
import fertilizer from './items/fertilizer.png'
import rainbowFertilizer from './items/rainbow-fertilizer.png'
import scarecrow from './items/scarecrow.png'
import sprinkler from './items/sprinkler.png'
import cowFeed from './items/cow-feed.png'
import huggingMachine from './items/hugging-machine.png'
import milk1 from './items/milk-1.png'
import milk2 from './items/milk-2.png'
import milk3 from './items/milk-3.png'
import rainbowMilk1 from './items/rainbow-milk-1.png'
import rainbowMilk2 from './items/rainbow-milk-2.png'
import rainbowMilk3 from './items/rainbow-milk-3.png'
import chocolateMilk from './items/chocolate-milk.png'
import weedYellow from './items/weed-yellow.png'
import weedOrange from './items/weed-orange.png'
import weedPink from './items/weed-pink.png'
// Misc
import inventoryBox from './items/inventory-box.png'
import scarecrowAnimated from './items/scarecrow-animated.gif'
import tumbleweed from './items/tumbleweed.gif'
// Tools
import hoe from './tools/hoe.png'
import hoeBronze from './tools/hoe-bronze.png'
import hoeIron from './tools/hoe-iron.png'
import hoeSilver from './tools/hoe-silver.png'
import hoeGold from './tools/hoe-gold.png'
import scythe from './tools/scythe.png'
import scytheBronze from './tools/scythe-bronze.png'
import scytheIron from './tools/scythe-iron.png'
import scytheSilver from './tools/scythe-silver.png'
import scytheGold from './tools/scythe-gold.png'
import shovel from './tools/shovel.png'
import shovelBronze from './tools/shovel-bronze.png'
import shovelIron from './tools/shovel-iron.png'
import shovelSilver from './tools/shovel-silver.png'
import shovelGold from './tools/shovel-gold.png'
import wateringCan from './tools/watering-can.png'
// Mined resources
import coal from './ores/coal.png'
import stone from './ores/stone.png'
import saltRock from './ores/salt-rock.png'
import bronzeOre from './ores/bronze-ore.png'
import bronzeIngot from './ores/bronze-ingot.png'
import ironOre from './ores/iron-ore.png'
import ironIngot from './ores/iron-ingot.png'
import silverOre from './ores/silver-ore.png'
import silverIngot from './ores/silver-ingot.png'
import goldOre from './ores/gold-ore.png'
import goldIngot from './ores/gold-ingot.png'
// Cows
import rainbowCow from './animals/cows/rainbow-cow.png'
// NOTE: These need to be imported as dataUri strings because the image data is
// programmatically manipulated by the getCowImage utility function.
// @ts-expect-error
import cowVariation1 from './animals/cows/cow-variation-1.png?dataUri'
// @ts-expect-error
import cowVariation2 from './animals/cows/cow-variation-2.png?dataUri'
// @ts-expect-error
import cowVariation3 from './animals/cows/cow-variation-3.png?dataUri'
// @ts-expect-error
import cowVariation4 from './animals/cows/cow-variation-4.png?dataUri'
// @ts-expect-error
import cowVariation5 from './animals/cows/cow-variation-5.png?dataUri'
// @ts-expect-error
import cowVariation6 from './animals/cows/cow-variation-6.png?dataUri'
// @ts-expect-error
import cowVariation7 from './animals/cows/cow-variation-7.png?dataUri'
// @ts-expect-error
export { default as pixel } from './pixel.png?dataUri'
export const plotStates = {
'watered-plot': wateredPlot,
'fertilized-plot': fertilizedPlot,
'rainbow-fertilized-plot': rainbowFertilizedPlot,
'shoveled-plot': shoveledPlot,
}
const smeltedItems = {
'bronze-ingot': bronzeIngot,
'iron-ingot': ironIngot,
'silver-ingot': silverIngot,
'gold-ingot': goldIngot,
// tool upgrades
'hoe-bronze': hoeBronze,
'hoe-iron': hoeIron,
'hoe-silver': hoeSilver,
'hoe-gold': hoeGold,
'scythe-bronze': scytheBronze,
'scythe-iron': scytheIron,
'scythe-silver': scytheSilver,
'scythe-gold': scytheGold,
'shovel-bronze': shovelBronze,
'shovel-iron': shovelIron,
'shovel-silver': shovelSilver,
'shovel-gold': shovelGold,
}
export const craftedItems = {
'carrot-soup': carrotSoup,
cheese,
'chickn-pot-pie': chicknPotPie,
chocolate,
'chocolate-soy-milk': chocolateSoyMilk,
compost,
bread,
burger,
butter,
fertilizer,
'french-onion-soup': frenchOnionSoup,
'fried-tofu': friedTofu,
'garlic-bread': garlicBread,
'garlic-fries': garlicFries,
flour,
jackolantern,
'hot-sauce': hotSauce,
'olive-oil': oliveOil,
'onion-rings': onionRings,
popcorn,
'pumpkin-pie': pumpkinPie,
rainbowCheese,
salsa,
'soy-milk': soyMilk,
'spicy-cheese': spicyCheese,
'spicy-pickled-garlic': spicyPickledGarlic,
spaghetti,
'strawberry-jam': strawberryJam,
salt,
'summer-salad': summerSalad,
'sun-butter': sunButter,
'sweet-potato-fries': sweetPotatoFries,
'sweet-potato-pie': sweetPotatoPie,
tofu,
'vegetable-oil': vegetableOil,
yeast,
...smeltedItems,
}
export const items = {
// Crops
asparagus,
'asparagus-growing-1': asparagusGrowing1,
'asparagus-growing-2': asparagusGrowing2,
'asparagus-growing-3': asparagusGrowing3,
'asparagus-seed': asparagusSeed,
carrot,
'carrot-growing-1': carrotGrowing1,
'carrot-growing-2': carrotGrowing2,
'carrot-growing-3': carrotGrowing3,
'carrot-seed': carrotSeed,
garlic,
'garlic-growing-1': garlicGrowing1,
'garlic-growing-2': garlicGrowing2,
'garlic-growing-3': garlicGrowing3,
'garlic-seed': garlicSeed,
'grape-seed': grapeSeed,
'grape-cabernet-sauvignon': grapePurple,
'grape-cabernet-sauvignon-growing-1': grapePurpleGrowing1,
'grape-cabernet-sauvignon-seed': grapeSeed,
'grape-chardonnay': grapeGreen,
'grape-chardonnay-growing-1': grapeGreenGrowing1,
'grape-chardonnay-seed': grapeSeed,
// 'grape-merlot': grapePurple,
// 'grape-merlot-growing-1': grapePurpleGrowing1,
// 'grape-merlot-seed': grapeSeed,
// 'grape-muscat': grapeGreen,
// 'grape-muscat-growing-1': grapeGreenGrowing1,
// 'grape-muscat-seed': grapeSeed,
'grape-nebbiolo': grapePurple,
'grape-nebbiolo-growing-1': grapePurpleGrowing1,
'grape-nebbiolo-seed': grapeSeed,
// 'grape-pinot-blanc': grapeGreen,
// 'grape-pinot-blanc-growing-1': grapeGreenGrowing1,
// 'grape-pinot-blanc-seed': grapeSeed,
// 'grape-riesling': grapeGreen,
// 'grape-riesling-growing-1': grapeGreenGrowing1,
// 'grape-riesling-seed': grapeSeed,
'grape-sauvignon-blanc': grapeGreen,
'grape-sauvignon-blanc-growing-1': grapeGreenGrowing1,
'grape-sauvignon-blanc-seed': grapeSeed,
// 'grape-syrah': grapePurple,
// 'grape-syrah-growing-1': grapePurpleGrowing1,
// 'grape-syrah-seed': grapeSeed,
'grape-tempranillo': grapePurple,
'grape-tempranillo-growing-1': grapePurpleGrowing1,
'grape-tempranillo-seed': grapeSeed,
jalapeno,
'jalapeno-growing-1': jalapenoGrowing1,
'jalapeno-growing-2': jalapenoGrowing2,
'jalapeno-growing-3': jalapenoGrowing3,
'jalapeno-seed': jalapenoSeed,
pumpkin,
'pumpkin-growing-1': pumpkinGrowing1,
'pumpkin-growing-2': pumpkinGrowing2,
'pumpkin-growing-3': pumpkinGrowing3,
'pumpkin-growing-4': pumpkinGrowing4,
'pumpkin-growing-5': pumpkinGrowing5,
'pumpkin-seed': pumpkinSeed,
pea,
'pea-growing-1': peaGrowing1,
'pea-seed': peaSeed,
spinach,
'spinach-growing-1': spinachGrowing1,
'spinach-seed': spinachSeed,
corn,
'corn-growing-1': cornGrowing1,
'corn-growing-2': cornGrowing2,
'corn-growing-3': cornGrowing3,
'corn-growing-4': cornGrowing4,
'corn-growing-5': cornGrowing5,
'corn-seed': cornSeed,
potato,
'potato-growing-1': potatoGrowing1,
'potato-growing-2': potatoGrowing2,
'potato-growing-3': potatoGrowing3,
'potato-seed': potatoSeed,
olive,
'olive-growing-1': oliveGrowing1,
'olive-seed': oliveSeed,
onion,
'onion-growing-1': onionGrowing1,
'onion-growing-2': onionGrowing2,
'onion-growing-3': onionGrowing3,
'onion-seed': onionSeed,
soybean,
'soybean-growing-1': soybeanGrowing1,
'soybean-seed': soybeanSeed,
'sweet-potato': sweetPotato,
'sweet-potato-growing-1': sweetPotatoGrowing1,
'sweet-potato-growing-2': sweetPotatoGrowing2,
'sweet-potato-growing-3': sweetPotatoGrowing3,
'sweet-potato-growing-4': sweetPotatoGrowing4,
'sweet-potato-seed': sweetPotatoSeed,
wheat,
'wheat-growing-1': wheatGrowing1,
'wheat-seed': wheatSeed,
tomato,
'tomato-growing-1': tomatoGrowing1,
'tomato-growing-2': tomatoGrowing2,
'tomato-growing-3': tomatoGrowing3,
'tomato-growing-4': tomatoGrowing4,
'tomato-growing-5': tomatoGrowing5,
'tomato-growing-6': tomatoGrowing6,
'tomato-seed': tomatoSeed,
strawberry,
'strawberry-growing-1': strawberryGrowing1,
'strawberry-seed': strawberrySeed,
sunflower,
'sunflower-growing-1': sunflowerGrowing1,
'sunflower-growing-2': sunflowerGrowing2,
'sunflower-growing-3': sunflowerGrowing3,
'sunflower-growing-4': sunflowerGrowing4,
'sunflower-growing-5': sunflowerGrowing5,
'sunflower-seed': sunflowerSeed,
watermelon,
'watermelon-growing-1': watermelonGrowing1,
'watermelon-seed': watermelonSeed,
weed: weedPink, // this one is used for the inventory
'weed-yellow': weedYellow,
'weed-orange': weedOrange,
'weed-pink': weedPink,
// Ores
coal,
stone,
'salt-rock': saltRock,
'bronze-ore': bronzeOre,
'iron-ore': ironOre,
'silver-ore': silverOre,
'gold-ore': goldOre,
// Field tools
'rainbow-fertilizer': rainbowFertilizer,
scarecrow,
sprinkler,
// Cow items
'cow-feed': cowFeed,
'hugging-machine': huggingMachine,
'milk-1': milk1,
'milk-2': milk2,
'milk-3': milk3,
'rainbow-milk-1': rainbowMilk1,
'rainbow-milk-2': rainbowMilk2,
'rainbow-milk-3': rainbowMilk3,
'chocolate-milk': chocolateMilk,
// Miscellaneous
'scarecrow-animated': scarecrowAnimated,
'inventory-box': inventoryBox,
tumbleweed,
...craftedItems,
}
/**
* @type {Record<grapeVariety, string>}
*/
export const wines = {
[grapeVariety.CHARDONNAY]: wineGreen,
[grapeVariety.SAUVIGNON_BLANC]: wineGreen,
//[grapeVariety.PINOT_BLANC]: wineGreen,
//[grapeVariety.MUSCAT]: wineGreen,
//[grapeVariety.RIESLING]: wineGreen,
//[grapeVariety.MERLOT]: winePurple,
[grapeVariety.CABERNET_SAUVIGNON]: winePurple,
//[grapeVariety.SYRAH]: winePurple,
[grapeVariety.TEMPRANILLO]: winePurple,
[grapeVariety.NEBBIOLO]: winePurple,
}
export const tools = {
hoe,
scythe,
shovel,
'watering-can': wateringCan,
}
export const animals = {
cow: {
rainbow: rainbowCow,
variations: [
cowVariation1,
cowVariation2,
cowVariation3,
cowVariation4,
cowVariation5,
cowVariation6,
cowVariation7,
],
},
}