{-# LANGUAGE TemplateHaskell #-}

module Rattletrap.Type.CustomDemolishAttribute
  ( CustomDemolishAttribute(..)
  )
where

import Rattletrap.Type.Common
import Rattletrap.Type.DemolishAttribute
import Rattletrap.Type.Int32le

data CustomDemolishAttribute = CustomDemolishAttribute
  { CustomDemolishAttribute -> Bool
customDemolishAttributeFlag :: Bool
  , CustomDemolishAttribute -> Int32le
customDemolishAttributeId :: Int32le
  , CustomDemolishAttribute -> DemolishAttribute
customDemolishAttributeDemolish :: DemolishAttribute
  } deriving (CustomDemolishAttribute -> CustomDemolishAttribute -> Bool
(CustomDemolishAttribute -> CustomDemolishAttribute -> Bool)
-> (CustomDemolishAttribute -> CustomDemolishAttribute -> Bool)
-> Eq CustomDemolishAttribute
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CustomDemolishAttribute -> CustomDemolishAttribute -> Bool
$c/= :: CustomDemolishAttribute -> CustomDemolishAttribute -> Bool
== :: CustomDemolishAttribute -> CustomDemolishAttribute -> Bool
$c== :: CustomDemolishAttribute -> CustomDemolishAttribute -> Bool
Eq, Eq CustomDemolishAttribute
Eq CustomDemolishAttribute
-> (CustomDemolishAttribute -> CustomDemolishAttribute -> Ordering)
-> (CustomDemolishAttribute -> CustomDemolishAttribute -> Bool)
-> (CustomDemolishAttribute -> CustomDemolishAttribute -> Bool)
-> (CustomDemolishAttribute -> CustomDemolishAttribute -> Bool)
-> (CustomDemolishAttribute -> CustomDemolishAttribute -> Bool)
-> (CustomDemolishAttribute
    -> CustomDemolishAttribute -> CustomDemolishAttribute)
-> (CustomDemolishAttribute
    -> CustomDemolishAttribute -> CustomDemolishAttribute)
-> Ord CustomDemolishAttribute
CustomDemolishAttribute -> CustomDemolishAttribute -> Bool
CustomDemolishAttribute -> CustomDemolishAttribute -> Ordering
CustomDemolishAttribute
-> CustomDemolishAttribute -> CustomDemolishAttribute
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 :: CustomDemolishAttribute
-> CustomDemolishAttribute -> CustomDemolishAttribute
$cmin :: CustomDemolishAttribute
-> CustomDemolishAttribute -> CustomDemolishAttribute
max :: CustomDemolishAttribute
-> CustomDemolishAttribute -> CustomDemolishAttribute
$cmax :: CustomDemolishAttribute
-> CustomDemolishAttribute -> CustomDemolishAttribute
>= :: CustomDemolishAttribute -> CustomDemolishAttribute -> Bool
$c>= :: CustomDemolishAttribute -> CustomDemolishAttribute -> Bool
> :: CustomDemolishAttribute -> CustomDemolishAttribute -> Bool
$c> :: CustomDemolishAttribute -> CustomDemolishAttribute -> Bool
<= :: CustomDemolishAttribute -> CustomDemolishAttribute -> Bool
$c<= :: CustomDemolishAttribute -> CustomDemolishAttribute -> Bool
< :: CustomDemolishAttribute -> CustomDemolishAttribute -> Bool
$c< :: CustomDemolishAttribute -> CustomDemolishAttribute -> Bool
compare :: CustomDemolishAttribute -> CustomDemolishAttribute -> Ordering
$ccompare :: CustomDemolishAttribute -> CustomDemolishAttribute -> Ordering
$cp1Ord :: Eq CustomDemolishAttribute
Ord, Int -> CustomDemolishAttribute -> ShowS
[CustomDemolishAttribute] -> ShowS
CustomDemolishAttribute -> String
(Int -> CustomDemolishAttribute -> ShowS)
-> (CustomDemolishAttribute -> String)
-> ([CustomDemolishAttribute] -> ShowS)
-> Show CustomDemolishAttribute
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CustomDemolishAttribute] -> ShowS
$cshowList :: [CustomDemolishAttribute] -> ShowS
show :: CustomDemolishAttribute -> String
$cshow :: CustomDemolishAttribute -> String
showsPrec :: Int -> CustomDemolishAttribute -> ShowS
$cshowsPrec :: Int -> CustomDemolishAttribute -> ShowS
Show)

$(deriveJson ''CustomDemolishAttribute)