diff --git a/libsecondlife-cs/AssetSystem/BodyShape/_BodyShapeParams_.cs b/libsecondlife-cs/AssetSystem/BodyShape/_BodyShapeParams_.cs index 9e84251e..f673c15d 100644 --- a/libsecondlife-cs/AssetSystem/BodyShape/_BodyShapeParams_.cs +++ b/libsecondlife-cs/AssetSystem/BodyShape/_BodyShapeParams_.cs @@ -1,10 +1,352 @@ using System; +using System.Collections.Generic; +using System.IO; +using System.Text; + using libsecondlife.AssetSystem.BodyShape; namespace libsecondlife.AssetSystem.BodyShape { class BodyShapeParams { + public string GetName( uint Param ) + { + switch( Param ) + { + default: + throw new Exception("Unknown Body Part Parameter: " + Param); + case 33: + return "Height"; + case 34: + return "Thickness"; + case 36: + return "Shoulders"; + case 37: + return "Hip Width"; + case 655: + return "Head Size"; + case 180: + return "Hair_Volume"; + case 761: + return "Hair_Volume_Small"; + case 181: + return "Hair_Big_Front"; + case 182: + return "Hair_Big_Top"; + case 183: + return "Hair_Big_Back"; + case 184: + return "Hair_Spiked"; + case 140: + return "Hair_Part_Middle"; + case 141: + return "Hair_Part_Right"; + case 142: + return "Hair_Part_Left"; + case 143: + return "Hair_Sides_Full"; + case 144: + return "Bangs_Front_Up"; + case 145: + return "Bangs_Front_Down"; + case 146: + return "Bangs_Sides_Up"; + case 147: + return "Bangs_Sides_Down"; + case 148: + return "Bangs_Back_Up"; + case 149: + return "Bangs_Back_Down"; + case 171: + return "Hair_Front_Down"; + case 172: + return "Hair_Front_Up"; + case 173: + return "Hair_Sides_Down"; + case 174: + return "Hair_Sides_Up"; + case 175: + return "Hair_Back_Down"; + case 176: + return "Hair_Back_Up"; + case 177: + return "Hair_Rumpled"; + case 178: + return "Hair_Swept_Back"; + case 179: + return "Hair_Swept_Forward"; + case 190: + return "Hair_Tilt_Right"; + case 191: + return "Hair_Tilt_Left"; + case 192: + return "Bangs_Part_Middle"; + case 674: + return "Hair_Shear_Back"; + case 762: + return "Hair_Shear_Front"; + case 754: + return "Hair_Taper_Back"; + case 755: + return "Hair_Taper_Front"; + case 1: + return "Big_Brow"; + case 2: + return "Nose_Big_Out"; + case 4: + return "Broad_Nostrils"; + case 759: + return "Low_Septum_Nose"; + case 517: + return "Wide_Nose"; + case 5: + return "Cleft_Chin"; + case 6: + return "Bulbous_Nose_Tip"; + case 7: + return "Weak_Chin"; + case 8: + return "Double_Chin"; + case 10: + return "Sunken_Cheeks"; + case 11: + return "Noble_Nose_Bridge"; + case 758: + return "Lower_Bridge_Nose"; + case 13: + return "Cleft_Chin_Upper"; + case 14: + return "High_Cheek_Bones"; + case 15: + return "Ears_Out"; + case 870: + return "Pointy_Eyebrows"; + case 17: + return "Square_Jaw"; + case 18: + return "Puffy_Upper_Cheeks"; + case 19: + return "Upturned_Nose_Tip"; + case 20: + return "Bulbous_Nose"; + case 21: + return "Upper_Eyelid_Fold"; + case 22: + return "Attached_Earlobes"; + case 23: + return "Baggy_Eyes"; + case 765: + return "Puffy_Lower_Lids"; + case 24: + return "Wide_Eyes"; + case 25: + return "Wide_Lip_Cleft"; + case 764: + return "Lip_Cleft_Deep"; + case 27: + return "Wide_Nose_Bridge"; + case 872: + return "Arced_Eyebrows"; + case 871: + return "Lower_Eyebrows"; + case 35: + return "Big_Ears"; + case 796: + return "Pointy_Ears"; + case 185: + return "Deep_Chin"; + case 186: + return "Egg_Head"; + case 187: + return "Squash_Stretch_Head"; + case 400: + return "Displace_Hair_Facial"; + case 506: + return "Mouth_Height"; + case 633: + return "Fat_Head"; + case 630: + return "Forehead_Round"; + case 631: + return "Forehead_Slant"; + case 650: + return "Eyelid_Corner_Up"; + case 880: + return "Eyelid_Inner_Corner_Up"; + case 653: + return "Tall_Lips"; + case 656: + return "Crooked_Nose"; + case 657: + return "Smile_Mouth"; + case 658: + return "Frown_Mouth"; + case 797: + return "Fat_Upper_Lip"; + case 798: + return "Fat_Lower_Lip"; + case 660: + return "Shear_Head"; + case 770: + return "Elongate_Head"; + case 663: + return "Shift_Mouth"; + case 664: + return "Pop_Eye"; + case 760: + return "Jaw_Angle"; + case 665: + return "Jaw_Jut"; + case 686: + return "Head_Eyes_Big"; + case 767: + return "Bug_Eyed_Head"; + case 518: + return "Eyelashes_Long"; + case 626: + return "Big_Chest"; + case 627: + return "Small_Chest"; + case 843: + return "No_Chest"; + case 106: + return "Muscular_Torso"; + case 648: + return "Scrawny_Torso"; + case 677: + return "Scrawny_Torso_Male"; + case 634: + return "Fat_Torso"; + case 507: + return "Breast_Gravity"; + case 628: + return "Displace_Loose_Upperbody"; + case 840: + return "Shirtsleeve_flair"; + case 684: + return "Breast_Female_Cleavage"; + case 685: + return "Chest_Male_No_Pecs"; + case 151: + return "Big_Butt_Legs"; + case 794: + return "Small_Butt"; + case 152: + return "Muscular_Legs"; + case 651: + return "Scrawny_Legs"; + case 853: + return "Bowed_Legs"; + case 500: + return "Shoe_Heel_Height"; + case 501: + return "Shoe_Platform_Height"; + case 508: + return "Shoe_Platform_Width"; + case 509: + return "Shoe_Heel_Point"; + case 510: + return "Shoe_Heel_Thick"; + case 511: + return "Shoe_Toe_Point"; + case 512: + return "Shoe_Toe_Square"; + case 654: + return "Shoe_Toe_Thick"; + case 515: + return "Foot_Size"; + case 516: + return "Displace_Loose_Lowerbody"; + case 625: + return "Leg_Pantflair"; + case 793: + return "Leg_Longcuffs"; + case 638: + return "Low_Crotch"; + case 635: + return "Fat_Legs"; + case 879: + return "Male_Package"; + case 679: + return "Eyeball_Size"; + case 687: + return "Eyeball_Size"; + case 694: + return "Eyeball_Size"; + case 695: + return "Eyeball_Size"; + case 680: + return "Eyeball_Size"; + case 688: + return "Eyeball_Size"; + case 681: + return "Eyeball_Size"; + case 691: + return "Eyeball_Size"; + case 845: + return "skirt_poofy"; + case 846: + return "skirt_loose"; + case 866: + return "skirt_tight"; + case 867: + return "skirt_smallbutt"; + case 848: + return "skirt_bustle"; + case 847: + return "skirt_bowlegs"; + case 852: + return "skirt_bigbutt"; + case 849: + return "skirt_belly"; + case 110: + return "Red Skin"; + case 828: + return "Loose Upper Clothing"; + case 816: + return "Loose Lower Clothing"; + case 799: + return "Lip Ratio"; + case 155: + return "Lip Width"; + case 196: + return "Eye Spacing"; + case 193: + return "Head Shape"; + case 608: + return "bottom length lower"; + case 609: + return "open jacket"; + case 646: + return "Egg_Head"; + case 647: + return "Squash_Stretch_Head"; + case 649: + return "Torso Muscles"; + case 682: + return "Head Size"; + case 690: + return "Eye Size"; + case 795: + return "Butt Size"; + case 841: + return "Bowed_Legs"; + case 753: + return "Saddlebags"; + case 676: + return "Love_Handles"; + case 863: + return "skirt_looseness"; + case 16: + return "Pointy_Eyebrows"; + case 757: + return "Lower_Eyebrows"; + case 31: + return "Arced_Eyebrows"; + case 877: + return "Jacket Wrinkles"; + } + } public string GetLabel( uint Param ) { switch( Param ) @@ -343,342 +685,656 @@ namespace libsecondlife.AssetSystem.BodyShape return "Jacket Wrinkles"; } } - public string GetName( uint Param ) + public string GetLabelMin( uint Param ) { switch( Param ) { default: throw new Exception("Unknown Body Part Parameter: " + Param); case 33: - return "Height"; + return "Short"; case 34: - return "Thickness"; + return "Body Thin"; case 36: - return "Shoulders"; + return "Narrow"; case 37: - return "Hip Width"; + return "Narrow"; case 655: - return "Head Size"; + return "Small Head"; case 180: - return "Hair_Volume"; + return "Less"; case 761: - return "Hair_Volume_Small"; + return "Less"; case 181: - return "Hair_Big_Front"; + return "Less"; case 182: - return "Hair_Big_Top"; + return "Less"; case 183: - return "Hair_Big_Back"; + return "Less"; case 184: - return "Hair_Spiked"; + return "No Spikes"; case 140: - return "Hair_Part_Middle"; + return "No Part"; case 141: - return "Hair_Part_Right"; + return "No Part"; case 142: - return "Hair_Part_Left"; + return "No Part"; case 143: - return "Hair_Sides_Full"; + return "Mowhawk"; case 144: - return "Bangs_Front_Up"; + return "Bangs"; case 145: - return "Bangs_Front_Down"; + return "Bangs"; case 146: - return "Bangs_Sides_Up"; + return "Side Bangs"; case 147: - return "Bangs_Sides_Down"; + return "Side Bangs"; case 148: - return "Bangs_Back_Up"; + return "Back Bangs"; case 149: - return "Bangs_Back_Down"; + return "Back Bangs"; case 171: - return "Hair_Front_Down"; + return "Front Hair"; case 172: - return "Hair_Front_Up"; + return "Front Hair"; case 173: - return "Hair_Sides_Down"; + return "Sides Hair"; case 174: - return "Hair_Sides_Up"; + return "Sides Hair"; case 175: - return "Hair_Back_Down"; + return "Back Hair"; case 176: - return "Hair_Back_Up"; + return "Back Hair"; case 177: - return "Hair_Rumpled"; + return "Smooth Hair"; case 178: - return "Hair_Swept_Back"; + return "NotHair"; case 179: - return "Hair_Swept_Forward"; + return "Hair"; case 190: - return "Hair_Tilt_Right"; + return "Hair"; case 191: - return "Hair_Tilt_Left"; + return "Hair"; case 192: - return "Bangs_Part_Middle"; + return "No Part"; case 674: - return "Hair_Shear_Back"; + return "Full Back"; case 762: - return "Hair_Shear_Front"; + return "Full Front"; case 754: - return "Hair_Taper_Back"; + return "Wide Back"; case 755: - return "Hair_Taper_Front"; + return "Wide Front"; case 1: - return "Big_Brow"; + return "Small"; case 2: - return "Nose_Big_Out"; + return "Small"; case 4: - return "Broad_Nostrils"; + return "Narrow"; case 759: - return "Low_Septum_Nose"; + return "High"; case 517: - return "Wide_Nose"; + return "Narrow"; case 5: - return "Cleft_Chin"; + return "Round"; case 6: - return "Bulbous_Nose_Tip"; + return "Pointy"; case 7: - return "Weak_Chin"; + return "Chin Out"; case 8: - return "Double_Chin"; + return "Tight Chin"; case 10: - return "Sunken_Cheeks"; + return "Well-Fed"; case 11: - return "Noble_Nose_Bridge"; + return "Low"; case 758: - return "Lower_Bridge_Nose"; + return "Low"; case 13: - return "Cleft_Chin_Upper"; + return "Round"; case 14: - return "High_Cheek_Bones"; + return "Low"; case 15: - return "Ears_Out"; + return "In"; case 870: - return "Pointy_Eyebrows"; + return "Smooth"; case 17: - return "Square_Jaw"; + return "Pointy"; case 18: - return "Puffy_Upper_Cheeks"; + return "Thin"; case 19: - return "Upturned_Nose_Tip"; + return "Downturned"; case 20: - return "Bulbous_Nose"; + return "Thin Nose"; case 21: - return "Upper_Eyelid_Fold"; + return "Uncreased"; case 22: - return "Attached_Earlobes"; + return "Unattached"; case 23: - return "Baggy_Eyes"; + return "Smooth"; case 765: - return "Puffy_Lower_Lids"; + return "Flat"; case 24: - return "Wide_Eyes"; + return "Narrow"; case 25: - return "Wide_Lip_Cleft"; + return "Narrow"; case 764: - return "Lip_Cleft_Deep"; + return "Shallow"; case 27: - return "Wide_Nose_Bridge"; + return "Narrow"; case 872: - return "Arced_Eyebrows"; + return "Flat"; case 871: - return "Lower_Eyebrows"; + return "Higher"; case 35: - return "Big_Ears"; + return "Small"; case 796: - return "Pointy_Ears"; + return "Flat"; case 185: - return "Deep_Chin"; + return "Shallow"; case 186: - return "Egg_Head"; + return "Chin Heavy"; case 187: - return "Squash_Stretch_Head"; + return "Squash Head"; case 400: - return "Displace_Hair_Facial"; + return "Cropped Hair"; case 506: - return "Mouth_Height"; + return "High"; case 633: - return "Fat_Head"; + return "Skinny"; case 630: - return "Forehead_Round"; + return "Less"; case 631: - return "Forehead_Slant"; + return "Less"; case 650: - return "Eyelid_Corner_Up"; + return "Corner Down"; case 880: - return "Eyelid_Inner_Corner_Up"; + return "Corner Down"; case 653: - return "Tall_Lips"; + return "Less Full"; case 656: - return "Crooked_Nose"; + return "Nose Left"; case 657: - return "Smile_Mouth"; + return "Corner Normal"; case 658: - return "Frown_Mouth"; + return "Corner Normal"; case 797: - return "Fat_Upper_Lip"; + return "Normal Upper"; case 798: - return "Fat_Lower_Lip"; + return "Normal Lower"; case 660: - return "Shear_Head"; + return "Shear Left"; case 770: - return "Elongate_Head"; + return "Flat Head"; case 663: - return "Shift_Mouth"; + return "Shift Left"; case 664: - return "Pop_Eye"; + return "Pop Right Eye"; case 760: - return "Jaw_Angle"; + return "Low Jaw"; case 665: - return "Jaw_Jut"; + return "Overbite"; case 686: - return "Head_Eyes_Big"; + return "Beady Eyes"; case 767: - return "Bug_Eyed_Head"; + return "Sunken Eyes"; case 518: - return "Eyelashes_Long"; + return "Short"; case 626: - return "Big_Chest"; + return "Small"; case 627: - return "Small_Chest"; + return "Large"; case 843: - return "No_Chest"; + return "Some"; case 106: - return "Muscular_Torso"; + return "Regular"; case 648: - return "Scrawny_Torso"; + return "Regular"; case 677: - return "Scrawny_Torso_Male"; + return "Regular"; case 634: - return "Fat_Torso"; + return "skinny"; case 507: - return "Breast_Gravity"; - case 628: - return "Displace_Loose_Upperbody"; + return "Less Gravity"; case 840: - return "Shirtsleeve_flair"; + return "Tight Sleeves"; case 684: - return "Breast_Female_Cleavage"; + return "Separate"; case 685: - return "Chest_Male_No_Pecs"; + return "Big Pectorals"; case 151: - return "Big_Butt_Legs"; + return "Regular"; case 794: - return "Small_Butt"; + return "Regular"; case 152: - return "Muscular_Legs"; + return "Regular Muscles"; case 651: - return "Scrawny_Legs"; - case 853: - return "Bowed_Legs"; + return "Regular Muscles"; case 500: - return "Shoe_Heel_Height"; + return "Low Heels"; case 501: - return "Shoe_Platform_Height"; + return "Low Platforms"; case 508: - return "Shoe_Platform_Width"; + return "Narrow"; case 509: - return "Shoe_Heel_Point"; + return "Default Heels"; case 510: - return "Shoe_Heel_Thick"; + return "default Heels"; case 511: - return "Shoe_Toe_Point"; + return "Default Toe"; case 512: - return "Shoe_Toe_Square"; + return "Default Toe"; case 654: - return "Shoe_Toe_Thick"; + return "Flat Toe"; case 515: - return "Foot_Size"; - case 516: - return "Displace_Loose_Lowerbody"; + return "Small"; case 625: - return "Leg_Pantflair"; - case 793: - return "Leg_Longcuffs"; + return "Tight Cuffs"; case 638: - return "Low_Crotch"; + return "High and Tight"; case 635: - return "Fat_Legs"; + return "skinny"; case 879: - return "Male_Package"; + return "Coin Purse"; case 679: - return "Eyeball_Size"; + return "small eye"; case 687: - return "Eyeball_Size"; + return "small eye"; case 694: - return "Eyeball_Size"; + return "small eye"; case 695: - return "Eyeball_Size"; + return "small eye"; case 680: - return "Eyeball_Size"; + return "small eye"; case 688: - return "Eyeball_Size"; + return "small eye"; case 681: - return "Eyeball_Size"; + return "small eye"; case 691: - return "Eyeball_Size"; + return "small eye"; case 845: - return "skirt_poofy"; + return "less poofy"; case 846: - return "skirt_loose"; + return "form fitting"; case 866: - return "skirt_tight"; + return "form fitting"; case 867: - return "skirt_smallbutt"; + return "form fitting"; case 848: - return "skirt_bustle"; - case 847: - return "skirt_bowlegs"; + return "no bustle"; case 852: - return "skirt_bigbutt"; - case 849: - return "skirt_belly"; + return "less"; case 110: - return "Red Skin"; + return "Pale"; case 828: - return "Loose Upper Clothing"; + return "Tight Shirt"; case 816: - return "Loose Lower Clothing"; + return "Tight Pants"; case 799: - return "Lip Ratio"; + return "More Upper Lip"; case 155: - return "Lip Width"; + return "Narrow Lips"; case 196: - return "Eye Spacing"; + return "Close Set Eyes"; case 193: - return "Head Shape"; + return "More Square"; case 608: - return "bottom length lower"; + return "Short"; case 609: - return "open jacket"; + return "Open"; case 646: - return "Egg_Head"; + return "Chin Heavy"; case 647: - return "Squash_Stretch_Head"; + return "Squash Head"; case 649: - return "Torso Muscles"; + return "Less Muscular"; case 682: - return "Head Size"; + return "Small Head"; case 690: - return "Eye Size"; + return "Beady Eyes"; case 795: - return "Butt Size"; + return "Flat Butt"; case 841: - return "Bowed_Legs"; + return "Knock Kneed"; case 753: - return "Saddlebags"; + return "Less Saddle"; case 676: - return "Love_Handles"; + return "Less Love"; case 863: - return "skirt_looseness"; + return "Tight Skirt"; case 16: - return "Pointy_Eyebrows"; + return "Smooth"; case 757: - return "Lower_Eyebrows"; + return "Higher"; case 31: - return "Arced_Eyebrows"; + return "Flat"; case 877: - return "Jacket Wrinkles"; + return "No Wrinkles"; + } + } + public string GetLabelMax( uint Param ) + { + switch( Param ) + { + default: + throw new Exception("Unknown Body Part Parameter: " + Param); + case 33: + return "Tall"; + case 34: + return "Body Thick"; + case 36: + return "Broad"; + case 37: + return "Wide"; + case 655: + return "Big Head"; + case 180: + return "More"; + case 761: + return "More"; + case 181: + return "More"; + case 182: + return "More"; + case 183: + return "More"; + case 184: + return "Big Spikes"; + case 140: + return "Part"; + case 141: + return "Part"; + case 142: + return "Part"; + case 143: + return "Full Sides"; + case 144: + return "Bangs Up"; + case 145: + return "Bangs Down"; + case 146: + return "Side Bangs Up"; + case 147: + return "Side Bangs Down"; + case 148: + return "Back Bangs Up"; + case 149: + return "Back Bangs Down"; + case 171: + return "Front Hair Down"; + case 172: + return "Front Hair Up"; + case 173: + return "Sides Hair Down"; + case 174: + return "Sides Hair Up"; + case 175: + return "Back Hair Down"; + case 176: + return "Back Hair Up"; + case 177: + return "Rumpled Hair"; + case 178: + return "Swept Back"; + case 179: + return "Swept Forward"; + case 190: + return "Tilt Right"; + case 191: + return "Tilt Left"; + case 192: + return "Part Bangs"; + case 674: + return "Sheared Back"; + case 762: + return "Sheared Front"; + case 754: + return "Narrow Back"; + case 755: + return "Narrow Front"; + case 1: + return "Large"; + case 2: + return "Large"; + case 4: + return "Broad"; + case 759: + return "Low"; + case 517: + return "Wide"; + case 5: + return "Cleft"; + case 6: + return "Bulbous"; + case 7: + return "Chin In"; + case 8: + return "Double Chin"; + case 10: + return "Sunken"; + case 11: + return "High"; + case 758: + return "High"; + case 13: + return "Cleft"; + case 14: + return "High"; + case 15: + return "Out"; + case 870: + return "Pointy"; + case 17: + return "Square"; + case 18: + return "Puffy"; + case 19: + return "Upturned"; + case 20: + return "Bulbous Nose"; + case 21: + return "Creased"; + case 22: + return "Attached"; + case 23: + return "Baggy"; + case 765: + return "Puffy"; + case 24: + return "Wide"; + case 25: + return "Wide"; + case 764: + return "Deep"; + case 27: + return "Wide"; + case 872: + return "Arced"; + case 871: + return "Lower"; + case 35: + return "Large"; + case 796: + return "Pointy"; + case 185: + return "Deep"; + case 186: + return "Forehead Heavy"; + case 187: + return "Stretch Head"; + case 400: + return "Bushy Hair"; + case 506: + return "Low"; + case 633: + return "Fat"; + case 630: + return "More"; + case 631: + return "More"; + case 650: + return "Corner Up"; + case 880: + return "Corner Up"; + case 653: + return "More Full"; + case 656: + return "Nose Right"; + case 657: + return "Corner Up"; + case 658: + return "Corner Down"; + case 797: + return "Fat Upper"; + case 798: + return "Fat Lower"; + case 660: + return "Shear Right"; + case 770: + return "Long Head"; + case 663: + return "Shift Right"; + case 664: + return "Pop Left Eye"; + case 760: + return "High Jaw"; + case 665: + return "Underbite"; + case 686: + return "Anime Eyes"; + case 767: + return "Bug Eyes"; + case 518: + return "Long"; + case 626: + return "Large"; + case 627: + return "Small"; + case 843: + return "None"; + case 106: + return "Muscular"; + case 648: + return "Scrawny"; + case 677: + return "Scrawny"; + case 634: + return "fat"; + case 507: + return "More Gravity"; + case 840: + return "Loose Sleeves"; + case 684: + return "Join"; + case 685: + return "Sunken Chest"; + case 151: + return "Large"; + case 794: + return "Small"; + case 152: + return "More Muscles"; + case 651: + return "Less Muscles"; + case 500: + return "High Heels"; + case 501: + return "High Platforms"; + case 508: + return "Wide"; + case 509: + return "Pointy Heels"; + case 510: + return "Thick Heels"; + case 511: + return "Pointy Toe"; + case 512: + return "Square Toe"; + case 654: + return "Thick Toe"; + case 515: + return "Big"; + case 625: + return "Flared Cuffs"; + case 638: + return "Low and Loose"; + case 635: + return "fat"; + case 879: + return "Duffle Bag"; + case 679: + return "big eye"; + case 687: + return "big eye"; + case 694: + return "big eye"; + case 695: + return "big eye"; + case 680: + return "big eye"; + case 688: + return "big eye"; + case 681: + return "big eye"; + case 691: + return "big eye"; + case 845: + return "more poofy"; + case 846: + return "loose"; + case 866: + return "loose"; + case 867: + return "loose"; + case 848: + return "more bustle"; + case 852: + return "more"; + case 110: + return "Ruddy"; + case 828: + return "Loose Shirt"; + case 816: + return "Loose Pants"; + case 799: + return "More Lower Lip"; + case 155: + return "Wide Lips"; + case 196: + return "Far Set Eyes"; + case 193: + return "More Round"; + case 608: + return "Long"; + case 609: + return "Closed"; + case 646: + return "Forehead Heavy"; + case 647: + return "Stretch Head"; + case 649: + return "More Muscular"; + case 682: + return "Big Head"; + case 690: + return "Anime Eyes"; + case 795: + return "Big Butt"; + case 841: + return "Bow Legged"; + case 753: + return "More Saddle"; + case 676: + return "More Love"; + case 863: + return "Poofy Skirt"; + case 16: + return "Pointy"; + case 757: + return "Lower"; + case 31: + return "Arced"; + case 877: + return "Wrinkles"; } } public float GetValueMin( uint Param ) @@ -1702,336 +2358,358 @@ namespace libsecondlife.AssetSystem.BodyShape default: throw new Exception("Unknown Body Part Parameter: " + Param); case 33: - return ( (Value > -2.3f) && (Value < 2f) ); + return ( (Value >= -2.3f) && (Value <= 2f) ); case 34: - return ( (Value > -0.7f) && (Value < 1.5f) ); + return ( (Value >= -0.7f) && (Value <= 1.5f) ); case 36: - return ( (Value > -1.8f) && (Value < 1.4f) ); + return ( (Value >= -1.8f) && (Value <= 1.4f) ); case 37: - return ( (Value > -3.2f) && (Value < 2.8f) ); + return ( (Value >= -3.2f) && (Value <= 2.8f) ); case 655: - return ( (Value > -.25f) && (Value < .10f) ); + return ( (Value >= -.25f) && (Value <= .10f) ); case 180: - return ( (Value > 0f) && (Value < 1.3f) ); + return ( (Value >= 0f) && (Value <= 1.3f) ); case 761: - return ( (Value > 0f) && (Value < 1.3f) ); + return ( (Value >= 0f) && (Value <= 1.3f) ); case 181: - return ( (Value > -1f) && (Value < 1f) ); + return ( (Value >= -1f) && (Value <= 1f) ); case 182: - return ( (Value > -1f) && (Value < 1f) ); + return ( (Value >= -1f) && (Value <= 1f) ); case 183: - return ( (Value > -1f) && (Value < 1f) ); + return ( (Value >= -1f) && (Value <= 1f) ); case 184: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 140: - return ( (Value > 0f) && (Value < 2f) ); + return ( (Value >= 0f) && (Value <= 2f) ); case 141: - return ( (Value > 0f) && (Value < 2f) ); + return ( (Value >= 0f) && (Value <= 2f) ); case 142: - return ( (Value > 0f) && (Value < 2f) ); + return ( (Value >= 0f) && (Value <= 2f) ); case 143: - return ( (Value > -4f) && (Value < 1.5f) ); + return ( (Value >= -4f) && (Value <= 1.5f) ); case 144: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 145: - return ( (Value > 0f) && (Value < 5f) ); + return ( (Value >= 0f) && (Value <= 5f) ); case 146: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 147: - return ( (Value > 0f) && (Value < 2f) ); + return ( (Value >= 0f) && (Value <= 2f) ); case 148: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 149: - return ( (Value > 0f) && (Value < 2f) ); + return ( (Value >= 0f) && (Value <= 2f) ); case 171: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 172: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 173: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 174: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 175: - return ( (Value > 0f) && (Value < 3f) ); + return ( (Value >= 0f) && (Value <= 3f) ); case 176: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 177: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 178: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 179: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 190: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 191: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 192: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 674: - return ( (Value > -1f) && (Value < 2f) ); + return ( (Value >= -1f) && (Value <= 2f) ); case 762: - return ( (Value > 0f) && (Value < 3f) ); + return ( (Value >= 0f) && (Value <= 3f) ); case 754: - return ( (Value > -1f) && (Value < 2f) ); + return ( (Value >= -1f) && (Value <= 2f) ); case 755: - return ( (Value > -1.5f) && (Value < 1.5f) ); + return ( (Value >= -1.5f) && (Value <= 1.5f) ); case 1: - return ( (Value > -.3f) && (Value < 2f) ); + return ( (Value >= -.3f) && (Value <= 2f) ); case 2: - return ( (Value > -0.8f) && (Value < 2.5f) ); + return ( (Value >= -0.8f) && (Value <= 2.5f) ); case 4: - return ( (Value > -.5f) && (Value < 1f) ); + return ( (Value >= -.5f) && (Value <= 1f) ); case 759: - return ( (Value > -1f) && (Value < 1.5f) ); + return ( (Value >= -1f) && (Value <= 1.5f) ); case 517: - return ( (Value > -.5f) && (Value < 1f) ); + return ( (Value >= -.5f) && (Value <= 1f) ); case 5: - return ( (Value > -.1f) && (Value < 1f) ); + return ( (Value >= -.1f) && (Value <= 1f) ); case 6: - return ( (Value > -.3f) && (Value < 1f) ); + return ( (Value >= -.3f) && (Value <= 1f) ); case 7: - return ( (Value > -.5f) && (Value < .5f) ); + return ( (Value >= -.5f) && (Value <= .5f) ); case 8: - return ( (Value > -.5f) && (Value < 1.5f) ); + return ( (Value >= -.5f) && (Value <= 1.5f) ); case 10: - return ( (Value > -1.5f) && (Value < 3f) ); + return ( (Value >= -1.5f) && (Value <= 3f) ); case 11: - return ( (Value > -.5f) && (Value < 1.5f) ); + return ( (Value >= -.5f) && (Value <= 1.5f) ); case 758: - return ( (Value > -1.5f) && (Value < 1.5f) ); + return ( (Value >= -1.5f) && (Value <= 1.5f) ); case 13: - return ( (Value > 0f) && (Value < 1.5f) ); + return ( (Value >= 0f) && (Value <= 1.5f) ); case 14: - return ( (Value > -.5f) && (Value < 1f) ); + return ( (Value >= -.5f) && (Value <= 1f) ); case 15: - return ( (Value > -.5f) && (Value < 1.5f) ); + return ( (Value >= -.5f) && (Value <= 1.5f) ); case 870: - return ( (Value > -.5f) && (Value < 1f) ); + return ( (Value >= -.5f) && (Value <= 1f) ); case 17: - return ( (Value > -.5f) && (Value < 1f) ); + return ( (Value >= -.5f) && (Value <= 1f) ); case 18: - return ( (Value > -1.5f) && (Value < 2.5f) ); + return ( (Value >= -1.5f) && (Value <= 2.5f) ); case 19: - return ( (Value > -1.5f) && (Value < 1f) ); + return ( (Value >= -1.5f) && (Value <= 1f) ); case 20: - return ( (Value > -.5f) && (Value < 1.5f) ); + return ( (Value >= -.5f) && (Value <= 1.5f) ); case 21: - return ( (Value > -0.2f) && (Value < 1.3f) ); + return ( (Value >= -0.2f) && (Value <= 1.3f) ); case 22: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 23: - return ( (Value > -.5f) && (Value < 1.5f) ); + return ( (Value >= -.5f) && (Value <= 1.5f) ); case 765: - return ( (Value > -.3f) && (Value < 2.5f) ); + return ( (Value >= -.3f) && (Value <= 2.5f) ); case 24: - return ( (Value > -1.5f) && (Value < 2f) ); + return ( (Value >= -1.5f) && (Value <= 2f) ); case 25: - return ( (Value > -.8f) && (Value < 1.5f) ); + return ( (Value >= -.8f) && (Value <= 1.5f) ); case 764: - return ( (Value > -.5f) && (Value < 1.2f) ); + return ( (Value >= -.5f) && (Value <= 1.2f) ); case 27: - return ( (Value > -1.3f) && (Value < 1.2f) ); + return ( (Value >= -1.3f) && (Value <= 1.2f) ); case 872: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 871: - return ( (Value > -2f) && (Value < 2f) ); + return ( (Value >= -2f) && (Value <= 2f) ); case 35: - return ( (Value > -1f) && (Value < 2f) ); + return ( (Value >= -1f) && (Value <= 2f) ); case 796: - return ( (Value > -.4f) && (Value < 3f) ); + return ( (Value >= -.4f) && (Value <= 3f) ); case 185: - return ( (Value > -1f) && (Value < 1f) ); + return ( (Value >= -1f) && (Value <= 1f) ); case 186: - return ( (Value > -1.3f) && (Value < 1f) ); + return ( (Value >= -1.3f) && (Value <= 1f) ); case 187: - return ( (Value > -.5f) && (Value < 1f) ); + return ( (Value >= -.5f) && (Value <= 1f) ); case 400: - return ( (Value > 0f) && (Value < 2f) ); + return ( (Value >= 0f) && (Value <= 2f) ); case 506: - return ( (Value > -2f) && (Value < 2f) ); + return ( (Value >= -2f) && (Value <= 2f) ); case 633: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 630: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 631: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 650: - return ( (Value > -1.3f) && (Value < 1.2f) ); + return ( (Value >= -1.3f) && (Value <= 1.2f) ); case 880: - return ( (Value > -1.3f) && (Value < 1.2f) ); + return ( (Value >= -1.3f) && (Value <= 1.2f) ); case 653: - return ( (Value > -1f) && (Value < 2f) ); + return ( (Value >= -1f) && (Value <= 2f) ); case 656: - return ( (Value > -2f) && (Value < 2f) ); + return ( (Value >= -2f) && (Value <= 2f) ); case 657: - return ( (Value > 0f) && (Value < 1.4f) ); + return ( (Value >= 0f) && (Value <= 1.4f) ); case 658: - return ( (Value > 0f) && (Value < 1.2f) ); + return ( (Value >= 0f) && (Value <= 1.2f) ); case 797: - return ( (Value > 0f) && (Value < 1.5f) ); + return ( (Value >= 0f) && (Value <= 1.5f) ); case 798: - return ( (Value > 0f) && (Value < 1.5f) ); + return ( (Value >= 0f) && (Value <= 1.5f) ); case 660: - return ( (Value > -2f) && (Value < 2f) ); + return ( (Value >= -2f) && (Value <= 2f) ); case 770: - return ( (Value > -1f) && (Value < 1f) ); + return ( (Value >= -1f) && (Value <= 1f) ); case 663: - return ( (Value > -2f) && (Value < 2f) ); + return ( (Value >= -2f) && (Value <= 2f) ); case 664: - return ( (Value > -1.3f) && (Value < 1.3f) ); + return ( (Value >= -1.3f) && (Value <= 1.3f) ); case 760: - return ( (Value > -1.2f) && (Value < 2f) ); + return ( (Value >= -1.2f) && (Value <= 2f) ); case 665: - return ( (Value > -2f) && (Value < 2f) ); + return ( (Value >= -2f) && (Value <= 2f) ); case 686: - return ( (Value > -2f) && (Value < 2f) ); + return ( (Value >= -2f) && (Value <= 2f) ); case 767: - return ( (Value > -2f) && (Value < 2f) ); + return ( (Value >= -2f) && (Value <= 2f) ); case 518: - return ( (Value > -.3f) && (Value < 1.5f) ); + return ( (Value >= -.3f) && (Value <= 1.5f) ); case 626: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 627: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 843: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 106: - return ( (Value > 0f) && (Value < 1.4f) ); + return ( (Value >= 0f) && (Value <= 1.4f) ); case 648: - return ( (Value > 0f) && (Value < 1.3f) ); + return ( (Value >= 0f) && (Value <= 1.3f) ); case 677: - return ( (Value > 0f) && (Value < 1.3f) ); + return ( (Value >= 0f) && (Value <= 1.3f) ); case 634: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 507: - return ( (Value > -1.5f) && (Value < 2f) ); + return ( (Value >= -1.5f) && (Value <= 2f) ); case 628: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 840: - return ( (Value > 0f) && (Value < 1.5f) ); + return ( (Value >= 0f) && (Value <= 1.5f) ); case 684: - return ( (Value > -.3f) && (Value < 1.3f) ); + return ( (Value >= -.3f) && (Value <= 1.3f) ); case 685: - return ( (Value > -.5f) && (Value < 1.1f) ); + return ( (Value >= -.5f) && (Value <= 1.1f) ); case 151: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 794: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 152: - return ( (Value > 0f) && (Value < 1.5f) ); + return ( (Value >= 0f) && (Value <= 1.5f) ); case 651: - return ( (Value > 0f) && (Value < 1.5f) ); + return ( (Value >= 0f) && (Value <= 1.5f) ); case 853: - return ( (Value > -1f) && (Value < 1f) ); + return ( (Value >= -1f) && (Value <= 1f) ); case 500: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 501: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 508: - return ( (Value > -1f) && (Value < 2f) ); + return ( (Value >= -1f) && (Value <= 2f) ); case 509: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 510: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 511: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 512: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 654: - return ( (Value > 0f) && (Value < 2f) ); + return ( (Value >= 0f) && (Value <= 2f) ); case 515: - return ( (Value > -1f) && (Value < 3f) ); + return ( (Value >= -1f) && (Value <= 3f) ); case 516: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 625: - return ( (Value > 0f) && (Value < 1.5f) ); + return ( (Value >= 0f) && (Value <= 1.5f) ); case 793: - return ( (Value > 0f) && (Value < 3f) ); + return ( (Value >= 0f) && (Value <= 3f) ); case 638: - return ( (Value > 0f) && (Value < 1.3f) ); + return ( (Value >= 0f) && (Value <= 1.3f) ); case 635: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 879: - return ( (Value > -.5f) && (Value < 2f) ); + return ( (Value >= -.5f) && (Value <= 2f) ); case 679: - return ( (Value > -.25f) && (Value < .10f) ); + return ( (Value >= -.25f) && (Value <= .10f) ); case 687: - return ( (Value > -.25f) && (Value < .25f) ); + return ( (Value >= -.25f) && (Value <= .25f) ); case 694: - return ( (Value > -.25f) && (Value < .10f) ); + return ( (Value >= -.25f) && (Value <= .10f) ); case 695: - return ( (Value > -.25f) && (Value < .25f) ); + return ( (Value >= -.25f) && (Value <= .25f) ); case 680: - return ( (Value > -.25f) && (Value < .10f) ); + return ( (Value >= -.25f) && (Value <= .10f) ); case 688: - return ( (Value > -.25f) && (Value < .25f) ); + return ( (Value >= -.25f) && (Value <= .25f) ); case 681: - return ( (Value > -.25f) && (Value < .10f) ); + return ( (Value >= -.25f) && (Value <= .10f) ); case 691: - return ( (Value > -.25f) && (Value < .25f) ); + return ( (Value >= -.25f) && (Value <= .25f) ); case 845: - return ( (Value > 0f) && (Value < 1.5f) ); + return ( (Value >= 0f) && (Value <= 1.5f) ); case 846: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 866: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 867: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 848: - return ( (Value > 0f) && (Value < 2f) ); + return ( (Value >= 0f) && (Value <= 2f) ); case 847: - return ( (Value > -1f) && (Value < 1f) ); + return ( (Value >= -1f) && (Value <= 1f) ); case 852: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 849: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 110: - return ( (Value > 0f) && (Value < 0.1f) ); + return ( (Value >= 0f) && (Value <= 0.1f) ); case 828: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 816: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 799: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 155: - return ( (Value > -0.9f) && (Value < 1.3f) ); + return ( (Value >= -0.9f) && (Value <= 1.3f) ); case 196: - return ( (Value > -2f) && (Value < 1f) ); + return ( (Value >= -2f) && (Value <= 1f) ); case 193: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 608: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 609: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 646: - return ( (Value > -1.3f) && (Value < 1f) ); + return ( (Value >= -1.3f) && (Value <= 1f) ); case 647: - return ( (Value > -0.5f) && (Value < 1f) ); + return ( (Value >= -0.5f) && (Value <= 1f) ); case 649: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 682: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 690: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 795: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 841: - return ( (Value > -1f) && (Value < 1f) ); + return ( (Value >= -1f) && (Value <= 1f) ); case 753: - return ( (Value > -0.5f) && (Value < 3f) ); + return ( (Value >= -0.5f) && (Value <= 3f) ); case 676: - return ( (Value > -1f) && (Value < 2f) ); + return ( (Value >= -1f) && (Value <= 2f) ); case 863: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); case 16: - return ( (Value > -.5f) && (Value < 3f) ); + return ( (Value >= -.5f) && (Value <= 3f) ); case 757: - return ( (Value > -4f) && (Value < 2f) ); + return ( (Value >= -4f) && (Value <= 2f) ); case 31: - return ( (Value > 0f) && (Value < 2f) ); + return ( (Value >= 0f) && (Value <= 2f) ); case 877: - return ( (Value > 0f) && (Value < 1f) ); + return ( (Value >= 0f) && (Value <= 1f) ); } } + public bool IsValid( Dictionary BodyShape ) + { + foreach(KeyValuePair kvp in BodyShape) + { + if( !IsValueValid(kvp.Key, kvp.Value) ) { return false; } + } + + return true; + } + public string ToString( Dictionary BodyShape ) + { + StringWriter sw = new StringWriter(); + + foreach(KeyValuePair kvp in BodyShape) + { + sw.Write( kvp.Key + ":" ); + sw.Write( GetLabel(kvp.Key) + ":" ); + sw.WriteLine( kvp.Value ); + } + + return sw.ToString(); + } } } diff --git a/libsecondlife-cs/examples/BodyPartMorphGenerator/BodyPartMorphGenerator.csproj b/libsecondlife-cs/examples/BodyPartMorphGenerator/BodyPartMorphGenerator.csproj index 6d704654..a3edbc6f 100644 --- a/libsecondlife-cs/examples/BodyPartMorphGenerator/BodyPartMorphGenerator.csproj +++ b/libsecondlife-cs/examples/BodyPartMorphGenerator/BodyPartMorphGenerator.csproj @@ -9,7 +9,7 @@ Properties BodyPartMorphGenerator GenBodyParams - BodyPartMorphGenerator.genbodyparams + BodyPartMorphGenerator.GenBodyParams true @@ -34,7 +34,7 @@ - + diff --git a/libsecondlife-cs/examples/BodyPartMorphGenerator/genbodyparams.cs b/libsecondlife-cs/examples/BodyPartMorphGenerator/genbodyparams.cs index 436a0198..4f57789f 100644 --- a/libsecondlife-cs/examples/BodyPartMorphGenerator/genbodyparams.cs +++ b/libsecondlife-cs/examples/BodyPartMorphGenerator/genbodyparams.cs @@ -6,7 +6,7 @@ using System.Xml; namespace BodyPartMorphGenerator { - class genbodyparams + class GenBodyParams { static void Main(string[] args) { @@ -44,6 +44,10 @@ namespace BodyPartMorphGenerator StringWriter MasterClass = new StringWriter(); MasterClass.WriteLine("using System;"); + MasterClass.WriteLine("using System.Collections.Generic;"); + MasterClass.WriteLine("using System.IO;"); + MasterClass.WriteLine("using System.Text;"); + MasterClass.WriteLine(); MasterClass.WriteLine("using libsecondlife.AssetSystem.BodyShape;"); MasterClass.WriteLine(); MasterClass.WriteLine("namespace libsecondlife.AssetSystem.BodyShape"); @@ -59,6 +63,23 @@ namespace BodyPartMorphGenerator Labels.WriteLine(" default:"); Labels.WriteLine(" throw new Exception(\"Unknown Body Part Parameter: \" + Param);"); + StringWriter LabelMin = new StringWriter(); + LabelMin.WriteLine(" public string GetLabelMin( uint Param )"); + LabelMin.WriteLine(" {"); + LabelMin.WriteLine(" switch( Param )"); + LabelMin.WriteLine(" {"); + LabelMin.WriteLine(" default:"); + LabelMin.WriteLine(" throw new Exception(\"Unknown Body Part Parameter: \" + Param);"); + + StringWriter LabelMax = new StringWriter(); + LabelMax.WriteLine(" public string GetLabelMax( uint Param )"); + LabelMax.WriteLine(" {"); + LabelMax.WriteLine(" switch( Param )"); + LabelMax.WriteLine(" {"); + LabelMax.WriteLine(" default:"); + LabelMax.WriteLine(" throw new Exception(\"Unknown Body Part Parameter: \" + Param);"); + + StringWriter Names = new StringWriter(); Names.WriteLine(" public string GetName( uint Param )"); Names.WriteLine(" {"); @@ -133,6 +154,20 @@ namespace BodyPartMorphGenerator Labels.WriteLine(" case " + ID + ":"); Labels.WriteLine(" return \"" + node.Attributes["label"].Value + "\";"); + if (node.Attributes["label_min"] != null) + { + // Label Min + LabelMin.WriteLine(" case " + ID + ":"); + LabelMin.WriteLine(" return \"" + node.Attributes["label_min"].Value + "\";"); + } + + if (node.Attributes["label_min"] != null) + { + // Label Max + LabelMax.WriteLine(" case " + ID + ":"); + LabelMax.WriteLine(" return \"" + node.Attributes["label_max"].Value + "\";"); + } + // Name Names.WriteLine(" case " + ID + ":"); Names.WriteLine(" return \"" + node.Attributes["name"].Value + "\";"); @@ -159,19 +194,27 @@ namespace BodyPartMorphGenerator // Max Values ValueValid.WriteLine(" case " + node.Attributes["id"].Value + ":"); - ValueValid.WriteLine(" return ( (Value > " + node.Attributes["value_min"].Value + "f) && (Value < " + node.Attributes["value_max"].Value + "f) );"); + ValueValid.WriteLine(" return ( (Value >= " + node.Attributes["value_min"].Value + "f) && (Value <= " + node.Attributes["value_max"].Value + "f) );"); } } + // Finish up name stuff + Names.WriteLine(" }"); // Close switch + Names.WriteLine(" }"); // Close method + // Finish up label stuff Labels.WriteLine(" }"); // Close switch Labels.WriteLine(" }"); // Close method - // Finish up name stuff - Names.WriteLine(" }"); // Close switch - Names.WriteLine(" }"); // Close method + // Finish up min label stuff + LabelMin.WriteLine(" }"); // Close switch + LabelMin.WriteLine(" }"); // Close method + + // Finish up max label stuff + LabelMax.WriteLine(" }"); // Close switch + LabelMax.WriteLine(" }"); // Close method // Finish up Max Value stuff ValueMin.WriteLine(" }"); // Close switch @@ -190,13 +233,45 @@ namespace BodyPartMorphGenerator ValueValid.WriteLine(" }"); // Close method + StringWriter ValidateAll = new StringWriter(); + ValidateAll.WriteLine(" public bool IsValid( Dictionary BodyShape )"); + ValidateAll.WriteLine(" {"); + ValidateAll.WriteLine(" foreach(KeyValuePair kvp in BodyShape)"); + ValidateAll.WriteLine(" {"); + ValidateAll.WriteLine(" if( !IsValueValid(kvp.Key, kvp.Value) ) { return false; }"); + ValidateAll.WriteLine(" }"); + ValidateAll.WriteLine(""); + ValidateAll.WriteLine(" return true;"); + ValidateAll.WriteLine(" }"); + + StringWriter ToString = new StringWriter(); + ToString.WriteLine(" public string ToString( Dictionary BodyShape )"); + ToString.WriteLine(" {"); + ToString.WriteLine(" StringWriter sw = new StringWriter();"); + ToString.WriteLine(""); + ToString.WriteLine(" foreach(KeyValuePair kvp in BodyShape)"); + ToString.WriteLine(" {"); + ToString.WriteLine(" sw.Write( kvp.Key + \":\" );"); + ToString.WriteLine(" sw.Write( GetLabel(kvp.Key) + \":\" );"); + ToString.WriteLine(" sw.WriteLine( kvp.Value );"); + ToString.WriteLine(" }"); + ToString.WriteLine(""); + ToString.WriteLine(" return sw.ToString();"); + ToString.WriteLine(" }"); + + + // Combine Master Class - MasterClass.Write(Labels.ToString()); MasterClass.Write(Names.ToString()); + MasterClass.Write(Labels.ToString()); + MasterClass.Write(LabelMin.ToString()); + MasterClass.Write(LabelMax.ToString()); MasterClass.Write(ValueMin.ToString()); MasterClass.Write(ValueMax.ToString()); MasterClass.Write(ValueDefault.ToString()); MasterClass.Write(ValueValid.ToString()); + MasterClass.Write(ValidateAll.ToString()); + MasterClass.Write(ToString.ToString()); // Finish up the file MasterClass.WriteLine(" }"); // Close Class diff --git a/libsecondlife-cs/libsecondlife.csproj b/libsecondlife-cs/libsecondlife.csproj index d3219b92..fca0eae5 100644 --- a/libsecondlife-cs/libsecondlife.csproj +++ b/libsecondlife-cs/libsecondlife.csproj @@ -98,7 +98,6 @@ -