public static string ToAttributeString(this HumanoidMuscleType _this) { if (_this < HumanoidMuscleType.Root) { int delta = _this - HumanoidMuscleType.Motion; return(nameof(HumanoidMuscleType.Motion) + GetTransformPostfix(delta % 7)); } if (_this < HumanoidMuscleType.Limbs) { int delta = _this - HumanoidMuscleType.Root; return(nameof(HumanoidMuscleType.Root) + GetTransformPostfix(delta % 7)); } if (_this < HumanoidMuscleType.Muscles) { int delta = _this - HumanoidMuscleType.Limbs; LimbType limb = (LimbType)(delta / 7); return(limb.ToBoneType().ToAttributeString() + GetTransformPostfix(delta % 7)); } if (_this < HumanoidMuscleType.Fingers) { int delta = _this - HumanoidMuscleType.Muscles; MuscleType muscle = (MuscleType)delta; return(muscle.ToAttributeString()); } if (_this < HumanoidMuscleType.TDoFBones) { const int armSize = (int)FingerType.Last * (int)FingerDoFType.Last; const int dofSize = (int)FingerDoFType.Last; int delta = _this - HumanoidMuscleType.Fingers; ArmType arm = (ArmType)(delta / armSize); delta = delta % armSize; FingerType finger = (FingerType)(delta / dofSize); delta = delta % dofSize; FingerDoFType dof = (FingerDoFType)delta; return($"{arm.ToBoneType().ToAttributeString()}.{finger.ToAttributeString()}.{dof.ToAttributeString()}"); } if (_this < HumanoidMuscleType.Last) { const int TDoFSize = (int)TDoFBoneType.Last; int delta = _this - HumanoidMuscleType.TDoFBones; TDoFBoneType tdof = (TDoFBoneType)(delta / TDoFSize); return($"{tdof.ToBoneType().ToAttributeString()}{GetTDoFTransformPostfix(delta % TDoFSize)}"); } throw new ArgumentException(_this.ToString()); }
public static string ToAttributeString(this FingerDoFType _this) { switch (_this) { case FingerDoFType._1Stretched: return("1 Stretched"); case FingerDoFType.Spread: return("Spread"); case FingerDoFType._2Stretched: return("2 Stretched"); case FingerDoFType._3Stretched: return("3 Stretched"); default: throw new ArgumentException(_this.ToString()); } }