COM3D2

package
v1.3.1 Latest Latest
Warning

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

Go to latest
Published: Nov 23, 2025 License: BSD-3-Clause Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	UnknowGame = "Unknown"
	NoneGame   = "None"
	GameCOM3D2 = "COM3D2"
	GameKCES   = "KCES"
)

游戏名称

View Source
const (
	FormatUnknown = "Unknown"
	FormatBinary  = "binary"
	FormatJSON    = "json"
	FormatCSV     = "csv"
)

文件类型

View Source
const (
	UnknownFileType  = "Unknown"
	UnknownSignature = "Unknown"
)
View Source
const (
	SignatureNone = "None"
)

Variables

View Source
var NoneGameFileTypeSet = map[string]struct{}{
	"csv":  {},
	"json": {},
}
View Source
var SpecialFileTypeSet = map[string]struct{}{
	"nei": {},
}

SpecialFileTypeSet 特殊文件类型集合,用于判断文件类型

Functions

This section is empty.

Types

type AnmModel added in v1.0.2

type AnmModel struct{}

AnmModel 用于让 wails 识别 anm 对应结构体

func (*AnmModel) Dummy added in v1.0.2

Dummy 用于让 wails 识别 anm 对应结构体,需要在签名中使用所有结构体

type AnmService

type AnmService struct{}

AnmService 专门处理 .anm 文件的读写

func (*AnmService) ConvertAnmToJson added in v1.0.1

func (m *AnmService) ConvertAnmToJson(inputPath string, outputPath string) error

ConvertAnmToJson 接收输入文件路径和输出文件路径,将输入文件转换为 .json 文件

func (*AnmService) ConvertJsonToAnm added in v1.0.1

func (m *AnmService) ConvertJsonToAnm(inputPath string, outputPath string) error

ConvertJsonToAnm 接收输入文件路径和输出文件路径,将输入文件转换为 .anm 文件

func (*AnmService) ReadAnmFile

func (m *AnmService) ReadAnmFile(path string) (*COM3D2.Anm, error)

ReadAnmFile 读取 .anm 或 .anm.json 文件并返回对应结构体

func (*AnmService) WriteAnmFile

func (m *AnmService) WriteAnmFile(path string, anmData *COM3D2.Anm) error

WriteAnmFile 接收 Anm 数据并写入 .anm 文件或 .anm.json 文件

type ColModel added in v1.0.2

type ColModel struct{}

ColModel 用于让 wails 识别 col 对应结构体

func (*ColModel) Dummy added in v1.0.2

Dummy 用于让 wails 识别 col 对应结构体,需要在签名中使用所有结构体

type ColService

type ColService struct{}

ColService 专门处理 .col 文件的读写

func (*ColService) ConvertColToJson added in v1.0.2

func (m *ColService) ConvertColToJson(inputPath string, outputPath string) error

ConvertColToJson 接收输入文件路径和输出文件路径,将输入文件转换为 .json 文件

func (*ColService) ConvertJsonToCol added in v1.0.2

func (m *ColService) ConvertJsonToCol(inputPath string, outputPath string) error

ConvertJsonToCol 接收输入文件路径和输出文件路径,将输入文件转换为 .col 文件

func (*ColService) ReadColFile

func (m *ColService) ReadColFile(path string) (*COM3D2.Col, error)

ReadColFile 读取 .col 或 .col.json 文件并返回对应结构体

func (*ColService) WriteColFile

func (m *ColService) WriteColFile(path string, colData *COM3D2.Col) error

WriteColFile 接收 Col 数据并写入 .col 或 .col.json 文件

type CommonService added in v1.0.1

type CommonService struct{}

func (*CommonService) FileTypeDetermine added in v1.0.1

func (m *CommonService) FileTypeDetermine(path string, strictMode bool) (fileInfo FileInfo, err error)

FileTypeDetermine 判断文件类型,支持二进制和 JSON 格式 strictMode 为 true 时,严格按照文件内容判断文件类型 strictMode 为 false 时,优先根据文件后缀判断文件类型,如果无法判断再根据文件内容判断

type CovertTexToImageResult

