Expand description

This is a library was created for the development of Fields of Mistria, a farming RPG with tons of Sprites, by NPC Studio. This tool was created to support an Aseprite -> GMS2 pipeline tool. That tool is not public. Using this tool, one should be able to generate their own pipeline without difficulty.

This crate only supports Gms2, and only supports Gms2 2.3 and above. If users do want to use a version with Gms2 version 2.2, there is a historical release on the main branch which was made before 2.3’s release, though it is not nearly as fully featured as the current branch.

This repository has a pair: the Yy-Boss, which provides active Yyp handling over stdin/stdout, abstracting over Gms2’s native types to allow users to dynamically create resources (and analyze existing resources) without handling the Gms2 Yy files directly.

Modules

Typings associated with Object .yy files, including typing for Events and Vk Keycodes.

Typings for Rooms.

Typings for Scripts.

Typings for Shaders.

Typings for Sounds.

Typings associated with Sprite .yy files, including many of the types associated with Sequences, for now. In future iterations of this crate, those shared resources will be in their own module.

Typings associated with Texture Groups.

Two utilities which may be useful for downstream crates:

Structs

This is a bodge to handle the fact that we don’t currently have support for many of the Gms2 yy-files. Eventually, we’d like to support all of them, but downstream crates need to have some basic support until then. For now, this can be used for all top level files, providing the simplest of support.

A unqiue Id for audiogroups. Although it appears as if it could support hierarchies and nesting, audio ids never actually show that in practice, so this form is likely an artifact of the Yyg internal project structures.. The first member of this hierarchy is always audiogroups.

The path component will never end with .yy, even if it describes a virtual folder or file. This is to say, given the texture groups Default, Crops, and Enemies, we would expect to see the following TexturePath vec, in Json:

This is a bodge to handle the fact that we don’t currently have support for many of the Gms2 yy-files. Eventually, we’d like to support all of them, but downstream crates need to have some basic support until then. For now, this can be used for all top level files, providing the simplest of support.

Paths on the File System.

This is a bodge to handle the fact that we don’t currently have support for many of the Gms2 yy-files. Eventually, we’d like to support all of them, but downstream crates need to have some basic support until then. For now, this can be used for all top level files, providing the simplest of support.

This is a bodge to handle the fact that we don’t currently have support for many of the Gms2 yy-files. Eventually, we’d like to support all of them, but downstream crates need to have some basic support until then. For now, this can be used for all top level files, providing the simplest of support.

This is a bodge to handle the fact that we don’t currently have support for many of the Gms2 yy-files. Eventually, we’d like to support all of them, but downstream crates need to have some basic support until then. For now, this can be used for all top level files, providing the simplest of support.

The common fields in all Resource files.

A struct, which implements Serialize and Deserialize, for Gms2 version strings of the form “1.0” or “4.2”. Basically, a bad SemVer.

This is a bodge to handle the fact that we don’t currently have support for many of the Gms2 yy-files. Eventually, we’d like to support all of them, but downstream crates need to have some basic support until then. For now, this can be used for all top level files, providing the simplest of support.

A unqiue Id for textures. Although it appears as if it could support hierarchies and nesting, textures ids never actually show that in practice, so this form is likely an artifact of the Yyg internal project structures.. The first member of this hierarchy is always texturegroups.

The path component will never end with .yy, even if it describes a virtual folder or file. This is to say, given the texture groups Default, Crops, and Enemies, we would expect to see the following TexturePath vec, in Json:

This is a bodge to handle the fact that we don’t currently have support for many of the Gms2 yy-files. Eventually, we’d like to support all of them, but downstream crates need to have some basic support until then. For now, this can be used for all top level files, providing the simplest of support.

Viewpaths in the virtual file system created by the Folders in the Yyp, deliminated by /, and with a ViewPathLocation which ends in .yy or in .yyp.

The path component will always end with .yy, even if it describes a virtual folder or file. Given the following Gms2 folder virtual system (not operating system file system): ```txt folders/ Sprites/ spr_enemy.yy spr_player.yy

GMS2 project file typings

A description of a Config. Note that Configs form an acyclical graph by their children, so this tree could get quite large.

A YYP Folder. These form a graph, but each path is a full path from the root. Therefore, to create a tree, one must walk from the root to the final destination.

Represents a resource entry in a YYP

Enums

Type Definitions

These are the Tags which can be assigned to nearly anything in the GMS2 editor. Users can add any UTF-8 valid tags.