Noah Petherbridge
640e75ba4d
* You can now browse for a custom wallpaper image to use with your levels. A platform-native file picker dialog is used (no WASM support) * In the New/Edit Level Properties dialog, the Wallpaper drop-down includes an option to browse for a custom map. * When editing an existing level: the wallpaper takes effect immediately in your level once the file is picked. For NEW levels, the wallpaper will appear once the "Continue" button is pressed. * All common image types supported: png, jpeg, gif. * The wallpaper is embedded in the level using the filepath "assets/wallpapers/custom.b64img" as a Base64-encoded blob of the image data. * The `doodad show` command will list the names and sizes of files embedded in levels. `doodad show --attachment <name>` will get an attachment and print it to the console window. * To extract a wallpaper image from a level: `doodad show -a assets/wallpapers/custom.b64img | base64 -d > out.png`
21 lines
566 B
Go
21 lines
566 B
Go
package filesystem
|
|
|
|
// Embeddable file formats such as Levels or Doodads.
|
|
type Embeddable interface {
|
|
GetFile(string) ([]byte, error)
|
|
}
|
|
|
|
/*
|
|
FindFileEmbedded searches for a file in a Level or Doodad's embedded filesystem,
|
|
before searching other places (as FindFile does) -- system paths and user paths.
|
|
*/
|
|
func FindFileEmbedded(filename string, em Embeddable) (string, error) {
|
|
// Check in the embedded data.
|
|
if _, err := em.GetFile(filename); err == nil {
|
|
return filename, nil
|
|
}
|
|
|
|
// Not found in embedded, try the usual suspects.
|
|
return FindFile(filename)
|
|
}
|