app

package
v0.5.21 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 18, 2025 License: BSD-3-Clause Imports: 30 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ConfigFormat = ConfigTemplate{
	Extractors: map[string]ConfigTemplateExtractor{
		"wwise_stream": {
			Category: "loose_audio",
			Options: map[string]ConfigTemplateOption{
				"format": {
					Type: ConfigValueEnum,
					Enum: []string{"ogg", "wav", "aac", "mp3", "wem", "source"},
				},
			},
			DefaultDisabled: true,
		},
		"wwise_bank": {
			Category: "audio",
			Options: map[string]ConfigTemplateOption{
				"format": {
					Type: ConfigValueEnum,
					Enum: []string{"ogg", "wav", "aac", "mp3", "bnk", "source"},
				},
			},
		},
		"bik": {
			Category: "video",
			Options: map[string]ConfigTemplateOption{
				"format": {
					Type: ConfigValueEnum,
					Enum: []string{"mp4", "bik", "source"},
				},
			},
		},
		"material": {
			Category: "shader",
			Options: map[string]ConfigTemplateOption{
				"format": {
					Type: ConfigValueEnum,
					Enum: []string{"glb", "blend", "source"},
				},
				"single_glb": {
					Type: ConfigValueEnum,
					Enum: []string{"false", "true"},
				},
				"image_jpeg": {
					Type: ConfigValueEnum,
					Enum: []string{"false", "true"},
				},
				"jpeg_quality": {
					Type:        ConfigValueIntRange,
					IntRangeMin: 1,
					IntRangeMax: 100,
				},
				"png_compression": {
					Type: ConfigValueEnum,
					Enum: []string{"default", "none", "fast", "best"},
				},
				"all_textures": {
					Type: ConfigValueEnum,
					Enum: []string{"false", "true"},
				},
				"accurate_only": {
					Type: ConfigValueEnum,
					Enum: []string{"false", "true"},
				},
			},
		},
		"texture": {
			Category: "image",
			Options: map[string]ConfigTemplateOption{
				"format": {
					Type: ConfigValueEnum,
					Enum: []string{"png", "dds", "source"},
				},
			},
		},
		"unit": {
			Category: "model",
			Options: map[string]ConfigTemplateOption{
				"format": {
					Type: ConfigValueEnum,
					Enum: []string{"glb", "blend", "source"},
				},
				"include_lods": {
					Type: ConfigValueEnum,
					Enum: []string{"false", "true"},
				},
				"join_components": {
					Type: ConfigValueEnum,
					Enum: []string{"false", "true"},
				},
				"bounding_boxes": {
					Type: ConfigValueEnum,
					Enum: []string{"false", "true"},
				},
				"single_glb": {
					Type: ConfigValueEnum,
					Enum: []string{"false", "true"},
				},
				"no_bones": {
					Type: ConfigValueEnum,
					Enum: []string{"false", "true"},
				},
				"image_jpeg": {
					Type: ConfigValueEnum,
					Enum: []string{"false", "true"},
				},
				"jpeg_quality": {
					Type:        ConfigValueIntRange,
					IntRangeMin: 1,
					IntRangeMax: 100,
				},
				"png_compression": {
					Type: ConfigValueEnum,
					Enum: []string{"default", "none", "fast", "best"},
				},
				"all_textures": {
					Type: ConfigValueEnum,
					Enum: []string{"false", "true"},
				},
			},
		},
		"geometry_group": {
			Category: "model",
			Options: map[string]ConfigTemplateOption{
				"format": {
					Type: ConfigValueEnum,
					Enum: []string{"glb", "blend", "source"},
				},
				"include_lods": {
					Type: ConfigValueEnum,
					Enum: []string{"false", "true"},
				},
				"join_components": {
					Type: ConfigValueEnum,
					Enum: []string{"false", "true"},
				},
				"bounding_boxes": {
					Type: ConfigValueEnum,
					Enum: []string{"false", "true"},
				},
				"no_bones": {
					Type: ConfigValueEnum,
					Enum: []string{"false", "true"},
				},
				"image_jpeg": {
					Type: ConfigValueEnum,
					Enum: []string{"false", "true"},
				},
				"jpeg_quality": {
					Type:        ConfigValueIntRange,
					IntRangeMin: 1,
					IntRangeMax: 100,
				},
				"png_compression": {
					Type: ConfigValueEnum,
					Enum: []string{"default", "none", "fast", "best"},
				},
				"all_textures": {
					Type: ConfigValueEnum,
					Enum: []string{"false", "true"},
				},
			},
		},
		"strings": {
			Category: "text",
			Options: map[string]ConfigTemplateOption{
				"format": {
					Type: ConfigValueEnum,
					Enum: []string{"json", "source"},
				},
			},
		},
		"package": {
			Category: "text",
			Options: map[string]ConfigTemplateOption{
				"format": {
					Type: ConfigValueEnum,
					Enum: []string{"json", "source"},
				},
			},
		},
		"raw": {
			Category: "",
			Options: map[string]ConfigTemplateOption{
				"format": {
					Type: ConfigValueEnum,
					Enum: []string{"source", "main", "stream", "gpu", "combined"},
				},
			},
			DefaultDisabled: true,
		},
	},
	Fallback: "raw",
}

