public List <BodyColors> GetAllBodyColors() { List <BodyColors> bodyColors = new List <BodyColors>(); using (var cn = new SqlConnection(Settings.GetConnectionString())) { SqlCommand cmd = new SqlCommand("BodyColorsSelectAll", cn); cmd.CommandType = CommandType.StoredProcedure; cn.Open(); using (SqlDataReader dr = cmd.ExecuteReader()) { while (dr.Read()) { BodyColors currentRow = new BodyColors(); currentRow.BodyColorId = (int)dr["BodyColorId"]; currentRow.BodyColorDescription = dr["BodyColorDescription"].ToString(); bodyColors.Add(currentRow); } } } return(bodyColors); }
public TextureCompositor ComposeTextureMap(Folder characterAssets, BodyColors bodyColors) { TextureCompositor compositor = new TextureCompositor(AvatarType.R6, RECT_FULL); compositor.CharacterAssets = characterAssets; // Append BodyColors compositor.AppendColor(bodyColors.TorsoColor, COMPOSIT_TORSO, RECT_FULL); compositor.AppendColor(bodyColors.LeftArmColor, COMPOSIT_LEFT_ARM, RECT_FULL); compositor.AppendColor(bodyColors.LeftLegColor, COMPOSIT_LEFT_LEG, RECT_FULL); compositor.AppendColor(bodyColors.RightArmColor, COMPOSIT_RIGHT_ARM, RECT_FULL); compositor.AppendColor(bodyColors.RightLegColor, COMPOSIT_RIGHT_LEG, RECT_FULL); // Append Head & Face Asset faceAsset = GetAvatarFace(characterAssets); compositor.AppendColor(bodyColors.HeadColor, RECT_HEAD); compositor.AppendTexture(faceAsset, RECT_HEAD, 1); // Append Shirt Shirt shirt = characterAssets.FindFirstChildOfClass <Shirt>(); if (shirt != null) { Asset shirtAsset = Asset.GetByAssetId(shirt.ShirtTemplate); compositor.AppendTexture(shirtAsset, COMPOSIT_SHIRT, RECT_FULL, 2); } // Append Pants Pants pants = characterAssets.FindFirstChildOfClass <Pants>(); if (pants != null) { Asset pantsAsset = Asset.GetByAssetId(pants.PantsTemplate); compositor.AppendTexture(pantsAsset, COMPOSIT_PANTS, RECT_FULL, 1); } // Append T-Shirt ShirtGraphic tshirt = characterAssets.FindFirstChildOfClass <ShirtGraphic>(); if (tshirt != null) { Asset tshirtAsset = Asset.GetByAssetId(tshirt.Graphic); compositor.AppendTexture(tshirtAsset, RECT_TSHIRT, 3, RotateFlipType.Rotate90FlipNone); } return(compositor); }
/// <summary> /// Adds body part. /// </summary> /// <param name="color">Decides the color.</param> /// <param name="position">Decides the position.</param> /// <param name="insertIndex">Decides the position in the list.</param> public void AddBodyPart(Position position, ConsoleColor color, int insertIndex) { BodyColors.Insert(insertIndex, color); Positions.Insert(insertIndex, position); }
/// <summary> /// Adds body part. /// </summary> /// <param name="color">Decides the color.</param> /// <param name="position">Decides the position.</param> public void AddBodyPart(Position position, ConsoleColor color) { BodyColors.Add(color); Positions.Add(position); }
public TextureCompositor ComposeTextureMap(Folder characterAssets, BodyColors bodyColors) { TextureCompositor compositor = new TextureCompositor(AvatarType.R15, 1024, 568); // Append BodyColors compositor.AppendColor(bodyColors.HeadColor, RECT_HEAD); compositor.AppendColor(bodyColors.TorsoColor, RECT_TORSO); compositor.AppendColor(bodyColors.LeftArmColor, RECT_LEFT_ARM); compositor.AppendColor(bodyColors.LeftLegColor, RECT_LEFT_LEG); compositor.AppendColor(bodyColors.RightArmColor, RECT_RIGHT_ARM); compositor.AppendColor(bodyColors.RightLegColor, RECT_RIGHT_LEG); // Append Face Asset face = GetAvatarFace(characterAssets); compositor.AppendTexture(face, RECT_HEAD, 1); // Append Shirt Shirt shirt = characterAssets.FindFirstChildOfClass <Shirt>(); if (shirt != null) { Asset shirtTemplate = Asset.GetByAssetId(shirt.ShirtTemplate); compositor.AppendTexture(shirtTemplate, COMPOSIT_TORSO, RECT_TORSO, 2); compositor.AppendTexture(shirtTemplate, COMPOSIT_LEFT_LIMB, RECT_LEFT_ARM, 1); compositor.AppendTexture(shirtTemplate, COMPOSIT_RIGHT_LIMB, RECT_RIGHT_ARM, 1); } // Append Pants Pants pants = characterAssets.FindFirstChildOfClass <Pants>(); if (pants != null) { Asset pantsTemplate = Asset.GetByAssetId(pants.PantsTemplate); compositor.AppendTexture(pantsTemplate, COMPOSIT_TORSO, RECT_TORSO, 1); compositor.AppendTexture(pantsTemplate, COMPOSIT_LEFT_LIMB, RECT_LEFT_LEG, 1); compositor.AppendTexture(pantsTemplate, COMPOSIT_RIGHT_LIMB, RECT_RIGHT_LEG, 1); } // Append T-Shirt ShirtGraphic tshirt = characterAssets.FindFirstChildOfClass <ShirtGraphic>(); if (tshirt != null) { Asset graphic = Asset.GetByAssetId(tshirt.Graphic); compositor.AppendTexture(graphic, RECT_TSHIRT, 4); } // Append Package Overlays Folder avatarParts = characterAssets.FindFirstChild <Folder>("ASSEMBLY"); List <Limb> overlainLimbs = new List <Limb>(); foreach (MeshPart part in avatarParts.GetChildrenOfClass <MeshPart>()) { Limb limb = GetLimb(part); string textureId = part.TextureID; if (textureId != null && textureId.Length > 0 && !overlainLimbs.Contains(limb)) { Asset overlay = Asset.GetByAssetId(textureId); if (limb == Limb.Torso) { compositor.AppendTexture(overlay, RECT_TORSO, 3); } else if (limb == Limb.LeftArm) { compositor.AppendTexture(overlay, RECT_LEFT_ARM, 3); } else if (limb == Limb.RightArm) { compositor.AppendTexture(overlay, RECT_RIGHT_ARM, 3); } else if (limb == Limb.LeftLeg) { compositor.AppendTexture(overlay, RECT_LEFT_LEG, 3); } else if (limb == Limb.RightLeg) { compositor.AppendTexture(overlay, RECT_RIGHT_LEG, 3); } overlainLimbs.Add(limb); } } return(compositor); }