module Beekeep ( Garden , Block (..) , gardenWidth , gardenHeight , newGarden , gardenSet , gardenGet ) where import Bee import Plant import Data.Array.IO someFunc :: IO () someFunc = putStrLn "someFunc" data Block = BEmpty | BPlant Plant | BHive Beehive type Garden = IOArray Int Block gardenWidth :: Int gardenWidth = 128 gardenHeight :: Int gardenHeight = 128 newGarden :: IO Garden newGarden = newArray (1, gardenWidth * gardenHeight) BEmpty calcGardenIndex :: (Int, Int) -> Int calcGardenIndex (x, y) = x + y * gardenHeight gardenGet :: Garden -> (Int, Int) -> IO Block gardenGet g coords = readArray g (calcGardenIndex coords) gardenSet :: Garden -> (Int, Int) -> Block -> IO () gardenSet g coords b = writeArray g (calcGardenIndex coords) b