swarm-0.5.0.0: 2D resource gathering game with programmable robots
LicenseBSD-3-Clause
Safe HaskellSafe-Inferred
LanguageHaskell2010

Swarm.Game.Universe

Description

Types and utilities for working with "universal locations"; locations that encompass different 2-D subworlds.

Synopsis

Referring to subworlds

data SubworldName Source #

Instances

Instances details
FromJSON SubworldName Source # 
Instance details

Defined in Swarm.Game.Universe

ToJSON SubworldName Source # 
Instance details

Defined in Swarm.Game.Universe

Generic SubworldName Source # 
Instance details

Defined in Swarm.Game.Universe

Associated Types

type Rep SubworldName :: Type -> Type #

Show SubworldName Source # 
Instance details

Defined in Swarm.Game.Universe

Eq SubworldName Source # 
Instance details

Defined in Swarm.Game.Universe

Ord SubworldName Source # 
Instance details

Defined in Swarm.Game.Universe

type Rep SubworldName Source # 
Instance details

Defined in Swarm.Game.Universe

type Rep SubworldName = D1 ('MetaData "SubworldName" "Swarm.Game.Universe" "swarm-0.5.0.0-6qXEbhCmuXA4wRndqqhBu" 'False) (C1 ('MetaCons "DefaultRootSubworld" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SubworldName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text)))

Universal location

data Cosmic a Source #

The swarm universe consists of locations indexed by subworld. Not only is this parameterized datatype useful for planar (2D) coordinates, but is also used for named waypoints.

Constructors

Cosmic 

Fields

Instances

Instances details
Functor Cosmic Source # 
Instance details

Defined in Swarm.Game.Universe

Methods

fmap :: (a -> b) -> Cosmic a -> Cosmic b #

(<$) :: a -> Cosmic b -> Cosmic a #

FromJSON a => FromJSON (Cosmic a) Source # 
Instance details

Defined in Swarm.Game.Universe

ToJSON a => ToJSON (Cosmic a) Source # 
Instance details

Defined in Swarm.Game.Universe

Generic (Cosmic a) Source # 
Instance details

Defined in Swarm.Game.Universe

Associated Types

type Rep (Cosmic a) :: Type -> Type #

Methods

from :: Cosmic a -> Rep (Cosmic a) x #

to :: Rep (Cosmic a) x -> Cosmic a #

Show a => Show (Cosmic a) Source # 
Instance details

Defined in Swarm.Game.Universe

Methods

showsPrec :: Int -> Cosmic a -> ShowS #

show :: Cosmic a -> String #

showList :: [Cosmic a] -> ShowS #

Eq a => Eq (Cosmic a) Source # 
Instance details

Defined in Swarm.Game.Universe

Methods

(==) :: Cosmic a -> Cosmic a -> Bool #

(/=) :: Cosmic a -> Cosmic a -> Bool #

Ord a => Ord (Cosmic a) Source # 
Instance details

Defined in Swarm.Game.Universe

Methods

compare :: Cosmic a -> Cosmic a -> Ordering #

(<) :: Cosmic a -> Cosmic a -> Bool #

(<=) :: Cosmic a -> Cosmic a -> Bool #

(>) :: Cosmic a -> Cosmic a -> Bool #

(>=) :: Cosmic a -> Cosmic a -> Bool #

max :: Cosmic a -> Cosmic a -> Cosmic a #

min :: Cosmic a -> Cosmic a -> Cosmic a #

type Rep (Cosmic a) Source # 
Instance details

Defined in Swarm.Game.Universe

type Rep (Cosmic a) = D1 ('MetaData "Cosmic" "Swarm.Game.Universe" "swarm-0.5.0.0-6qXEbhCmuXA4wRndqqhBu" 'False) (C1 ('MetaCons "Cosmic" 'PrefixI 'True) (S1 ('MetaSel ('Just "_subworld") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 SubworldName) :*: S1 ('MetaSel ('Just "_planar") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 a)))

planar :: forall a a. Lens (Cosmic a) (Cosmic a) a a Source #

Measurement

cosmoMeasure :: (a -> a -> b) -> Cosmic a -> Cosmic a -> DistanceMeasure b Source #

Returns InfinitelyFar if not within the same subworld.

Utilities