{-# LANGUAGE TemplateHaskell #-}

module Rattletrap.Type.ExplosionAttribute
  ( ExplosionAttribute(..)
  )
where

import Rattletrap.Type.Common
import Rattletrap.Type.Int32le
import Rattletrap.Type.Vector

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

$(deriveJson ''ExplosionAttribute)