type CovertTexToImageResult struct {
	Base64EncodedImageData string
	Format                 string
	Rects                  []COM3D2.TexRect
}

CovertTexToImageResult 前端不接受多个返回值,因此使用结构体

type FileHeader added in v1.0.1

type FileHeader struct {
	Signature string `json:"Signature"`
	Version   int32  `json:"Version"`
}

FileHeader 用于 JSON 部分读取的结构

type FileInfo added in v1.0.2

type FileInfo struct {
	FileType      string `json:"FileType"`      // 文件类型名称
	StorageFormat string `json:"StorageFormat"` // 用于区分二进制和 JSON 格式 binary/json,见顶部常量定义
	Game          string `json:"Game"`          // 游戏名称 COM3D2/KCES,见顶部常量定义
	Signature     string `json:"Signature"`     // 文件签名
	Version       int32  `json:"Version"`       // 文件版本
	Path          string `json:"Path"`          // 文件路径
	Size          int64  `json:"Size"`          // 文件大小
}

FileInfo 用于表示文件类型的结构

type MateModel added in v1.0.2

type MateModel struct{}

MateModel 用于让 wails 识别 mate 对应结构体

func (*MateModel) Dummy added in v1.0.2

Dummy 用于让 wails 识别 mate 对应结构体,需要在签名中使用所有结构体

type MateService

type MateService struct{}

MateService 专门处理 .mate 文件的读写

func (*MateService) ConvertJsonToMate added in v1.0.2

func (m *MateService) ConvertJsonToMate(inputPath string, outputPath string) error

ConvertJsonToMate 接收输入文件路径和输出文件路径,将输入文件转换为 .mate 文件

func (*MateService) ConvertMateToJson added in v1.0.2

func (m *MateService) ConvertMateToJson(inputPath string, outputPath string) error

ConvertMateToJson 接收输入文件路径和输出文件路径,将输入文件转换为 .json 文件

func (*MateService) ReadMateFile

func (m *MateService) ReadMateFile(path string) (*COM3D2.Mate, error)

ReadMateFile 读取 .mate 或 .mate.json 文件并返回对应结构体

func (*MateService) WriteMateFile

func (m *MateService) WriteMateFile(path string, mateData *COM3D2.Mate) error

WriteMateFile 接收 Mate 数据并写入 .mate 或 .mate.json 文件

type MenuModel struct{}

MenuModel 用于让 wails 识别 menu 对应结构体

func (s *MenuModel) Dummy(COM3D2.Menu, COM3D2.Command)

Dummy 用于让 wails 识别 menu 对应结构体,需要在签名中使用所有结构体

type MenuService struct{}

MenuService 专门处理 .menu 文件的读写

func (s *MenuService) ConvertJsonToMenu(inputPath string, outputPath string) error

ConvertJsonToMenu 接收输入文件路径和输出文件路径,将输入文件转换为 .menu 文件

func (s *MenuService) ConvertMenuToJson(inputPath string, outputPath string) error

ConvertMenuToJson 接收输入文件路径和输出文件路径,将输入文件转换为 .json 文件

func (s *MenuService) ReadMenuFile(path string) (*COM3D2.Menu, error)

ReadMenuFile 读取 .menu 或 .menu.json 文件并返回对应结构体

func (s *MenuService) WriteMenuFile(path string, menuData *COM3D2.Menu) error

WriteMenuFile 接收 Menu 数据并写入 .menu 或 .menu.json 文件

type ModelModel added in v1.0.2

type ModelModel struct{}

func (*ModelModel) Dummy added in v1.0.2

Dummy 用于让 wails 识别 model 对应结构体,需要在签名中使用所有结构体

type ModelService

type ModelService struct{}

ModelService 专门处理 .model 文件的读写

func (*ModelService) ConvertJsonToModel added in v1.0.1

func (m *ModelService) ConvertJsonToModel(inputPath string, outputPath string) error

ConvertJsonToModel 接收输入文件路径和输出文件路径,将输入文件转换为 .model 文件

func (*ModelService) ConvertModelToJson added in v1.0.1

func (m *ModelService) ConvertModelToJson(inputPath string, outputPath string) error

