Files
PCK-Studio/PCK-Studio/Internal/ModelPartSpecifics.cs
2024-08-06 00:26:44 +02:00

32 lines
1.2 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Numerics;
using PckStudio.Extensions;
using PckStudio.Internal.Skin;
namespace PckStudio.Internal
{
internal static class ModelPartSpecifics
{
private static Dictionary<string, PositioningInfo> _posisioningInfos = new Dictionary<string, PositioningInfo>()
{
["HEAD"] = new PositioningInfo(),
["BODY"] = new PositioningInfo(),
["ARM0"] = new PositioningInfo(new(-5f, 2f, 0f), new(-6f, 2f, 0f)),
["ARM1"] = new PositioningInfo(new( 5f, 2f, 0f), new( 6f, 2f, 0f)),
["LEG0"] = new PositioningInfo(new(-2f, 12f, 0f), new(-2f, 12f, 0f)),
["LEG1"] = new PositioningInfo(new( 2f, 12f, 0f), new( 2f, 12f, 0f)),
};
internal record struct PositioningInfo(Vector3 Translation, Vector3 Pivot);
internal static PositioningInfo GetPositioningInfo(string partName)
{
if (SkinBOX.IsOverlayPart(partName))
partName = SkinBOXExtensions.GetBaseType(partName);
return _posisioningInfos.ContainsKey(partName) ? _posisioningInfos[partName] : default;
}
}
}