Cleanup combining code, flatten modules
This commit is contained in:
+12
-1
@@ -3,17 +3,19 @@ module Dodge.Combine (
|
||||
combineList,
|
||||
) where
|
||||
|
||||
import Dodge.Combine.Combinations
|
||||
import Data.Bifunctor
|
||||
import Data.List (sortOn)
|
||||
import qualified Data.Map.Strict as M
|
||||
import Dodge.Base.You
|
||||
import Dodge.Combine.Trie
|
||||
import Dodge.Data.Combine
|
||||
import Dodge.Data.Universe
|
||||
import Dodge.Item.Display
|
||||
import Dodge.Item.InventoryColor
|
||||
import qualified IntMapHelp as IM
|
||||
import SimpleTrie
|
||||
import Data.Foldable
|
||||
import Data.List (sort)
|
||||
|
||||
invertInventoryToMap :: IM.IntMap Item -> M.Map ItemType [Int]
|
||||
invertInventoryToMap =
|
||||
@@ -22,6 +24,7 @@ invertInventoryToMap =
|
||||
mempty
|
||||
|
||||
groupSplitItemAmounts :: M.Map ItemType [Int] -> [((ItAmount, ItemType), [Int])]
|
||||
--groupSplitItemAmounts = M.foldrWithKey f []
|
||||
groupSplitItemAmounts = M.foldrWithKey f []
|
||||
where
|
||||
f ibt is = (++) [((fromIntegral i, ibt), take i is) | i <- [1 .. length is]]
|
||||
@@ -46,3 +49,11 @@ combineList = map f . combineItemListYouX
|
||||
, _siOffX = 0
|
||||
, _siPayload = CombinableItem is itm []
|
||||
}
|
||||
|
||||
combinationsTrie :: Trie (ItAmount, ItemType) Item
|
||||
{-# INLINE combinationsTrie #-}
|
||||
combinationsTrie =
|
||||
foldl'
|
||||
(flip $ uncurry insertInTrie . first sort)
|
||||
emptyTrie
|
||||
itemCombinations
|
||||
|
||||
Reference in New Issue
Block a user