ConvertModelToJson 接收输入文件路径和输出文件路径,将输入文件转换为 .json 文件

func (*ModelService) ReadModelFile

func (m *ModelService) ReadModelFile(path string) (*COM3D2.Model, error)

ReadModelFile 读取 .model 或 .model.json 文件并返回对应结构体

func (*ModelService) ReadModelMaterial

func (m *ModelService) ReadModelMaterial(path string) ([]*COM3D2.Material, error)

ReadModelMaterial 读取 .model 文件,但只返回其中的材质数据

func (*ModelService) ReadModelMetadata added in v1.0.2

func (m *ModelService) ReadModelMetadata(path string) (*COM3D2.ModelMetadata, error)

ReadModelMetadata 读取.model 文件,但只返回其中的元数据

func (*ModelService) WriteModelFile

func (m *ModelService) WriteModelFile(outputPath string, modelData *COM3D2.Model) error

WriteModelFile 接收 Model 数据并写入 .model 文件或 .model.json 文件

func (*ModelService) WriteModelMaterial

func (m *ModelService) WriteModelMaterial(inputPath string, outputPath string, materials []*COM3D2.Material) error

WriteModelMaterial 接收 Material 数据并写入.model 文件 因为 Material 数据是在 Model 结构体中,所以需要先读取整个 Model 结构体,然后修改其中的 Material 数据,最后再写入文件 因此这里需要传入输入文件路径和输出文件路径,分别用于读取和写入.model 文件,可以为相同路径

func (*ModelService) WriteModelMetadata added in v1.0.2

func (m *ModelService) WriteModelMetadata(inputPath string, outputPath string, metadata *COM3D2.ModelMetadata) error

WriteModelMetadata 将元数据写入现有的 .model 文件

type NeiModel added in v1.0.8

type NeiModel struct{}

func (*NeiModel) Dummy added in v1.0.8

func (s *NeiModel) Dummy(COM3D2.Nei)

Dummy 用于让 wails 识别 nei 对应结构体,需要在签名中使用所有结构体

type NeiService added in v1.0.8

type NeiService struct{}

NeiService 专门处理 .nei 文件的读写

func (*NeiService) CSVFileToNei added in v1.0.8

func (s *NeiService) CSVFileToNei(path string) (*COM3D2.Nei, error)

CSVFileToNei 读取 .csv 文件并返回对应的 Nei 结构体

func (*NeiService) CSVFileToNeiFile added in v1.0.8

func (s *NeiService) CSVFileToNeiFile(inputPath string, outputPath string) error

CSVFileToNeiFile 将 CSV 文件转换为 Nei 文件

func (*NeiService) CSVToNei added in v1.0.8

func (s *NeiService) CSVToNei(csvData [][]string) (*COM3D2.Nei, error)

CSVToNei 将 CSV 结构转换为 Nei 结构体

func (*NeiService) NeiFileToCSV added in v1.0.8

func (s *NeiService) NeiFileToCSV(inputPath string) (csvData [][]string, err error)

NeiFileToCSV 读取 .nei 文件并返回对应的 CSV 结构体

func (*NeiService) NeiFileToCSVFile added in v1.0.8

func (s *NeiService) NeiFileToCSVFile(inputPath string, outputPath string) error

NeiFileToCSVFile 将 Nei 文件转换为 CSV 文件

func (*NeiService) NeiToCSV added in v1.0.8

func (s *NeiService) NeiToCSV(neiData *COM3D2.Nei) (csvDate [][]string, err error)

NeiToCSV 将 Nei 结构体转换为 CSV 结构

func (*NeiService) ReadNeiFile added in v1.0.8

func (s *NeiService) ReadNeiFile(path string) (*COM3D2.Nei, error)

ReadNeiFile 读取 .nei 文件并返回对应结构体

func (*NeiService) WriteNeiFile added in v1.0.8

func (s *NeiService) WriteNeiFile(neiData *COM3D2.Nei, path string) error

WriteNeiFile 接收 Nei 数据并写入 .nei 文件

type PMatModel added in v1.0.2

type PMatModel struct{}

PMatModel 用于让 wails 识别 pmat 对应结构体

