mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/PCK-Studio.git
synced 2026-09-23 11:06:10 +00:00
Created PSM Version 2
This commit is contained in:
@@ -4,33 +4,58 @@ using PckStudio.Core.Skin;
|
||||
|
||||
namespace PckStudio.ModelSupport.Internal.Format
|
||||
{
|
||||
/*
|
||||
Magic - 3 bytes("psm")
|
||||
Version - 1 byte [u8]
|
||||
Anim - 4 bytes[int32]
|
||||
NumberOfParts - 4 bytes[int32]
|
||||
{
|
||||
part parent - 1 byte (HEAD=0, BODY=1, LEG0=2, LEG1=3, ARM0=4, ARM1=5)
|
||||
Position-X - 4 bytes (float32)
|
||||
Position-Y - 4 bytes (float32)
|
||||
Position-Z - 4 bytes (float32)
|
||||
Size-X - 4 bytes (float32)
|
||||
Size-Y - 4 bytes (float32)
|
||||
Size-Z - 4 bytes (float32)
|
||||
MirrorAndUvX - 1 bit flag 7 bits uv.x value(0-64) (s8)
|
||||
HideWithArmorAndUvY - 1 bit flag 7 bits uv.y value(0-64) (s8)
|
||||
inflation/scale value - 4 bytes (float32)
|
||||
}
|
||||
NumberOfOffsets - 4 bytes[int32]
|
||||
{
|
||||
offset part - 1 byte
|
||||
vertical offset - 4 bytes[float]
|
||||
}
|
||||
*/
|
||||
/*
|
||||
* VERSION 1
|
||||
Magic - 3 bytes("psm")
|
||||
Version - 1 byte [u8]
|
||||
Anim - 4 bytes[int32]
|
||||
NumberOfParts - 4 bytes[int32]
|
||||
{
|
||||
part parent - 1 byte (HEAD=0, BODY=1, LEG0=2, LEG1=3, ARM0=4, ARM1=5)
|
||||
Position-X - 4 bytes (float32)
|
||||
Position-Y - 4 bytes (float32)
|
||||
Position-Z - 4 bytes (float32)
|
||||
Size-X - 4 bytes (float32)
|
||||
Size-Y - 4 bytes (float32)
|
||||
Size-Z - 4 bytes (float32)
|
||||
MirrorAndUvX - 1 bit flag 7 bits uv.x value(0-64) (s8)
|
||||
HideWithArmorAndUvY - 1 bit flag 7 bits uv.y value(0-64) (s8)
|
||||
Inflation - 4 bytes (float32)
|
||||
}
|
||||
NumberOfOffsets - 4 bytes[int32]
|
||||
{
|
||||
offset part - 1 byte
|
||||
vertical offset - 4 bytes[float]
|
||||
}
|
||||
|
||||
* VERSION 2
|
||||
Magic - 3 bytes("psm")
|
||||
Version - 1 byte [u8]
|
||||
Anim - 4 bytes [int32]
|
||||
Game Flags - 1 byte [u8]
|
||||
NumberOfParts - 4 bytes[int32]
|
||||
{
|
||||
ArmorMaskAndParParent - 3 bits Armor Mask 5 bits (Box Parent Type)
|
||||
Position-X - 4 bytes (float32)
|
||||
Position-Y - 4 bytes (float32)
|
||||
Position-Z - 4 bytes (float32)
|
||||
Size-X - 4 bytes (float32)
|
||||
Size-Y - 4 bytes (float32)
|
||||
Size-Z - 4 bytes (float32)
|
||||
MirrorAndUvX - 1 bit flag 7 bits uv.x value(0-64) (s8)
|
||||
ArmorMaskingAndUvY - 1 bit Helmet Mask 7 bits uv.y value(0-64) (s8)
|
||||
Inflation - 4 bytes (float32)
|
||||
}
|
||||
NumberOfOffsets - 4 bytes[int32]
|
||||
{
|
||||
offset part - 1 byte
|
||||
vertical offset - 4 bytes[float]
|
||||
}
|
||||
*/
|
||||
public sealed class PSMFile
|
||||
{
|
||||
internal static readonly string HEADER_MAGIC = "psm";
|
||||
internal const byte CurrentVersion = 1;
|
||||
internal const byte CurrentVersion = 2;
|
||||
|
||||
public readonly byte Version;
|
||||
|
||||
@@ -39,13 +64,15 @@ namespace PckStudio.ModelSupport.Internal.Format
|
||||
Version = version;
|
||||
}
|
||||
|
||||
internal PSMFile(byte version, SkinANIM skinANIM)
|
||||
: this(version)
|
||||
internal PSMFile(byte version, SkinANIM skinANIM, SkinGameFlags skinFlags)
|
||||
: this(version)
|
||||
{
|
||||
SkinANIM = skinANIM;
|
||||
SkinANIM = skinANIM;
|
||||
SkinFlags = skinFlags;
|
||||
}
|
||||
|
||||
public SkinANIM SkinANIM { get; private set; }
|
||||
public SkinANIM SkinANIM { get; private set; }
|
||||
public SkinGameFlags SkinFlags { get; private set; }
|
||||
|
||||
public readonly List<SkinBOX> Parts = new List<SkinBOX>();
|
||||
public readonly List<SkinPartOffset> Offsets = new List<SkinPartOffset>();
|
||||
@@ -82,5 +109,22 @@ namespace PckStudio.ModelSupport.Internal.Format
|
||||
ARM1 = 3,
|
||||
LEG0 = 4,
|
||||
LEG1 = 5,
|
||||
HEADWEAR = 6,
|
||||
JACKET = 7,
|
||||
SLEEVE0 = 8,
|
||||
SLEEVE1 = 9,
|
||||
PANTS0 = 10,
|
||||
PANTS1 = 11,
|
||||
WAIST = 12,
|
||||
LEGGING0 = 13,
|
||||
LEGGING1 = 14,
|
||||
SOCK0 = 15,
|
||||
SOCK1 = 16,
|
||||
BOOT0 = 17,
|
||||
BOOT1 = 18,
|
||||
ARMAMOR0 = 19,
|
||||
ARMAMOR1 = 20,
|
||||
BODYARMOR = 21,
|
||||
BELT = 22,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user