Add prospective data types for more complex item attachments
This commit is contained in:
+10
-1
@@ -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
|
||||
| ^^^^^^^^^^...
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user