func (*PMatModel) Dummy added in v1.0.2

func (s *PMatModel) Dummy(COM3D2.PMat)

Dummy 用于让 wails 识别 pmat 对应结构体,需要在签名中使用所有结构体

type PMatService

type PMatService struct{}

PMatService 专门处理 .pmat 文件的读写

func (*PMatService) ConvertJsonToPMat added in v1.0.2

func (s *PMatService) ConvertJsonToPMat(inputPath string, outputPath string) error

ConvertJsonToPMat 接收输入文件路径和输出文件路径,将输入文件转换为 .pmat 文件

func (*PMatService) ConvertPMatToJson added in v1.0.2

func (s *PMatService) ConvertPMatToJson(inputPath string, outputPath string) error

ConvertPMatToJson 接收输入文件路径和输出文件路径,将输入文件转换为 .json 文件

func (*PMatService) ReadPMatFile

func (s *PMatService) ReadPMatFile(path string) (*COM3D2.PMat, error)

ReadPMatFile 读取 .pmat 或 .pmat.json 文件并返回对应结构体

func (*PMatService) WritePMatFile

func (s *PMatService) WritePMatFile(path string, PMatData *COM3D2.PMat) error

WritePMatFile 接收 PMat 数据并写入 .pmat 或 .pmat.json 文件

type PhyModel added in v1.0.2

type PhyModel struct{}

PhyModel 用于让 wails 识别 phy 对应结构体

func (*PhyModel) Dummy added in v1.0.2

Dummy 用于让 wails 识别 phy 对应结构体,需要在签名中使用所有结构体

type PhyService

type PhyService struct{}

PhyService 专门处理 .phy 文件的读写

func (*PhyService) ConvertJsonToPhy added in v1.0.2

func (m *PhyService) ConvertJsonToPhy(inputPath string, outputPath string) error

ConvertJsonToPhy 接收输入文件路径和输出文件路径,将输入文件转换为 .phy 文件

func (*PhyService) ConvertPhyToJson added in v1.0.2

func (m *PhyService) ConvertPhyToJson(inputPath string, outputPath string) error

ConvertPhyToJson 接收输入文件路径和输出文件路径,将输入文件转换为 .json 文件

func (*PhyService) ReadPhyFile

func (m *PhyService) ReadPhyFile(path string) (*COM3D2.Phy, error)

ReadPhyFile 读取 .phy 或 .phy.json 文件并返回对应结构体

func (*PhyService) WritePhyFile

func (m *PhyService) WritePhyFile(path string, phyData *COM3D2.Phy) error

WritePhyFile 接收 Phy 数据并写入 .phy 或 .phy.json 文件

type PresetService added in v1.3.0

type PresetService struct{}

PresetService 专门处理 .preset 文件的读写

func (*PresetService) ConvertJsonToPreset added in v1.3.0

func (s *PresetService) ConvertJsonToPreset(inputPath string, outputPath string) error

ConvertJsonToPreset 接收输入文件路径和输出文件路径,将输入文件转换为 .preset 文件

func (*PresetService) ConvertPresetToJson added in v1.3.0

func (s *PresetService) ConvertPresetToJson(inputPath string, outputPath string) error

ConvertPresetToJson 接收输入文件路径和输出文件路径,将输入文件转换为 .json 文件

func (*PresetService) ReadPresetFile added in v1.3.0

func (s *PresetService) ReadPresetFile(path string) (*COM3D2.Preset, error)

ReadPresetFile 读取 .preset 或 .preset.json 文件并返回对应结构体

func (*PresetService) ReadPresetFileMetadata added in v1.3.0

func (s *PresetService) ReadPresetFileMetadata(path string) (*COM3D2.PresetMetadata, error)

ReadPresetFileMetadata 读取 .preset 或 .preset.json 文件并返回对应结构体,仅包含预览图等元数据

func (*PresetService) WritePresetFile added in v1.3.0

func (s *PresetService) WritePresetFile(path string, PresetData *COM3D2.Preset) error

WritePresetFile 接收 Preset 数据并写入 .preset 或 .preset.json 文件

type PskModel added in v1.0.2

