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
|
| RemoteScreenLink
|
||||||
deriving (Eq,Ord,Show,Read)
|
deriving (Eq,Ord,Show,Read)
|
||||||
|
|
||||||
|
data ItemStructuralFunction
|
||||||
|
= WeaponPlatformSF
|
||||||
|
| WeaponScopeSF
|
||||||
|
| WeaponBarrelAttachmentSF
|
||||||
|
| AmmoMagazineSF
|
||||||
|
| RemoteScreenSF
|
||||||
|
| UncomposableIsolateSF
|
||||||
|
deriving (Eq,Ord,Show,Read)
|
||||||
|
|
||||||
data ComposedItem = WeaponCI
|
data ComposedItem = WeaponCI
|
||||||
| WeaponScopeCI
|
| WeaponScopeCI
|
||||||
| WeaponTargetingCI
|
| WeaponTargetingCI
|
||||||
|
|||||||
@@ -19,8 +19,23 @@ import Dodge.DoubleTree
|
|||||||
type ComposedItemStructure
|
type ComposedItemStructure
|
||||||
= (Item,ComposedItem,[(ComposeLinkType,ComposedItem)], [(ComposeLinkType,ComposedItem)])
|
= (Item,ComposedItem,[(ComposeLinkType,ComposedItem)], [(ComposeLinkType,ComposedItem)])
|
||||||
|
|
||||||
|
type PartiallyComposedItem = (Item,ItemStructuralFunction,LinkTest)
|
||||||
|
|
||||||
type CIL = (ComposedItem,[(ComposeLinkType,ComposedItem)], [(ComposeLinkType,ComposedItem)])
|
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 :: ComposedItemStructure -> Item
|
||||||
cisToItem (x,_,_,_) = x
|
cisToItem (x,_,_,_) = x
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user