Add prospective data types for more complex item attachments

This commit is contained in:
2024-09-25 22:09:19 +01:00
parent 600b8cd309
commit 61f07be08b
3 changed files with 34 additions and 1 deletions
+10 -1
View File
@@ -1 +1,10 @@
All good (620 modules, at 10:54:07)
/home/justin/Haskell/loop/src/Dodge/Item/Grammar.hs:(26,17)-(29,5): warning: [-Wunused-top-binds]
Defined but not used: data constructor LinkTest
|
26 | data LinkTest = LinkTest
| ^^^^^^^^^...
/home/justin/Haskell/loop/src/Dodge/Item/Grammar.hs:(32,19)-(37,5): warning: [-Wunused-top-binds]
Defined but not used: data constructor LinkUpdate
|
32 | data LinkUpdate = LinkUpdate
| ^^^^^^^^^^...
+9
View File
@@ -18,6 +18,15 @@ data ComposeLinkType
| RemoteScreenLink
deriving (Eq,Ord,Show,Read)
data ItemStructuralFunction
= WeaponPlatformSF
| WeaponScopeSF
| WeaponBarrelAttachmentSF
| AmmoMagazineSF
| RemoteScreenSF
| UncomposableIsolateSF
deriving (Eq,Ord,Show,Read)
data ComposedItem = WeaponCI
| WeaponScopeCI
| WeaponTargetingCI
+15
View File
@@ -19,8 +19,23 @@ import Dodge.DoubleTree
type ComposedItemStructure
= (Item,ComposedItem,[(ComposeLinkType,ComposedItem)], [(ComposeLinkType,ComposedItem)])
type PartiallyComposedItem = (Item,ItemStructuralFunction,LinkTest)
type CIL = (ComposedItem,[(ComposeLinkType,ComposedItem)], [(ComposeLinkType,ComposedItem)])
data LinkTest = LinkTest
{ _tryLeftLink :: PartiallyComposedItem -> Maybe LinkUpdate
, _tryRightLink :: PartiallyComposedItem -> Maybe LinkUpdate
}
-- may want to upgrade the children's possible links as well, but this is not obvious
data LinkUpdate = LinkUpdate
{ _luLinkType :: ComposeLinkType
, _luNewLinkTest :: LinkTest
, _luParentUpdate :: (Item,PartiallyComposedItem) -> (Item,PartiallyComposedItem)
, _luChildUpdate :: (Item,PartiallyComposedItem) -> (Item,PartiallyComposedItem)
}
cisToItem :: ComposedItemStructure -> Item
cisToItem (x,_,_,_) = x