type PskModel struct{}

PskModel 用于让 wails 识别 psk 对应结构体

func (*PskModel) Dummy added in v1.0.2

Dummy 用于让 wails 识别 psk 对应结构体,需要在签名中使用所有结构体

type PskService

type PskService struct{}

PskService 专门处理 .psk 文件的读写

func (*PskService) ConvertJsonToPsk added in v1.0.2

func (m *PskService) ConvertJsonToPsk(inputPath string, outputPath string) error

ConvertJsonToPsk 接收输入文件路径和输出文件路径,将输入文件转换为 .psk 文件

func (*PskService) ConvertPskToJson added in v1.0.2

func (m *PskService) ConvertPskToJson(inputPath string, outputPath string) error

ConvertPskToJson 接收输入文件路径和输出文件路径,将输入文件转换为 .json 文件

func (*PskService) ReadPskFile

func (m *PskService) ReadPskFile(path string) (*COM3D2.Psk, error)

ReadPskFile 读取 .psk 或 .psk.json 文件并返回对应结构体

func (*PskService) WritePskFile

func (m *PskService) WritePskFile(path string, pskData *COM3D2.Psk) error

WritePskFile 接收 Psk 数据并写入 .psk 或 .psk.json 文件

type TexModel added in v1.0.2

type TexModel struct{}

TexModel 用于让 wails 识别 tex 对应结构体

func (*TexModel) Dummy added in v1.0.2

Dummy 用于让 wails 识别 tex 对应结构体,需要在签名中使用所有结构体

type TexService

type TexService struct{}

TexService 专门处理 .tex 文件的读写

func (*TexService) CheckImageMagick

func (t *TexService) CheckImageMagick() bool

CheckImageMagick 检查是否安装了 ImageMagick

func (*TexService) ConvertAnyToAnyAndWrite

func (t *TexService) ConvertAnyToAnyAndWrite(inputPath string, texName string, compress bool, forcePNG bool, outputPath string) error

ConvertAnyToAnyAndWrite 任意 ImageMagick 支持的格式和 .tex 转换为任意 ImageMagick 支持的格式,并写出 依赖外部库 ImageMagick,且有 Path 环境变量可以直接调用 magick 命令 转换为图片时: 输出格式根据输出路径后缀决定,如果 forcePng 为 true 则强制输出为 PNG,但是如果输出格式为 .tex 则输出为.tex 转换为 .tex 时: 如果 forcePNG 为 true,且 compress 为 false,则 tex 的数据位是原始 PNG 数据或转换为 PNG 如果 forcePNG 为 false,且 compress 为 false,那么检查输入格式是否是 PNG 或 JPG,如果是则数据位直接使用原始图片,否则如果原始格式有损且无透明通道则转换为 JPG,否则转换为 PNG 如果 forcePNG 为 true,且 compress 为 true,那么 compress 标识会被忽略,结果同 forcePNG 为 true,且 compress 为 false 如果 forcePNG 为 false,且 compress 为 true,那么会对结果进行 DXT 压缩,数据位为 DDS 数据,根据有无透明通道选择 DXT1 或 DXT5 如果输入输出都是 .tex,则原样复制,只不过是先读取再写出

func (*TexService) ConvertAnyToPng

func (t *TexService) ConvertAnyToPng(inputPath string) (Base64EncodedPngData string, err error)

ConvertAnyToPng 任意 ImageMagick 支持的格式转换为 PNG,包括 .tex 依赖外部库 ImageMagick,且有 Path 环境变量可以直接调用 magick 命令 输出为 base64 编码的 PNG 数据

func (*TexService) ConvertImageToTex

func (t *TexService) ConvertImageToTex(inputPath string, texName string, compress bool, forcePNG bool) (*COM3D2.Tex, error)