Functions

func DetectGameDir added in v0.3.1

func DetectGameDir() (string, error)

Returns error if steam path couldn't be found.

func ExtractorConfigHelpMessage

func ExtractorConfigHelpMessage(template ConfigTemplate) string

func NewConsolePrinter added in v0.5.17

func NewConsolePrinter(colorOutput bool, stdout io.Writer, stderr io.Writer) *printer

func ParseHashes added in v0.3.1

func ParseHashes(str string) []string

func VerifyGameDir added in v0.3.1

func VerifyGameDir(path string) error

Types

type App

type App struct {
	Hashes     map[stingray.Hash]string
	ThinHashes map[stingray.ThinHash]string
	// Passed triad ID (-t option).
	TriadIDs  []stingray.Hash
	ArmorSets map[stingray.Hash]dlbin.ArmorSet
	DataDir   *stingray.DataDir
}

func OpenGameDir added in v0.3.1

func OpenGameDir(ctx context.Context, gameDir string, hashes []string, thinhashes []string, triadIDs []stingray.Hash, armorStrings stingray.Hash, onProgress func(curr, total int)) (*App, error)

Open game dir and read metadata.

func (*App) ExtractFile

func (a *App) ExtractFile(ctx context.Context, id stingray.FileID, outDir string, extrCfg Config, runner *exec.Runner, gltfDoc *gltf.Document, printer Printer) ([]string, error)

Returns path to extracted file/directory.

func (*App) LookupHash added in v0.4.2

func (a *App) LookupHash(hash stingray.Hash) string

Prints hash if human-readable name is unknown.

func (*App) MatchingFiles

func (a *App) MatchingFiles(
	includeGlob string,
	excludeGlob string,
	includeTriadIDs []stingray.Hash,
	cfgTemplate ConfigTemplate,
	cfg map[string]map[string]string,
) (
	map[stingray.FileID]*stingray.File,
	error,
)

type Config added in v0.5.0

type Config map[string]map[string]string

func ParseExtractorConfig

func ParseExtractorConfig(template ConfigTemplate, cfgStr string) (Config, error)

type ConfigTemplate

type ConfigTemplate struct {
	Extractors map[string]ConfigTemplateExtractor
	Fallback   string
}

type ConfigTemplateExtractor

type ConfigTemplateExtractor struct {
	Category        string
	Options         map[string]ConfigTemplateOption
	DefaultDisabled bool
}

type ConfigTemplateOption

type ConfigTemplateOption struct {
	Type        ConfigValueType
	Enum        []string
	IntRangeMin int
	IntRangeMax int
}

type ConfigValueType added in v0.3.2

type ConfigValueType int
const (
	ConfigValueEnum ConfigValueType = iota
	ConfigValueIntRange
)

type Printer

type Printer interface {
	Infof(f string, a ...any)
	Warnf(f string, a ...any)
	Errorf(f string, a ...any)
	Fatalf(f string, a ...any)
	Statusf(f string, a ...any)
	NoStatus()
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL