public ContextSubEntity(SubEntityBindingPointCategoryEnum category, sbyte bindingPointIndex, ContextActorLook subActorLook) { this.Category = category; this.BindingPointIndex = bindingPointIndex; this.SubActorLook = subActorLook; }
public ContextActorLook GetMountLook(ContextActorLook mountLook) { ContextActorLook newLook = mountLook.Clone(); newLook.Colors = GetConvertedColors(mountLook.Colors.ToArray()).ToList(); ContextSubEntity actorSub = new ContextSubEntity(SubEntityBindingPointCategoryEnum.HOOK_POINT_CATEGORY_MOUNT_DRIVER, 0, new ContextActorLook(2, this.Skins, this.Colors, this.Scales, this.SubEntities)); newLook.SubEntities.Add(actorSub); return(newLook); }
public override bool Equals(object obj) { ContextActorLook look = obj as ContextActorLook; if (obj == null) { return(false); } return(look.BonesId == this.BonesId && look.Colors.SequenceEqual(look.Colors) && look.Scales.SequenceEqual(this.Scales) && look.Skins.SequenceEqual(this.Skins) && this.SubEntities.SequenceEqual(this.SubEntities)); }
public ContextSubEntity(SubEntity subentity) { this.Category = (SubEntityBindingPointCategoryEnum)subentity.bindingPointCategory; this.BindingPointIndex = subentity.bindingPointIndex; this.SubActorLook = new ContextActorLook(subentity.subEntityLook); }
public static string ConvertToString(ContextActorLook look) { #region Code System.Text.StringBuilder stringBuilder = new System.Text.StringBuilder(); stringBuilder.Append("{"); int num = 0; stringBuilder.Append(look.BonesId); if (look.Skins == null || !look.Skins.Any <ushort>()) { num++; } else { stringBuilder.Append("|".ConcatCopy(num + 1)); num = 0; stringBuilder.Append(string.Join <ushort>(",", look.Skins)); } if (look.Colors == null) { num++; } else { stringBuilder.Append("|".ConcatCopy(num + 1)); num = 0; List <string> values = new List <string>(); int i = 0; foreach (var color in look.Colors) { i++; values.Add(i + "=" + color); } stringBuilder.Append(string.Join(",", values)); } if (look.Scales == null) { num++; } else { stringBuilder.Append("|".ConcatCopy(num + 1)); num = 0; stringBuilder.Append(string.Join <short>(",", look.Scales)); } if (look.SubEntities.Count() == 0) { num++; } else { List <string> subEntitiesAsString = new List <string>(); foreach (var sub in look.SubEntities) { StringBuilder subBuilter = new System.Text.StringBuilder(); subBuilter.Append((sbyte)sub.Category); subBuilter.Append("@"); subBuilter.Append(sub.BindingPointIndex); subBuilter.Append("="); subBuilter.Append(ConvertToString(sub.SubActorLook)); subEntitiesAsString.Add(subBuilter.ToString()); } stringBuilder.Append("|".ConcatCopy(num + 1)); stringBuilder.Append(string.Join <string>(",", from entry in subEntitiesAsString select entry)); } stringBuilder.Append("}"); return(stringBuilder.ToString()); #endregion }
public int RemoveSubEntities(ContextActorLook look, SubEntityBindingPointCategoryEnum category) { return(look.SubEntities.RemoveAll(x => x.Category == category)); }