ConvertImageToTex 将任意 ImageMagick 支持的文件格式转换为 tex 格式,但不写出 依赖外部库 ImageMagick,且有 Path 环境变量可以直接调用 magick 命令 如果 forcePNG 为 true,且 compress 为 false,则 tex 的数据位是原始 PNG 数据或转换为 PNG 如果 forcePNG 为 false,且 compress 为 false,那么检查输入格式是否是 PNG 或 JPG,如果是则数据位直接使用原始图片,否则如果原始格式有损且无透明通道则转换为 JPG,否则转换为 PNG 如果 forcePNG 为 true,且 compress 为 true,那么 compress 标识会被忽略,结果同 forcePNG 为 true,且 compress 为 false 如果 forcePNG 为 false,且 compress 为 true,那么会对结果进行 DXT 压缩,数据位为 DDS 数据,根据有无透明通道选择 DXT1 或 DXT5 如果要生成 1011 版本的 tex(纹理图集),需要在图片目录下有一个同名的 .uv.csv 文件(例如 foo.png 对应 foo.png.uv.csv),文件内容为矩形数组 x, y, w, h 一行一组 否则生成 1010 版本的 tex

func (*TexService) ConvertImageToTexAndWrite

func (t *TexService) ConvertImageToTexAndWrite(inputPath string, texName string, compress bool, forcePNG bool, outputPath string) error

ConvertImageToTexAndWrite 将任意 ImageMagick 支持的文件格式转换为 tex 格式,但不写出 依赖外部库 ImageMagick,且有 Path 环境变量可以直接调用 magick 命令 如果 forcePNG 为 true,且 compress 为 false,则 tex 的数据位是原始 PNG 数据或转换为 PNG 如果 forcePNG 为 false,且 compress 为 false,那么检查输入格式是否是 PNG 或 JPG,如果是则数据位直接使用原始图片,否则如果原始格式有损且无透明通道则转换为 JPG,否则转换为 PNG 如果 forcePNG 为 true,且 compress 为 true,那么 compress 标识会被忽略,结果同 forcePNG 为 true,且 compress 为 false 如果 forcePNG 为 false,且 compress 为 true,那么会对结果进行 DXT 压缩,数据位为 DDS 数据,根据有无透明通道选择 DXT1 或 DXT5 如果要生成 1011 版本的 tex(纹理图集),需要在图片目录下有一个同名的 .uv.csv 文件(例如 foo.png 对应 foo.png.uv.csv),文件内容为矩形数组 x, y, w, h 一行一组,否则生成 1010 版本的 tex 如果输入输出都是 .tex,则原样复制

func (*TexService) ConvertTexToImageAndWrite

func (t *TexService) ConvertTexToImageAndWrite(inputPath string, outputPath string, forcePng bool) error

ConvertTexToImageAndWrite 将 .tex 文件转换为图像文件,并写出 依赖外部库 ImageMagick,且有 Path 环境变量可以直接调用 magick 命令 如果 forcePNG 为 false 那么如果图像是有损格式且没有透明通道,则保存为 JPG,否则保存为 PNG 如果 forcePNG 为 true 则强制保存为 PNG,不考虑图像格式和透明通道 如果是 1011 版本的 tex(纹理图集),则还会生成一个 .uv.csv 文件(例如 foo.png 对应 foo.png.uv.csv),文件内容为矩形数组 x, y, w, h 一行一组

func (*TexService) CovertTexToImage

func (t *TexService) CovertTexToImage(inputPath string, forcePng bool) (covertTexToImageResult CovertTexToImageResult, err error)

CovertTexToImage 将 .tex 文件转换为图像文件,但不写出 依赖外部库 ImageMagick,且有 Path 环境变量可以直接调用 magick 命令 如果 forcePNG 为 false 那么如果图像数据位是 JPG 或 PNG 则直接返回数据为,否则根据有没有透明通道保存为 JPG 或 PNG 如果 forcePNG 为 true 则强制保存为 PNG,不考虑图像格式和透明通道 如果是 1011 版本的 tex(纹理图集),则还会返回 rects

func (*TexService) ReadTexFile

func (t *TexService) ReadTexFile(path string) (*COM3D2.Tex, error)

ReadTexFile 读取 .tex 文件并返回对应结构体

func (*TexService) WriteTexFile

func (t *TexService) WriteTexFile(path string, TexData *COM3D2.Tex) error

WriteTexFile 接收 Tex 数据并写入 .tex 文件

Jump to

Keyboard shortcuts

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