コード例 #1
0
ファイル: Data.cs プロジェクト: thswogur00/ETGMod
    public static AssetSpriteData FromTK2D(tk2dSpriteCollectionData sprites, tk2dSpriteDefinition frame, bool separate = false)
    {
        if (sprites.materials[0]?.mainTexture == null)
        {
            return(new AssetSpriteData {
                name = separate ? "INCOMPLETE" : (frame.name + "_INCOMPLETE")
            });
        }
        int texWidth  = sprites.materials[0].mainTexture.width;
        int texHeight = sprites.materials[0].mainTexture.height;

        return(new AssetSpriteData {
            name = separate ? null : frame.name,

            x = separate ? 0 : (int)Math.Floor(texWidth * frame.uvs[0].x),
            y = separate ? 0 : (int)Math.Floor(texHeight * frame.uvs[0].y),
            width = (int)Math.Ceiling(texWidth * (frame.uvs[3].x - frame.uvs[0].x)),
            height = (int)Math.Ceiling(texHeight * (frame.uvs[3].y - frame.uvs[0].y)),

            flip = frame.uvs[0].x == frame.uvs[1].x ? 1 : 0,

            attachPoints = sprites.GetAttachPoints(sprites.spriteDefinitions.IndexOf(frame)) ?? new AttachPoint[0]
        });
    }