mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/PCK-Studio.git
synced 2026-05-22 14:06:13 +00:00
82 lines
3.6 KiB
C#
82 lines
3.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Numerics;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using PckStudio.Core.Extensions;
|
|
using PckStudio.Core.Skin;
|
|
|
|
namespace PckStudio.Core
|
|
{
|
|
public static class GameConstants
|
|
{
|
|
// 16777215 being the uint24 max value
|
|
public const int MAX_PACK_ID = 0xffffff;
|
|
|
|
public const int GAMETICK_IN_MILLISECONDS = 50;
|
|
|
|
public static readonly Vector3 SkinHeadTranslation = Vector3.Zero;
|
|
public static readonly Vector3 SkinHeadPivot = Vector3.Zero;
|
|
|
|
public static readonly Vector3 SkinBodyTranslation = Vector3.Zero;
|
|
public static readonly Vector3 SkinBodyPivot = Vector3.Zero;
|
|
|
|
public static readonly Vector3 SkinRightArmTranslation = new(-5f, 2f, 0f);
|
|
public static readonly Vector3 SkinRightArmPivot = new(-6f, 2f, 0f);
|
|
|
|
public static readonly Vector3 SkinLeftArmTranslation = new(5f, 2f, 0f);
|
|
public static readonly Vector3 SkinLeftArmPivot = new(6f, 2f, 0f);
|
|
|
|
public static readonly Vector3 SkinRightLegTranslation = new(-2f, 12f, 0f);
|
|
public static readonly Vector3 SkinRightLegPivot = new(-2f, 12f, 0f);
|
|
|
|
public static readonly Vector3 SkinLeftLegTranslation = new(2f, 12f, 0f);
|
|
public static readonly Vector3 SkinLeftLegPivot = new(2f, 12f, 0f);
|
|
|
|
private static Dictionary<string, PositioningInfo> _posisioningInfos = new Dictionary<string, PositioningInfo>()
|
|
{
|
|
["HEAD"] = new PositioningInfo(SkinHeadTranslation, SkinHeadPivot),
|
|
["BODY"] = new PositioningInfo(SkinBodyTranslation, SkinBodyPivot),
|
|
["ARM0"] = new PositioningInfo(SkinRightArmTranslation, SkinRightArmPivot),
|
|
["ARM1"] = new PositioningInfo(SkinLeftArmTranslation, SkinLeftArmPivot),
|
|
["LEG0"] = new PositioningInfo(SkinRightLegTranslation, SkinRightLegPivot),
|
|
["LEG1"] = new PositioningInfo(SkinLeftLegTranslation, SkinLeftLegPivot),
|
|
};
|
|
public record struct PositioningInfo(Vector3 Translation, Vector3 Pivot);
|
|
|
|
public static PositioningInfo GetPositioningInfo(string partName)
|
|
{
|
|
if (SkinBOX.IsOverlayPart(partName))
|
|
partName = SkinBOXExtensions.GetBaseType(partName);
|
|
return _posisioningInfos.ContainsKey(partName) ? _posisioningInfos[partName] : default;
|
|
}
|
|
|
|
public static Vector3 GetSkinPartPivot(string partName) => GetPositioningInfo(partName).Pivot;
|
|
|
|
public static Vector3 GetSkinPartTranslation(string partName) => GetPositioningInfo(partName).Translation;
|
|
|
|
|
|
// See: https://minecraft.fandom.com/wiki/Dye#Color_values for more information.
|
|
public static readonly Color[] DyeColors = [
|
|
Color.FromArgb(0xf9fffe), // White
|
|
Color.FromArgb(0xf9801d), // Orange
|
|
Color.FromArgb(0xc74ebd), // Magenta
|
|
Color.FromArgb(0x3ab3da), // Light Blue
|
|
Color.FromArgb(0xfed83d), // Yellow
|
|
Color.FromArgb(0x80c71f), // Lime
|
|
Color.FromArgb(0xf38baa), // Pink
|
|
Color.FromArgb(0x474f52), // Gray
|
|
Color.FromArgb(0x9d9d97), // Light Gray
|
|
Color.FromArgb(0x169c9c), // Cyan
|
|
Color.FromArgb(0x8932b8), // Purple
|
|
Color.FromArgb(0x3c44aa), // Blue
|
|
Color.FromArgb(0x835432), // Brown
|
|
Color.FromArgb(0x5e7c16), // Green
|
|
Color.FromArgb(0xb02e26), // Red
|
|
Color.FromArgb(0x1d1d21), // Black
|
|
];
|
|
}
|
|
}
|