{-# LANGUAGE TemplateHaskell #-}

module Rattletrap.Type.SpawnedReplication
  ( SpawnedReplication(..)
  )
where

import Rattletrap.Type.Common
import Rattletrap.Type.Initialization
import Rattletrap.Type.Str
import Rattletrap.Type.Word32le

data SpawnedReplication = SpawnedReplication
  { SpawnedReplication -> Bool
spawnedReplicationFlag :: Bool
  -- ^ Unclear what this is.
  , SpawnedReplication -> Maybe Word32le
spawnedReplicationNameIndex :: Maybe Word32le
  , SpawnedReplication -> Maybe Str
spawnedReplicationName :: Maybe Str
  -- ^ Read-only! Changing a replication's name requires editing the
  -- 'spawnedReplicationNameIndex' and maybe the class attribute map.
  , SpawnedReplication -> Word32le
spawnedReplicationObjectId :: Word32le
  , SpawnedReplication -> Str
spawnedReplicationObjectName :: Str
  -- ^ Read-only! Changing a replication's object requires editing the class
  -- attribute map.
  , SpawnedReplication -> Str
spawnedReplicationClassName :: Str
  -- ^ Read-only! Changing a replication's class requires editing the class
  -- attribute map.
  , SpawnedReplication -> Initialization
spawnedReplicationInitialization :: Initialization
  } deriving (SpawnedReplication -> SpawnedReplication -> Bool
(SpawnedReplication -> SpawnedReplication -> Bool)
-> (SpawnedReplication -> SpawnedReplication -> Bool)
-> Eq SpawnedReplication
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SpawnedReplication -> SpawnedReplication -> Bool
$c/= :: SpawnedReplication -> SpawnedReplication -> Bool
== :: SpawnedReplication -> SpawnedReplication -> Bool
$c== :: SpawnedReplication -> SpawnedReplication -> Bool
Eq, Eq SpawnedReplication
Eq SpawnedReplication
-> (SpawnedReplication -> SpawnedReplication -> Ordering)
-> (SpawnedReplication -> SpawnedReplication -> Bool)
-> (SpawnedReplication -> SpawnedReplication -> Bool)
-> (SpawnedReplication -> SpawnedReplication -> Bool)
-> (SpawnedReplication -> SpawnedReplication -> Bool)
-> (SpawnedReplication -> SpawnedReplication -> SpawnedReplication)
-> (SpawnedReplication -> SpawnedReplication -> SpawnedReplication)
-> Ord SpawnedReplication
SpawnedReplication -> SpawnedReplication -> Bool
SpawnedReplication -> SpawnedReplication -> Ordering
SpawnedReplication -> SpawnedReplication -> SpawnedReplication
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: SpawnedReplication -> SpawnedReplication -> SpawnedReplication
$cmin :: SpawnedReplication -> SpawnedReplication -> SpawnedReplication
max :: SpawnedReplication -> SpawnedReplication -> SpawnedReplication
$cmax :: SpawnedReplication -> SpawnedReplication -> SpawnedReplication
>= :: SpawnedReplication -> SpawnedReplication -> Bool
$c>= :: SpawnedReplication -> SpawnedReplication -> Bool
> :: SpawnedReplication -> SpawnedReplication -> Bool
$c> :: SpawnedReplication -> SpawnedReplication -> Bool
<= :: SpawnedReplication -> SpawnedReplication -> Bool
$c<= :: SpawnedReplication -> SpawnedReplication -> Bool
< :: SpawnedReplication -> SpawnedReplication -> Bool
$c< :: SpawnedReplication -> SpawnedReplication -> Bool
compare :: SpawnedReplication -> SpawnedReplication -> Ordering
$ccompare :: SpawnedReplication -> SpawnedReplication -> Ordering
$cp1Ord :: Eq SpawnedReplication
Ord, Int -> SpawnedReplication -> ShowS
[SpawnedReplication] -> ShowS
SpawnedReplication -> String
(Int -> SpawnedReplication -> ShowS)
-> (SpawnedReplication -> String)
-> ([SpawnedReplication] -> ShowS)
-> Show SpawnedReplication
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SpawnedReplication] -> ShowS
$cshowList :: [SpawnedReplication] -> ShowS
show :: SpawnedReplication -> String
$cshow :: SpawnedReplication -> String
showsPrec :: Int -> SpawnedReplication -> ShowS
$cshowsPrec :: Int -> SpawnedReplication -> ShowS
Show)

$(deriveJson ''SpawnedReplication)