License | BSD-3-Clause |
---|---|
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Swarm.Game.Universe
Description
Types and utilities for working with "universal locations"; locations that encompass different 2-D subworlds.
Synopsis
- data SubworldName
- renderWorldName :: SubworldName -> Text
- data Cosmic a = Cosmic {
- _subworld :: SubworldName
- _planar :: a
- subworld :: forall a. Lens' (Cosmic a) SubworldName
- planar :: forall a a. Lens (Cosmic a) (Cosmic a) a a
- data DistanceMeasure b
- = Measurable b
- | InfinitelyFar
- getFiniteDistance :: DistanceMeasure b -> Maybe b
- cosmoMeasure :: (a -> a -> b) -> Cosmic a -> Cosmic a -> DistanceMeasure b
- defaultCosmicLocation :: Cosmic Location
- offsetBy :: Cosmic Location -> V2 Int32 -> Cosmic Location
Referring to subworlds
data SubworldName Source #
Constructors
DefaultRootSubworld | |
SubworldName Text |
Instances
renderWorldName :: SubworldName -> Text Source #
Universal location
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
Functor Cosmic Source # | |
FromJSON a => FromJSON (Cosmic a) Source # | |
ToJSON a => ToJSON (Cosmic a) Source # | |
Defined in Swarm.Game.Universe | |
Generic (Cosmic a) Source # | |
Show a => Show (Cosmic a) Source # | |
Eq a => Eq (Cosmic a) Source # | |
Ord a => Ord (Cosmic a) Source # | |
Defined in Swarm.Game.Universe | |
type Rep (Cosmic a) Source # | |
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))) |
Measurement
data DistanceMeasure b Source #
Constructors
Measurable b | |
InfinitelyFar |
Instances
Eq b => Eq (DistanceMeasure b) Source # | |
Defined in Swarm.Game.Universe Methods (==) :: DistanceMeasure b -> DistanceMeasure b -> Bool # (/=) :: DistanceMeasure b -> DistanceMeasure b -> Bool # | |
Ord b => Ord (DistanceMeasure b) Source # | |
Defined in Swarm.Game.Universe Methods compare :: DistanceMeasure b -> DistanceMeasure b -> Ordering # (<) :: DistanceMeasure b -> DistanceMeasure b -> Bool # (<=) :: DistanceMeasure b -> DistanceMeasure b -> Bool # (>) :: DistanceMeasure b -> DistanceMeasure b -> Bool # (>=) :: DistanceMeasure b -> DistanceMeasure b -> Bool # max :: DistanceMeasure b -> DistanceMeasure b -> DistanceMeasure b # min :: DistanceMeasure b -> DistanceMeasure b -> DistanceMeasure b # |
getFiniteDistance :: DistanceMeasure b -> Maybe b Source #
cosmoMeasure :: (a -> a -> b) -> Cosmic a -> Cosmic a -> DistanceMeasure b Source #
Returns InfinitelyFar
if not within the same subworld.