License | BSD-3-Clause |
---|---|
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
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 #
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.
Cosmic | |
|
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 #
Instances
Eq b => Eq (DistanceMeasure b) Source # | |
Defined in Swarm.Game.Universe (==) :: DistanceMeasure b -> DistanceMeasure b -> Bool # (/=) :: DistanceMeasure b -> DistanceMeasure b -> Bool # | |
Ord b => Ord (DistanceMeasure b) Source # | |
Defined in Swarm.Game.Universe 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.