module Rattletrap.Type.Attribute.DamageState where import qualified Rattletrap.BitGet as BitGet import qualified Rattletrap.BitPut as BitPut import qualified Rattletrap.Schema as Schema import qualified Rattletrap.Type.I32 as I32 import qualified Rattletrap.Type.U8 as U8 import qualified Rattletrap.Type.Vector as Vector import qualified Rattletrap.Type.Version as Version import qualified Rattletrap.Utility.Json as Json data DamageState = DamageState { DamageState -> U8 unknown1 :: U8.U8 , DamageState -> Bool unknown2 :: Bool , DamageState -> I32 unknown3 :: I32.I32 , DamageState -> Vector unknown4 :: Vector.Vector , DamageState -> Bool unknown5 :: Bool , DamageState -> Bool unknown6 :: Bool } deriving (DamageState -> DamageState -> Bool (DamageState -> DamageState -> Bool) -> (DamageState -> DamageState -> Bool) -> Eq DamageState forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: DamageState -> DamageState -> Bool $c/= :: DamageState -> DamageState -> Bool == :: DamageState -> DamageState -> Bool $c== :: DamageState -> DamageState -> Bool Eq, Int -> DamageState -> ShowS [DamageState] -> ShowS DamageState -> String (Int -> DamageState -> ShowS) -> (DamageState -> String) -> ([DamageState] -> ShowS) -> Show DamageState forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [DamageState] -> ShowS $cshowList :: [DamageState] -> ShowS show :: DamageState -> String $cshow :: DamageState -> String showsPrec :: Int -> DamageState -> ShowS $cshowsPrec :: Int -> DamageState -> ShowS Show) instance Json.FromJSON DamageState where parseJSON :: Value -> Parser DamageState parseJSON = String -> (Object -> Parser DamageState) -> Value -> Parser DamageState forall a. String -> (Object -> Parser a) -> Value -> Parser a Json.withObject String "DamageState" ((Object -> Parser DamageState) -> Value -> Parser DamageState) -> (Object -> Parser DamageState) -> Value -> Parser DamageState forall a b. (a -> b) -> a -> b $ \Object object -> do U8 unknown1 <- Object -> String -> Parser U8 forall value. FromJSON value => Object -> String -> Parser value Json.required Object object String "unknown1" Bool unknown2 <- Object -> String -> Parser Bool forall value. FromJSON value => Object -> String -> Parser value Json.required Object object String "unknown2" I32 unknown3 <- Object -> String -> Parser I32 forall value. FromJSON value => Object -> String -> Parser value Json.required Object object String "unknown3" Vector unknown4 <- Object -> String -> Parser Vector forall value. FromJSON value => Object -> String -> Parser value Json.required Object object String "unknown4" Bool unknown5 <- Object -> String -> Parser Bool forall value. FromJSON value => Object -> String -> Parser value Json.required Object object String "unknown5" Bool unknown6 <- Object -> String -> Parser Bool forall value. FromJSON value => Object -> String -> Parser value Json.required Object object String "unknown6" DamageState -> Parser DamageState forall (f :: * -> *) a. Applicative f => a -> f a pure DamageState :: U8 -> Bool -> I32 -> Vector -> Bool -> Bool -> DamageState DamageState { U8 unknown1 :: U8 unknown1 :: U8 unknown1 , Bool unknown2 :: Bool unknown2 :: Bool unknown2 , I32 unknown3 :: I32 unknown3 :: I32 unknown3 , Vector unknown4 :: Vector unknown4 :: Vector unknown4 , Bool unknown5 :: Bool unknown5 :: Bool unknown5 , Bool unknown6 :: Bool unknown6 :: Bool unknown6 } instance Json.ToJSON DamageState where toJSON :: DamageState -> Value toJSON DamageState x = [Pair] -> Value Json.object [ String -> U8 -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown1" (U8 -> Pair) -> U8 -> Pair forall a b. (a -> b) -> a -> b $ DamageState -> U8 unknown1 DamageState x , String -> Bool -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown2" (Bool -> Pair) -> Bool -> Pair forall a b. (a -> b) -> a -> b $ DamageState -> Bool unknown2 DamageState x , String -> I32 -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown3" (I32 -> Pair) -> I32 -> Pair forall a b. (a -> b) -> a -> b $ DamageState -> I32 unknown3 DamageState x , String -> Vector -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown4" (Vector -> Pair) -> Vector -> Pair forall a b. (a -> b) -> a -> b $ DamageState -> Vector unknown4 DamageState x , String -> Bool -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown5" (Bool -> Pair) -> Bool -> Pair forall a b. (a -> b) -> a -> b $ DamageState -> Bool unknown5 DamageState x , String -> Bool -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown6" (Bool -> Pair) -> Bool -> Pair forall a b. (a -> b) -> a -> b $ DamageState -> Bool unknown6 DamageState x ] schema :: Schema.Schema schema :: Schema schema = String -> Value -> Schema Schema.named String "attribute-damage-state" (Value -> Schema) -> Value -> Schema forall a b. (a -> b) -> a -> b $ [(Pair, Bool)] -> Value Schema.object [ (String -> Value -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown1" (Value -> Pair) -> Value -> Pair forall a b. (a -> b) -> a -> b $ Schema -> Value Schema.ref Schema U8.schema, Bool True) , (String -> Value -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown2" (Value -> Pair) -> Value -> Pair forall a b. (a -> b) -> a -> b $ Schema -> Value Schema.ref Schema Schema.boolean, Bool True) , (String -> Value -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown3" (Value -> Pair) -> Value -> Pair forall a b. (a -> b) -> a -> b $ Schema -> Value Schema.ref Schema I32.schema, Bool True) , (String -> Value -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown4" (Value -> Pair) -> Value -> Pair forall a b. (a -> b) -> a -> b $ Schema -> Value Schema.ref Schema Vector.schema, Bool True) , (String -> Value -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown5" (Value -> Pair) -> Value -> Pair forall a b. (a -> b) -> a -> b $ Schema -> Value Schema.ref Schema Schema.boolean, Bool True) , (String -> Value -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown6" (Value -> Pair) -> Value -> Pair forall a b. (a -> b) -> a -> b $ Schema -> Value Schema.ref Schema Schema.boolean, Bool True) ] bitPut :: DamageState -> BitPut.BitPut bitPut :: DamageState -> BitPut bitPut DamageState damageStateAttribute = U8 -> BitPut U8.bitPut (DamageState -> U8 unknown1 DamageState damageStateAttribute) BitPut -> BitPut -> BitPut forall a. Semigroup a => a -> a -> a <> Bool -> BitPut BitPut.bool (DamageState -> Bool unknown2 DamageState damageStateAttribute) BitPut -> BitPut -> BitPut forall a. Semigroup a => a -> a -> a <> I32 -> BitPut I32.bitPut (DamageState -> I32 unknown3 DamageState damageStateAttribute) BitPut -> BitPut -> BitPut forall a. Semigroup a => a -> a -> a <> Vector -> BitPut Vector.bitPut (DamageState -> Vector unknown4 DamageState damageStateAttribute) BitPut -> BitPut -> BitPut forall a. Semigroup a => a -> a -> a <> Bool -> BitPut BitPut.bool (DamageState -> Bool unknown5 DamageState damageStateAttribute) BitPut -> BitPut -> BitPut forall a. Semigroup a => a -> a -> a <> Bool -> BitPut BitPut.bool (DamageState -> Bool unknown6 DamageState damageStateAttribute) bitGet :: Version.Version -> BitGet.BitGet DamageState bitGet :: Version -> BitGet DamageState bitGet Version version = String -> BitGet DamageState -> BitGet DamageState forall a. String -> BitGet a -> BitGet a BitGet.label String "CustomDemolish" (BitGet DamageState -> BitGet DamageState) -> BitGet DamageState -> BitGet DamageState forall a b. (a -> b) -> a -> b $ do U8 unknown1 <- String -> BitGet U8 -> BitGet U8 forall a. String -> BitGet a -> BitGet a BitGet.label String "unknown1" BitGet U8 U8.bitGet Bool unknown2 <- String -> BitGet Bool -> BitGet Bool forall a. String -> BitGet a -> BitGet a BitGet.label String "unknown2" BitGet Bool BitGet.bool I32 unknown3 <- String -> BitGet I32 -> BitGet I32 forall a. String -> BitGet a -> BitGet a BitGet.label String "unknown3" BitGet I32 I32.bitGet Vector unknown4 <- String -> BitGet Vector -> BitGet Vector forall a. String -> BitGet a -> BitGet a BitGet.label String "unknown4" (BitGet Vector -> BitGet Vector) -> BitGet Vector -> BitGet Vector forall a b. (a -> b) -> a -> b $ Version -> BitGet Vector Vector.bitGet Version version Bool unknown5 <- String -> BitGet Bool -> BitGet Bool forall a. String -> BitGet a -> BitGet a BitGet.label String "unknown5" BitGet Bool BitGet.bool Bool unknown6 <- String -> BitGet Bool -> BitGet Bool forall a. String -> BitGet a -> BitGet a BitGet.label String "unknown6" BitGet Bool BitGet.bool DamageState -> BitGet DamageState forall (f :: * -> *) a. Applicative f => a -> f a pure DamageState :: U8 -> Bool -> I32 -> Vector -> Bool -> Bool -> DamageState DamageState { U8 unknown1 :: U8 unknown1 :: U8 unknown1 , Bool unknown2 :: Bool unknown2 :: Bool unknown2 , I32 unknown3 :: I32 unknown3 :: I32 unknown3 , Vector unknown4 :: Vector unknown4 :: Vector unknown4 , Bool unknown5 :: Bool unknown5 :: Bool unknown5 , Bool unknown6 :: Bool unknown6 :: Bool unknown6 }