Files
loop/src/Dodge/Data/WorldEffect.hs
T
2025-06-25 21:37:32 +01:00

90 lines
2.3 KiB
Haskell

{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TemplateHaskell #-}
module Dodge.Data.WorldEffect where
import Dodge.Data.Input
import Dodge.Data.LightSource
import Data.Aeson
import Data.Aeson.TH
import Dodge.Data.CreatureEffect
import Dodge.Data.SoundOrigin
import Geometry.Data
import Sound.Data
data ItCrWdWd = ItCrWdItemHeldEffect
| ItCrWdItemHeldEffectNoHammer
--deriving (Eq, Ord, Show, Read) --Generic, Flat)
data WdWd
= NoWorldEffect
| SetTrigger Bool Int
| WorldEffects [WdWd]
| SetLSCol Point3 Int
| AccessTerminal (Maybe Int)
| UnlockInv
| SoundStart SoundOrigin Point2 SoundID (Maybe Int)
| MakeStartCloudAt Point3
| TorqueCr Float Int
| WdWdNegateTrig Int
-- | WdWdFromItCrixWdWd (LabelDoubleTree ComposeLinkType Item) Int ItCrWdWd
| MakeTempLight LSParam Int
| UseInvItem Int PressType
| WdWdBurstFireRepetition Int Int
--deriving (Eq, Show, Read) --, Generic)
--h--deriving (Eq, Show, Read) --Generic, Flat)
data WdP2
= WdP2Const Point2
| WdYouPos
--deriving (Eq, Ord, Show, Read) --Generic, Flat)
data MdWdWd
= MdWdId
| MdTrigIf MdWdWd MdWdWd
| MdSetLSCol Point3
| MdFlickerUpdate
--deriving (Eq, Ord, Show, Read) --Generic, Flat)
data WdBl
= WdTrig Int
| WdBlDoorMoving Int
| WdBlConst Bool
| WdBlNegate WdBl
| WdBlCrFilterNearPoint Float Point2 CrBl
| WdBlBtOn Int
-- | WdBlBtNotOff Int
--deriving (Eq, Ord, Show, Read) --Generic, Flat)
data WdP2f
= WdP2f0
| WdP2fDoorPosition Int
--deriving (Eq, Ord, Show, Read) --Generic, Flat)
data DrWdWd
= DrWdId
| DrWdMakeDoorDebris
| DrWdMechanismStepwise Int [Int] [(Point2, Point2)]
| DoorMechanism
--deriving (Eq, Ord, Show, Read) --Generic, Flat)
data TmWdWd
= TmWdId
| TmWdWdDisconnectTerminal
| TmWdWdfromWdWd WdWd
| TmWdWdTermSound SoundID
| TmWdWdDoDeathTriggers
--deriving (Eq, Show, Read) --, Generic)
--h--deriving (Eq, Show, Read) --Generic, Flat)
deriveJSON defaultOptions ''ItCrWdWd
deriveJSON defaultOptions ''WdWd
deriveJSON defaultOptions ''WdP2
deriveJSON defaultOptions ''MdWdWd
deriveJSON defaultOptions ''WdBl
deriveJSON defaultOptions ''WdP2f
deriveJSON defaultOptions ''DrWdWd
deriveJSON defaultOptions ''TmWdWd