{- | 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.LightSource , module Dodge.Default.Weapon , module Dodge.Default.Wall , module Dodge.Default.Creature ) where import Dodge.Default.Wall import Dodge.Default.Creature import Dodge.Default.Weapon import Dodge.Default.LightSource import Dodge.Default.Item import Dodge.Data import Dodge.SoundLogic import Geometry import Picture import qualified Data.Text as T import qualified Data.Map.Strict as M defaultEquipment :: Item defaultEquipment = defaultItem { _itInvColor = yellow , _itUse = EquipUse defaultEquip , _itAttachment = NoItAttachment } defaultItZoom :: ItZoom defaultItZoom = ItZoom 20 0.2 1 defaultConsumable :: Item defaultConsumable = defaultItem { _itConsumption = ItemItselfConsumable {_icAmount = 1} , _itInvColor = blue } defaultFlIt :: FloorItem defaultFlIt = FlIt {_flItRot=0,_flIt = defaultConsumable, _flItPos = V2 0 0, _flItID = 0} defaultMachine :: Machine defaultMachine = Machine { _mcID = 0 , _mcWallIDs = mempty -- , _mcUpdate = defaultMachineUpdate , _mcDraw = const mempty , _mcColor = white , _mcPos = V2 0 0 , _mcDir = 0 , _mcHP = 1000 , _mcSensor = NoSensor , _mcMaterial = Electronics , _mcDamage = [] , _mcType = StaticMachine , _mcName = "" , _mcMounts = mempty , _mcCloseSound = Nothing } defaultTerminal :: Terminal defaultTerminal = Terminal { _tmID = 0 , _tmBootProgram = \_ _ -> [] , _tmButtonID = 0 , _tmMachineID = 0 , _tmName = "TESTTERMINAL" , _tmDisplayedLines = [] , _tmFutureLines = [] , _tmMaxLines = 14 , _tmTitle = "TERMINAL IN LOCATION" , _tmInput = defaultTerminalInput , _tmScrollCommands = [] , _tmWriteCommands = [] , _tmDeathEffect = const id , _tmStatus = TerminalOff , _tmCommandHistory = [] , _tmToggles = M.empty } defaultTerminalInput :: TerminalInput defaultTerminalInput = TerminalInput { _tiText = T.pack "" , _tiFocus = True , _tiSel = (0,0) } defaultButton :: Button defaultButton = Button { _btPict = DefaultDrawButton (dark red) , _btPos = V2 0 0 , _btRot = 0 , _btEvent = ButtonPress BtNoLabel ButtonDoNothing click1S NoWorldEffect , _btID = 0 , _btText = "Button" , _btState = BtOff , _btTermMID = Nothing , _btName = "" , _btColor = red } defaultPP :: PressPlate defaultPP = PressPlate { _ppPict = setDepth 1 . color (dim . dim $ bright blue) $ circleSolid 5 , _ppPos = V2 0 0 , _ppRot = 0 , _ppEvent = const id , _ppID = -1 , _ppText = "Pressure plate" } upHammer :: HammerType upHammer = HasHammer HammerUp defaultProximitySensor :: Sensor defaultProximitySensor = ProximitySensor { _proxStatus = NotClose , _proxDist = 40 , _proxRequirement = RequireImpossible , _sensToggle = False }