using System;

public class CastPreviewHelper
{
	public static CastPreviewHelper.PartsRoughType MPNToPartsRoughType(string mpn)
	{
		return CastPreviewHelper.MPNToPartsRoughType((MPN)Enum.Parse(typeof(MPN), mpn));
	}

	public static CastPreviewHelper.PartsRoughType MPNToPartsRoughType(MPN mpn)
	{
		switch (mpn)
		{
		case MPN.hairf:
		case MPN.hairr:
		case MPN.hairt:
		case MPN.hairs:
		case MPN.hairaho:
			return CastPreviewHelper.PartsRoughType.髪系;
		default:
			if (mpn != MPN.set_maidwear && mpn != MPN.set_mywear)
			{
				return CastPreviewHelper.PartsRoughType.その他単品系;
			}
			return CastPreviewHelper.PartsRoughType.セット系;
		}
	}

	public static CastPreviewHelper.PartsDetailType MPNToPartsDetailType(string mpn)
	{
		return CastPreviewHelper.MPNToPartsDetailType((MPN)Enum.Parse(typeof(MPN), mpn));
	}

	public static CastPreviewHelper.PartsDetailType MPNToPartsDetailType(MPN mpn)
	{
		switch (mpn)
		{
		case MPN.head:
			return CastPreviewHelper.PartsDetailType.顔;
		case MPN.hairf:
			return CastPreviewHelper.PartsDetailType.前髪;
		case MPN.hairr:
			return CastPreviewHelper.PartsDetailType.後髪;
		case MPN.hairt:
			return CastPreviewHelper.PartsDetailType.エクステ髪;
		case MPN.hairs:
			return CastPreviewHelper.PartsDetailType.横髪;
		case MPN.hairaho:
			return CastPreviewHelper.PartsDetailType.アホ毛;
		case MPN.skin:
			return CastPreviewHelper.PartsDetailType.肌;
		case MPN.acctatoo:
			return CastPreviewHelper.PartsDetailType.タトゥ\u30FC;
		case MPN.accnail:
			return CastPreviewHelper.PartsDetailType.ネイル;
		case MPN.hokuro:
			return CastPreviewHelper.PartsDetailType.ほくろ;
		case MPN.mayu:
			return CastPreviewHelper.PartsDetailType.眉;
		case MPN.lip:
			return CastPreviewHelper.PartsDetailType.唇;
		case MPN.eye:
		case MPN.folder_eye:
		case MPN.folder_eyewhite:
			return CastPreviewHelper.PartsDetailType.目;
		case MPN.eye_hi:
		case MPN.eye_hi_r:
			return CastPreviewHelper.PartsDetailType.目ハイライト;
		case MPN.wear:
			return CastPreviewHelper.PartsDetailType.トップス;
		case MPN.skirt:
			return CastPreviewHelper.PartsDetailType.ボトムス;
		case MPN.mizugi:
			return CastPreviewHelper.PartsDetailType.水着;
		case MPN.stkg:
			return CastPreviewHelper.PartsDetailType.靴下;
		case MPN.shoes:
			return CastPreviewHelper.PartsDetailType.靴;
		case MPN.headset:
			return CastPreviewHelper.PartsDetailType.ヘッドドレス;
		case MPN.glove:
			return CastPreviewHelper.PartsDetailType.手袋;
		case MPN.acchead:
			return CastPreviewHelper.PartsDetailType.アイマスク;
		case MPN.accha:
			return CastPreviewHelper.PartsDetailType.歯;
		case MPN.acchana:
			return CastPreviewHelper.PartsDetailType.鼻アクセ;
		case MPN.acckamisub:
			return CastPreviewHelper.PartsDetailType.リボン;
		case MPN.acckami:
			return CastPreviewHelper.PartsDetailType.前髪アクセ;
		case MPN.accmimi:
			return CastPreviewHelper.PartsDetailType.耳アクセ;
		case MPN.acckubi:
			return CastPreviewHelper.PartsDetailType.ネックレス;
		case MPN.acckubiwa:
			return CastPreviewHelper.PartsDetailType.チョ\u30FCカ\u30FC;
		case MPN.accheso:
			return CastPreviewHelper.PartsDetailType.へそアクセ;
		case MPN.accude:
			return CastPreviewHelper.PartsDetailType.腕アクセ;
		case MPN.accashi:
			return CastPreviewHelper.PartsDetailType.足首アクセ;
		case MPN.accsenaka:
			return CastPreviewHelper.PartsDetailType.背中アクセ;
		case MPN.accshippo:
			return CastPreviewHelper.PartsDetailType.尻尾;
		case MPN.megane:
			return CastPreviewHelper.PartsDetailType.メガネ;
		case MPN.acchat:
			return CastPreviewHelper.PartsDetailType.帽子;
		case MPN.onepiece:
			return CastPreviewHelper.PartsDetailType.ワンピ\u30FCス;
		case MPN.set_maidwear:
			return CastPreviewHelper.PartsDetailType.メイド服セット;
		case MPN.set_mywear:
			return CastPreviewHelper.PartsDetailType.私服セット;
		}
		return CastPreviewHelper.PartsDetailType.なし;
	}

	public static void SetPartsType(MPN mpn, ref CastPreviewHelper.PartsRoughType rough_type, ref CastPreviewHelper.PartsDetailType detail_type)
	{
		rough_type = CastPreviewHelper.MPNToPartsRoughType(mpn);
		detail_type = CastPreviewHelper.MPNToPartsDetailType(mpn);
	}

	public static void SetPartsType(string mpn, ref CastPreviewHelper.PartsRoughType rough_type, ref CastPreviewHelper.PartsDetailType detail_type)
	{
		rough_type = CastPreviewHelper.MPNToPartsRoughType(mpn);
		detail_type = CastPreviewHelper.MPNToPartsDetailType(mpn);
	}

	public enum PartsRoughType
	{
		セット系,
		髪系,
		その他単品系
	}

	public enum PartsDetailType
	{
		顔,
		目,
		目ハイライト,
		眉,
		ほくろ,
		唇,
		歯,
		前髪,
		後髪,
		横髪,
		エクステ髪,
		アホ毛,
		肌,
		タトゥ\u30FC,
		帽子,
		ヘッドドレス,
		トップス,
		ボトムス,
		ワンピ\u30FCス,
		水着,
		靴下,
		靴,
		前髪アクセ,
		メガネ,
		アイマスク,
		鼻アクセ,
		耳アクセ,
		手袋,
		ネックレス,
		リボン,
		腕アクセ,
		へそアクセ,
		足首アクセ,
		背中アクセ,
		尻尾,
		チョ\u30FCカ\u30FC,
		ヘアカラ\u30FC,
		私服セット,
		メイド服セット,
		ネイル,
		なし
	}
}
