Crate yy_typings[][src]

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

object_yy

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

script

Typings for Scripts.

shader

Typings for Shaders.

sounds

Typings for Sounds.

sprite_yy

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.

texture_group

Typings associated with Texture Groups.

utils

Two utilities which may be useful for downstream crates:

Structs

AnimationCurve

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.

AudioGroup
AudioGroupId

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.

AudioGroupPath

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:

Extension

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.

FilesystemPath

Paths on the File System.

Font

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.

Note

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.

Path

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.

ResourceVersion

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

Room

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.

RoomOrderId
Sequence

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.

TexturePath

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.

TexturePathLocation

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:

TileSet

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.

Timeline

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.

ViewPath

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.

ViewPathLocation

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

Yyp

GMS2 project file typings

YypConfig

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

YypFolder

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.

YypIncludedFile
YypMetaData
YypResource

Represents a resource entry in a YYP

Enums

ConstGmFolder
ConstGmIncludedFile
ConstGmProject

Type Definitions

Tags

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