about summary refs log tree commit diff
path: root/users/grfn/xanthous/src/Xanthous/Game
diff options
context:
space:
mode:
authorGriffin Smith <grfn@gws.fyi>2021-06-14T03·02-0400
committergrfn <grfn@gws.fyi>2021-06-14T13·04+0000
commit30d83d7c828f7bf5ed285f71e5b4a7bf095002b5 (patch)
treeda94fafb2f1efd27264559c14493766be6443015 /users/grfn/xanthous/src/Xanthous/Game
parent26d7dadded04cfb278765ed0b4479c471f9eb412 (diff)
feat(xanthous): Add a method to get the name for a type of entity r/2660
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
Diffstat (limited to 'users/grfn/xanthous/src/Xanthous/Game')
-rw-r--r--users/grfn/xanthous/src/Xanthous/Game/State.hs6
1 files changed, 6 insertions, 0 deletions
diff --git a/users/grfn/xanthous/src/Xanthous/Game/State.hs b/users/grfn/xanthous/src/Xanthous/Game/State.hs
index cdaf23edcd48..6f51683d14fe 100644
--- a/users/grfn/xanthous/src/Xanthous/Game/State.hs
+++ b/users/grfn/xanthous/src/Xanthous/Game/State.hs
@@ -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)