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)
|
||
|
}
|