feat(xanthous): Add a method to get the name for a type of entity

I didn't end up using this directly for the thing I was doing, but it
still seems generally useful enough that I'm keeping it around for now

Change-Id: I05c8902d75845f2230ec2373a9677d61cfaafafd
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3206
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
This commit is contained in:
Griffin Smith 2021-06-13 23:02:11 -04:00 committed by grfn
parent 26d7dadded
commit 30d83d7c82
4 changed files with 35 additions and 1 deletions

View file

@ -56,6 +56,8 @@ module Xanthous.Game.State
, downcastEntity
, _SomeEntity
, entityIs
, entityTypeName
-- ** Vias
, Color(..)
, DrawNothing(..)
@ -394,6 +396,10 @@ entityIs = isJust . downcastEntity @a
_SomeEntity :: forall a. (Entity a, Typeable a) => Prism' SomeEntity a
_SomeEntity = prism' SomeEntity downcastEntity
-- | Get the name of the type of 'SomeEntity' as a string
entityTypeName :: SomeEntity -> Text
entityTypeName (SomeEntity e) = pack . tyConName . typeRepTyCon $ typeOf e
newtype DeriveEntity
(blocksVision :: Bool)
(description :: Symbol)