Adding modding folder with a hacked build.
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
package resource
|
||||
|
||||
// Filter filters for language and id to produce a list of matching resources.
|
||||
type Filter interface {
|
||||
Filter(lang Language, id ID) List
|
||||
}
|
||||
|
||||
// Selector provides a merged view of resources according to a language.
|
||||
type Selector struct {
|
||||
// Lang specifies the language to filter by.
|
||||
Lang Language
|
||||
|
||||
// From specifies from where the resources shall be taken.
|
||||
From Filter
|
||||
|
||||
// As defines how the found resources should be viewed in case more than one matches.
|
||||
// By default, the last resource will be used.
|
||||
As ViewStrategy
|
||||
}
|
||||
|
||||
// Select provides a collected view on one resource.
|
||||
func (merger Selector) Select(id ID) (view View, err error) {
|
||||
list := merger.From.Filter(merger.Lang, id)
|
||||
if len(list) == 0 {
|
||||
return nil, ErrNotFound(id)
|
||||
}
|
||||
if (merger.As == nil) || !merger.As.IsCompoundList(id) {
|
||||
view = list[len(list)-1]
|
||||
} else {
|
||||
view = &listMerger{list: list}
|
||||
}
|
||||
|
||||
return view, nil
|
||||
}
|
||||
Reference in New Issue
Block a user