loader

package
v1.152.0 Latest Latest
Warning

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

Go to latest
Published: Apr 21, 2026 License: GPL-3.0 Imports: 9 Imported by: 0

Documentation

Overview

Package loader はゲームエンジンのリソース読み込み機能を提供する。

このパッケージは純粋なリソース読み込み処理に特化しており、 ゲーム固有のロジックを含まない汎用的な設計となっている。

主な責務:

  • TOMLファイルからのメタデータ読み込み
  • フォント、スプライトシート、Rawデータの管理
  • リソースキャッシュ機能
  • 設定可能なファイルパス管理

使い分け:

  • loader: 純粋なリソース読み込み処理(汎用的、再利用可能)
  • resources: ゲーム固有のリソース管理(Dungeon、StateEventなど)

設計思想:

  • 他のプロジェクトでも再利用できる汎用性
  • 依存関係を最小限に抑えた設計
  • インターフェースベースの拡張可能な設計

使用例:

loader := loader.NewResourceLoader()
fonts, err := loader.LoadFonts()
if err != nil {
    return err
}

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func LoadSpriteSheetFromAseprite

func LoadSpriteSheetFromAseprite(jsonPath string) (components.SpriteSheet, error)

LoadSpriteSheetFromAseprite は Aseprite JSON フォーマットからスプライトシートを読み込む

Types

type AsepriteFrame

type AsepriteFrame struct {
	Filename         string       `json:"filename"`
	Frame            AsepriteRect `json:"frame"`
	Rotated          bool         `json:"rotated"`
	Trimmed          bool         `json:"trimmed"`
	SpriteSourceSize AsepriteRect `json:"spriteSourceSize"`
	SourceSize       AsepriteSize `json:"sourceSize"`
	Duration         int          `json:"duration"`
}

AsepriteFrame は1つのスプライトフレーム情報

type AsepriteJSON

type AsepriteJSON struct {
	Frames []AsepriteFrame `json:"frames"`
	Meta   AsepriteMeta    `json:"meta"`
}

AsepriteJSON は Aseprite が生成する JSON スプライトシートフォーマット

type AsepriteMeta

type AsepriteMeta struct {
	App     string       `json:"app"`
	Version string       `json:"version"`
	Image   string       `json:"image"`
	Format  string       `json:"format"`
	Size    AsepriteSize `json:"size"`
	Scale   string       `json:"scale"`
}

AsepriteMeta はメタデータ

type AsepriteRect

type AsepriteRect struct {
	X int `json:"x"`
	Y int `json:"y"`
	W int `json:"w"`
	H int `json:"h"`
}

AsepriteRect は矩形の位置とサイズ

type AsepriteSize

type AsepriteSize struct {
	W int `json:"w"`
	H int `json:"h"`
}

AsepriteSize はサイズ

type DefaultResourceLoader

type DefaultResourceLoader struct {
	// contains filtered or unexported fields
}

DefaultResourceLoader はResourceLoaderのデフォルト実装

func (*DefaultResourceLoader) LoadFonts

func (rl *DefaultResourceLoader) LoadFonts() (map[string]resources.Font, error)

LoadFonts はフォントリソースを読み込む

func (*DefaultResourceLoader) LoadRaws

func (rl *DefaultResourceLoader) LoadRaws() (*raw.Master, error)

LoadRaws はRawデータを読み込む

func (*DefaultResourceLoader) LoadSpriteSheets

func (rl *DefaultResourceLoader) LoadSpriteSheets() (map[string]components.SpriteSheet, error)

LoadSpriteSheets はスプライトシートリソースを読み込む

type ResourceCache

type ResourceCache struct {
	Fonts        map[string]resources.Font
	SpriteSheets map[string]components.SpriteSheet
	RawMaster    *raw.Master
}

ResourceCache は読み込み済みのリソースをキャッシュする

type ResourceConfig

type ResourceConfig struct {
	FontsPath        string
	SpriteSheetsPath string
	RawsPath         string
}

ResourceConfig はリソースファイルのパスを管理する設定

type ResourceLoader

type ResourceLoader interface {
	// フォント関連
	LoadFonts() (map[string]resources.Font, error)
	// スプライトシート関連
	LoadSpriteSheets() (map[string]components.SpriteSheet, error)
	// Raw(エンティティ定義)関連
	LoadRaws() (*raw.Master, error)
}

ResourceLoader はすべてのリソースの読み込みを統括するインターフェース

func NewResourceLoader

func NewResourceLoader() ResourceLoader

NewResourceLoader はデフォルトのパス設定でResourceLoaderを作成する

Jump to

Keyboard shortcuts

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