Allow Playground to download images and create text sprites at runtime

This commit is contained in:
2021-09-30 17:05:21 -06:00
parent f48cf658ec
commit 420d8da414
3 changed files with 10 additions and 0 deletions

View File

@@ -20,6 +20,11 @@
(print (+ "adding " (the nat.components ,componentType ,c) " as " ,(symbolName componentType) " for " .id ,e))
(dictSet .components ,e ,(symbolName componentType) (tink.Json.stringify (the nat.components ,componentType ,c)))))
(defMacro removeComponent [archive e componentType]
`(withWritableEntry ,archive ,e
(print (+ "removing " ,(symbolName componentType) " component from " .id ,e))
(.remove .components ,e ,(symbolName componentType))))
// Retrieve multiple components from an Entity with mutable access.
// All components will be serialized after the block is done.
(defMacro withWritableComponents [archive e bindings &body body]

View File

@@ -21,7 +21,10 @@
(.urlDecode (url.withoutDirectory))
// Some symbols shouldn't be decoded because they're invalid in file systems!
"\"" "%22"))]
// TODO do this with ui.displayMessage
(print url "downloading")
(assertProcess "curl" ["--output" filePath url])
filePath)))
// Trigger the creation of a new Images component including the wikipedia images
(removeComponent archive e Images)
(addTags archive e ["wikipediaProcessed"])))

View File

@@ -171,6 +171,8 @@
(doFor e changeSet
// process the WikipediaImageSystem and run spriteSystem process on newly created entries that get one
(archive.processSystems)
// Do a second loop through the systems, so Playground systems that trigger Core systems have their effects processed
(archive.processSystems)
// Entries whose data changed to remove them from the sprite pool will already have been removed
// by refreshEntry()