Complete PartiallyComposedItem -> ComposedItem

This commit is contained in:
2024-11-29 10:43:08 +00:00
parent 7148051b31
commit 1b99b73f44
10 changed files with 38 additions and 48 deletions
+5 -13
View File
@@ -8,7 +8,6 @@ module Dodge.Data.ComposedItem where
import Control.Lens
import Data.Aeson
import Data.Aeson.TH
-- it would be nice not to have to import the following...
import Dodge.Data.Item
import Geometry.Data
import Linear.Quaternion (Quaternion (..))
@@ -42,12 +41,7 @@ data ItemStructuralFunction
| FunctionChangeSF
deriving (Eq, Ord, Show, Read)
type PartiallyComposedItem = (Item, ItemStructuralFunction, LinkTest)
--data ComposedItem = CItem
-- { _cItem :: Item
-- , _cItemFunction :: ItemStructuralFunction
-- }
type ComposedItem = (Item, ItemStructuralFunction, LinkTest)
data ItemLink = ILink
{ _iatType :: ComposeLinkType
@@ -55,20 +49,18 @@ data ItemLink = ILink
}
data LinkTest = LTest
{ _tryLeftLink :: PartiallyComposedItem -> Maybe LinkUpdate
, _tryRightLink :: PartiallyComposedItem -> Maybe LinkUpdate
{ _tryLeftLink :: ComposedItem -> Maybe LinkUpdate
, _tryRightLink :: ComposedItem -> Maybe LinkUpdate
}
data LinkUpdate = LUpdate
{ _luLinkType :: ItemLink
, _luParentUpdate :: PartiallyComposedItem -> PartiallyComposedItem
, _luChildUpdate :: PartiallyComposedItem -> PartiallyComposedItem
, _luParentUpdate :: ComposedItem -> ComposedItem
, _luChildUpdate :: ComposedItem -> ComposedItem
}
--makeLenses ''ComposedItem
makeLenses ''ItemLink
makeLenses ''LinkTest
makeLenses ''LinkUpdate
deriveJSON defaultOptions ''ItemStructuralFunction
--deriveJSON defaultOptions ''ComposedItem
deriveJSON defaultOptions ''ComposeLinkType