raw

package
v1.158.0 Latest Latest
Warning

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

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

Documentation

Overview

Package raw はゲームのローデータ定義とユーティリティを提供する。

Index

Constants

This section is empty.

Variables

View Source
var ErrInvalidEnumType = errors.New("enumに無効な値が指定された")

ErrInvalidEnumType はenumに無効な値が指定された場合のエラー

Functions

func NewKeyNotFoundError

func NewKeyNotFoundError(key, collection string) error

NewKeyNotFoundError creates a new KeyNotFoundError

func SelectByWeightFunc added in v1.138.0

func SelectByWeightFunc[T any, V any](items []T, getWeight func(T) float64, getValue func(T) V, rng *rand.Rand) (V, error)

SelectByWeightFunc は重み付き抽選で値を選択する汎用関数 getWeight: 各要素から重みを取得する関数 getValue: 各要素から戻り値を取得する関数

func SelectCommandByWeight added in v1.155.0

func SelectCommandByWeight(ct oapi.CommandTable, rng *rand.Rand) (string, error)

SelectCommandByWeight はコマンドテーブルから重み付きランダム選択する

func SelectDropByWeight added in v1.155.0

func SelectDropByWeight(dt oapi.DropTable, rng *rand.Rand) (string, error)

SelectDropByWeight はドロップテーブルから重み付きランダム選択する

func SelectEnemyByWeight added in v1.155.0

func SelectEnemyByWeight(et oapi.EnemyTable, rng *rand.Rand, depth int) (string, error)

SelectEnemyByWeight は敵テーブルから深度を考慮して重み付きランダム選択する

func SelectItemByWeight added in v1.155.0

func SelectItemByWeight(it oapi.ItemTable, rng *rand.Rand, depth int) (string, error)

SelectItemByWeight はアイテムテーブルから深度を考慮して重み付きランダム選択する

Types

type KeyNotFoundError

type KeyNotFoundError struct {
	Key        string
	Collection string
}

KeyNotFoundError represents an error when a key is not found in a collection

func (KeyNotFoundError) Error

func (e KeyNotFoundError) Error() string

type Master

type Master struct {
	Raws              Raws
	ItemIndex         map[string]int
	RecipeIndex       map[string]int
	MemberIndex       map[string]int
	CommandTableIndex map[string]int
	DropTableIndex    map[string]int
	ItemTableIndex    map[string]int
	EnemyTableIndex   map[string]int
	SpriteSheetIndex  map[string]int
	TileIndex         map[string]int
	PropIndex         map[string]int
	ProfessionIndex   map[string]int
}

Master はローデータを管理し、効率的な検索のためのインデックスを提供する

func Load

func Load(entityMetadataContent string) (Master, error)

Load は文字列からローデータを読み込む

func LoadFromFile

func LoadFromFile(path string) (Master, error)

LoadFromFile はファイルからローデータを読み込む

func (*Master) GetCommandTable

func (rw *Master) GetCommandTable(name string) (oapi.CommandTable, error)

GetCommandTable は指定された名前のコマンドテーブルを取得する

func (*Master) GetDropTable

func (rw *Master) GetDropTable(name string) (oapi.DropTable, error)

GetDropTable は指定された名前のドロップテーブルを取得する

func (*Master) GetEnemyTable

func (rw *Master) GetEnemyTable(name string) (oapi.EnemyTable, error)

GetEnemyTable は指定された名前の敵テーブルを取得する

func (*Master) GetItemTable

func (rw *Master) GetItemTable(name string) (oapi.ItemTable, error)

GetItemTable は指定された名前のアイテムテーブルを取得する

func (*Master) GetProfession added in v1.148.0

func (rw *Master) GetProfession(id string) (oapi.Profession, error)

GetProfession は指定されたIDの職業データを返す

func (*Master) GetProp

func (rw *Master) GetProp(name string) (oapi.Prop, error)

GetProp は指定された名前の置物の設定を取得する

func (*Master) GetTile

func (rw *Master) GetTile(name string) (oapi.Tile, error)

GetTile は指定された名前のタイルを取得する 計画段階でタイルの性質(Walkableなど)を参照する場合に使用する

func (*Master) NewEnemySpec

func (rw *Master) NewEnemySpec(name string) (gc.EntitySpec, error)

NewEnemySpec は指定された名前の敵のEntitySpecを生成する

func (*Master) NewItemSpec

func (rw *Master) NewItemSpec(name string) (gc.EntitySpec, error)

NewItemSpec は指定された名前のアイテムのEntitySpecを生成する

func (*Master) NewMemberSpec

func (rw *Master) NewMemberSpec(name string) (gc.EntitySpec, error)

NewMemberSpec は指定された名前のメンバーのEntitySpecを生成する

func (*Master) NewPlayerSpec

func (rw *Master) NewPlayerSpec(name string) (gc.EntitySpec, error)

NewPlayerSpec は指定された名前のプレイヤーのEntitySpecを生成する

func (*Master) NewPropSpec

func (rw *Master) NewPropSpec(name string) (gc.EntitySpec, error)

NewPropSpec は指定された名前の置物のEntitySpecを生成する

func (*Master) NewRecipeSpec

func (rw *Master) NewRecipeSpec(name string) (gc.EntitySpec, error)

NewRecipeSpec は指定された名前のレシピのEntitySpecを生成する

func (*Master) NewTileSpec

func (rw *Master) NewTileSpec(name string, x, y consts.Tile, autoTileIndex *int) (gc.EntitySpec, error)

NewTileSpec は指定された名前のタイルのEntitySpecを生成する 実際にエンティティを生成する際に使用する

func (*Master) NewWeaponSpec

func (rw *Master) NewWeaponSpec(name string) (gc.EntitySpec, error)

NewWeaponSpec は指定された名前の武器のEntitySpecを生成する 武器はマスターデータとして位置なしで生成される

type Raws

type Raws struct {
	Items         []oapi.Item
	Recipes       []oapi.Recipe
	Members       []oapi.Member
	CommandTables []oapi.CommandTable
	DropTables    []oapi.DropTable
	ItemTables    []oapi.ItemTable
	EnemyTables   []oapi.EnemyTable
	SpriteSheets  []oapi.SpriteSheet
	Tiles         []oapi.Tile
	Props         []oapi.Prop
	Professions   []oapi.Profession
}

Raws は全てのローデータを格納する構造体

func DecodeRaws added in v1.155.0

func DecodeRaws(content string) (Raws, error)

DecodeRaws はTOML文字列をRaws構造体にデコードする。 未知のキーが含まれる場合はエラーを返す

type ValueType

type ValueType string

ValueType は値のタイプを表す

const (
	// PercentageType はパーセンテージタイプを表す
	PercentageType ValueType = "PERCENTAGE"
	// NumeralType は数値タイプを表す
	NumeralType ValueType = "NUMERAL"
)

func (ValueType) Valid

func (enum ValueType) Valid() error

Valid はValueTypeの値が有効かどうかを検証する

Jump to

Keyboard shortcuts

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