better (but still broken) removal from playgrounds
This commit is contained in:
@@ -328,4 +328,10 @@
|
|||||||
|
|
||||||
(defCommand SwitchPlayground [name (Text null)]
|
(defCommand SwitchPlayground [name (Text null)]
|
||||||
(archive.changePlaygrounds ->:Void [:DynamicAccess<Dynamic> p] (dictSet p "default" name))
|
(archive.changePlaygrounds ->:Void [:DynamicAccess<Dynamic> p] (dictSet p "default" name))
|
||||||
(when playgroundSystem (playgroundSystem.switchPlaygroundKey name))))
|
(when playgroundSystem (playgroundSystem.switchPlaygroundKey name)))
|
||||||
|
|
||||||
|
(defCommand RemoveFromPlayground [entries (SelectedEntries 1 null)]
|
||||||
|
(for e entries
|
||||||
|
(when (hasComponent e Positions)
|
||||||
|
(withWritableComponents archive e [positions Positions]
|
||||||
|
(positions.remove (dictGet archive.playgrounds "default")))) e)))
|
||||||
|
@@ -5,7 +5,8 @@
|
|||||||
|
|
||||||
(defNew [&prop :ArchiveUI ui
|
(defNew [&prop :ArchiveUI ui
|
||||||
:EntryChecker canProcess
|
:EntryChecker canProcess
|
||||||
&prop :PlaygroundEntryProcessor processor]
|
&prop :PlaygroundEntryProcessor processor
|
||||||
|
:EntryProcessor onRemoveEntry]
|
||||||
|
|
||||||
(super
|
(super
|
||||||
->[archive e]
|
->[archive e]
|
||||||
@@ -21,7 +22,8 @@
|
|||||||
(return null))))
|
(return null))))
|
||||||
(whenLet [pos (dictGet (readComponent e Positions) _playgroundKey)]
|
(whenLet [pos (dictGet (readComponent e Positions) _playgroundKey)]
|
||||||
(processor archive e pos ui))
|
(processor archive e pos ui))
|
||||||
}))
|
})
|
||||||
|
(set this.onRemoveEntry onRemoveEntry))
|
||||||
|
|
||||||
(method switchPlaygroundKey [key]
|
(method switchPlaygroundKey [key]
|
||||||
(when _playgroundKey
|
(when _playgroundKey
|
||||||
|
@@ -16,12 +16,11 @@
|
|||||||
(unless (sprites.exists e.id)
|
(unless (sprites.exists e.id)
|
||||||
(let [sprite (new EntrySprite this _playgroundKey pos archive e controller)]
|
(let [sprite (new EntrySprite this _playgroundKey pos archive e controller)]
|
||||||
(playState.entryGroup.add sprite)
|
(playState.entryGroup.add sprite)
|
||||||
(dictSet sprites e.id sprite))))
|
(dictSet sprites e.id sprite)))
|
||||||
|
|
||||||
(set onRemoveEntry
|
|
||||||
->[archive e &opt ui]
|
->[archive e &opt ui]
|
||||||
{
|
{
|
||||||
(.kill (dictGet sprites e.id))
|
(.kill (dictGet sprites e.id))
|
||||||
|
(playState.entryGroup.remove (dictGet sprites e.id))
|
||||||
(sprites.remove e.id)
|
(sprites.remove e.id)
|
||||||
// When an Entry is hidden, we can bet the user doesn't want it selected anymore
|
// When an Entry is hidden, we can bet the user doesn't want it selected anymore
|
||||||
(controller.DeSelectEntry e)
|
(controller.DeSelectEntry e)
|
||||||
|
@@ -1,9 +1,5 @@
|
|||||||
(loadFrom "nat-archive-tool" "src/nat/Lib.kiss")
|
(loadFrom "nat-archive-tool" "src/nat/Lib.kiss")
|
||||||
|
|
||||||
// TODO handleChanges() will need to kill every changed Entry's sprite and make a new one
|
|
||||||
|
|
||||||
// make interactible sprites for entries that have images
|
|
||||||
|
|
||||||
(var TEXT_SIZE 16)
|
(var TEXT_SIZE 16)
|
||||||
|
|
||||||
(prop &mut :EntrySpriteSystem spriteSystem)
|
(prop &mut :EntrySpriteSystem spriteSystem)
|
||||||
@@ -251,9 +247,7 @@
|
|||||||
// process the WikipediaImageSystem and run spriteSystem process on newly created entries that get one
|
// process the WikipediaImageSystem and run spriteSystem process on newly created entries that get one
|
||||||
(archive.processSystems this)
|
(archive.processSystems this)
|
||||||
// Do a second loop through the systems, so Playground systems that trigger Core systems have their effects processed
|
// Do a second loop through the systems, so Playground systems that trigger Core systems have their effects processed
|
||||||
(archive.processSystems this)
|
(archive.processSystems this))
|
||||||
|
|
||||||
(FlxG.camera.calculateScrollBounds entryGroup SCROLL_BOUND_MARGIN))
|
|
||||||
|
|
||||||
(doFor e changeSet
|
(doFor e changeSet
|
||||||
// Entries whose data changed to remove them from the sprite pool will already have been removed
|
// Entries whose data changed to remove them from the sprite pool will already have been removed
|
||||||
@@ -262,7 +256,9 @@
|
|||||||
// refresh the sprites for entries that changed data but still should have sprites
|
// refresh the sprites for entries that changed data but still should have sprites
|
||||||
(when (spriteSystem.sprites.exists e.id)
|
(when (spriteSystem.sprites.exists e.id)
|
||||||
(spriteSystem.onRemoveEntry archive e))
|
(spriteSystem.onRemoveEntry archive e))
|
||||||
(spriteSystem.processEntry archive e))))
|
(spriteSystem.processEntry archive e)))
|
||||||
|
|
||||||
|
(FlxG.camera.calculateScrollBounds entryGroup SCROLL_BOUND_MARGIN))
|
||||||
|
|
||||||
(prop &mut :Int uiY 0)
|
(prop &mut :Int uiY 0)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user