roguestar-gl-0.4.0.0: src/Models/LibraryData.hs
module Models.LibraryData
(LibraryModel(..),
SimpleModel(..),
EnergyColor(..),
EnergyThing(..),
LibraryModelSource(..))
where
import Models.Sky
import qualified Data.ByteString.Char8 as B
data EnergyColor = Blue | Yellow | Red | Green
deriving (Eq,Ord,Show,Enum,Bounded)
data SimpleModel =
LeafyBlob
| TreeBranch
| QuestionMark
-- Creature Bodies
| Encephalon
| Recreant
| Androsynth
| AscendantGlow
| Caduceator
| Reptilian
-- Tools
| PhasePistol
| Phaser
| PhaseRifle
| GasSphere
| MetalSphere
| ChromaliteSphere
-- Arms and Legs
| MachineArmLower
| MachineArmUpper
| CaduceatorArmLower
| CaduceatorArmUpper
| ReptilianLegUpper
| ReptilianLegLower
| ReptilianArmUpper
| ReptilianArmLower
| ThinLimb
-- Space Ship Parts
| CyborgType4Dome
| CyborgType4Base
| CyborgType4HyperspaceDisc
| CyborgType4HyperspaceRotor
| CyborgType4HyperspaceStabilizer
-- Buildings
| Monolith
| Portal
deriving (Eq,Ord,Show,Enum,Bounded)
data EnergyThing =
EnergySword
| EnergyCylinder
deriving (Eq,Ord,Show,Enum,Bounded)
data LibraryModel =
-- Terrain
TerrainTile B.ByteString
-- Astronomical Phenomena
| SkySphere SkyInfo
| SunDisc SunInfo
-- The Null Model
| NullModel
-- SimpleModels (zero-parameter models)
| SimpleModel SimpleModel
-- Energy things
| EnergyThing EnergyThing EnergyColor
deriving (Eq,Ord,Show)
-- | Things that are also LibraryModels.
class LibraryModelSource a where
toLibraryModel :: a -> LibraryModel
instance LibraryModelSource LibraryModel where
toLibraryModel = id
instance LibraryModelSource SimpleModel where
toLibraryModel = SimpleModel