@@ -431,13 +431,18 @@ elab "MakeGame" : command => do
|
||||
for item in (level.getInventory inventoryType).new do
|
||||
let category := (← getInventoryDoc? item inventoryType).get!.category
|
||||
items := items.insert item {name := item, category, locked := false, disabled := false}
|
||||
|
||||
let mut disabled : HashSet Name := {}
|
||||
for item in (level.getInventory inventoryType).disabled do
|
||||
let category := (← getInventoryDoc? item inventoryType).get!.category
|
||||
items := items.insert item {name := item, category, locked := false, disabled := true}
|
||||
items := items.insert item {name := item, category, locked := false, disabled := false}
|
||||
-- (we set disabled to false at first because it applies only to the current level)
|
||||
disabled := disabled.insert item
|
||||
|
||||
let itemsArray := items.toArray
|
||||
|>.insertionSort (fun a b => a.1.toString < b.1.toString)
|
||||
|>.map (·.2)
|
||||
|>.map (fun item => {item with disabled := disabled.contains item.name})
|
||||
|
||||
modifyLevel ⟨← getCurGameId, worldId, levelId⟩ fun level => do
|
||||
return level.setComputedInventory inventoryType itemsArray
|
||||
|
||||
Reference in New Issue
Block a user