71 lines
1.6 KiB
Haskell
71 lines
1.6 KiB
Haskell
{- |
|
|
Module : Dodge.Default
|
|
Description : Instances of data structures
|
|
|
|
This module contains prototypical data structures.
|
|
-}
|
|
module Dodge.Default (
|
|
module Dodge.Default,
|
|
module Dodge.Default.Item,
|
|
module Dodge.Default.Wall,
|
|
module Dodge.Default.Creature,
|
|
module Dodge.Default.Terminal,
|
|
) where
|
|
|
|
import Control.Lens
|
|
import Dodge.Data.World
|
|
import Dodge.Default.Creature
|
|
import Dodge.Default.Item
|
|
import Dodge.Default.Terminal
|
|
import Dodge.Default.Wall
|
|
import Geometry
|
|
import Picture
|
|
|
|
defaultEquipment :: Item
|
|
defaultEquipment = defaultHeldItem & itUse .~ UseNothing
|
|
|
|
defaultFlIt :: FloorItem
|
|
defaultFlIt = FlIt{_flItRot = 0, _flItPos = V2 0 0}
|
|
|
|
defaultMachine :: Machine
|
|
defaultMachine =
|
|
Machine
|
|
{ _mcID = 0
|
|
, _mcWallIDs = mempty
|
|
, _mcColor = white
|
|
, _mcPos = V2 0 0
|
|
, _mcDir = 0
|
|
, _mcHP = 1000
|
|
, _mcMaterial = Electronics
|
|
, _mcDamage = []
|
|
, _mcType = McStatic
|
|
, _mcMounts = mempty
|
|
, _mcWidth = 10
|
|
}
|
|
|
|
defaultButton :: Button
|
|
defaultButton = Button
|
|
{ _btPos = 0
|
|
, _btRot = 0
|
|
, _btEvent = ButtonPress False NoWorldEffect (dark red)
|
|
, _btID = 0
|
|
}
|
|
|
|
defaultPP :: PressPlate
|
|
defaultPP =
|
|
PressPlate
|
|
{ _ppPict = setDepth 1 . color (dim . dim $ bright blue) $ circleSolid 5
|
|
, _ppPos = V2 0 0
|
|
, _ppRot = 0
|
|
, _ppEvent = PressPlateId
|
|
, _ppID = -1
|
|
, _ppText = "Pressure plate"
|
|
}
|
|
|
|
defaultProximitySensor :: ProximitySensor
|
|
defaultProximitySensor =
|
|
ProxSensor
|
|
{ _proxSensorType = SensorWithRequirement $ RequireHealth 0
|
|
, _proxToggle = Nothing
|
|
}
|