private void RefreshLODGroup() { if (m_LODGroup == null) { return; } LOD[] L = m_LODGroup.GetLODs(); for (int i = 0; i < L.Length; ++i) { L[i].renderers = new Renderer[m_avatarPartSmrs.Count]; } int idx = 0; var e = m_avatarPartSmrs.GetEnumerator(); while (e.MoveNext()) { AvatarPart part = e.Current.Value; for (int i = 0; i < L.Length; ++i) { L[i].renderers[idx] = part.smrs[i]; } ++idx; } m_LODGroup.SetLODs(L); e.Dispose(); }
private void CreateDefaultPart(AvatarPart defaultPart) { if (defaultPart.smrs.Length < m_maxLODLevel) { SkinnedMeshRenderer[] newSmrs = new SkinnedMeshRenderer[m_maxLODLevel]; for (int i = 0; i < m_maxLODLevel; ++i) { if (i < defaultPart.smrs.Length) { newSmrs[i] = defaultPart.smrs[i]; } else { GameObject go = new GameObject(); go.name = string.Format("{0}_LOD{1}", defaultPart.name, i); go.transform.position = Vector3.zero; go.transform.rotation = Quaternion.identity; go.transform.localScale = Vector3.one; go.transform.SetParent(this.gameObject.transform, false); newSmrs[i] = go.AddComponent <SkinnedMeshRenderer>(); } } defaultPart.smrs = newSmrs; } defaultPart.modelID = -1; m_avatarPartSmrs.Add(defaultPart.name, defaultPart); }
protected void Page_Load(object sender, EventArgs e) { var patron = (Patron)Session["Patron"]; var avatarPartData = AvatarPart.GetQualifiedByPatron(patron.PID); jsAvatarComponents.Clear(); foreach (DataRow data in avatarPartData.Tables[0].Rows) { int avatarPartID = int.Parse(data["APID"].ToString()); string componentKey = data["ComponentID"].ToString(); if (!jsAvatarComponents.ContainsKey(componentKey)) { jsAvatarComponents.Add(componentKey, new List <int>()); } jsAvatarComponents[componentKey].Add(avatarPartID); } if (!IsPostBack) { List <int> state = Patron.ReadAvatarStateString(patron.AvatarState); if (state.Count == 3) { componentState0.Value = state[0].ToString(); componentState1.Value = state[1].ToString(); componentState2.Value = state[2].ToString(); } } }
protected void GvRowCommand(object sender, GridViewCommandEventArgs e) { string editpage = "~/ControlRoom/Modules/Setup/AvatarAddEdit.aspx"; if (e.CommandName.ToLower() == "addrecord") { Session["APID"] = string.Empty; Response.Redirect(editpage); } if (e.CommandName.ToLower() == "editrecord") { int key = Convert.ToInt32(e.CommandArgument); Session["APID"] = key; Response.Redirect(editpage); //Response.Redirect(String.Format("{0}?PK={1}", editpage, key)); } if (e.CommandName.ToLower() == "deleterecord") { var key = Convert.ToInt32(e.CommandArgument); try { var obj = new AvatarPart(); if (obj.IsValid(BusinessRulesValidationMode.DELETE)) { obj.GetAvatarPart(key).Delete(); LoadData(); var masterPage = (IControlRoomMaster)Master; if (masterPage != null) { masterPage.PageMessage = SRPResources.DeleteOK; } } else { var masterPage = (IControlRoomMaster)Master; string message = String.Format(SRPResources.ApplicationError1, "<ul>"); foreach (BusinessRulesValidationMessage m in obj.ErrorCodes) { message = string.Format(String.Format("{0}<li>{{0}}</li>", message), m.ErrorMessage); } message = string.Format("{0}</ul>", message); if (masterPage != null) { masterPage.PageError = message; } } } catch (Exception ex) { var masterPage = (IControlRoomMaster)Master; if (masterPage != null) { masterPage.PageError = String.Format(SRPResources.ApplicationError1, ex.Message); } } } }
/// <summary> /// 加载装备部件。 /// </summary> /// <param name="imgNode"></param> private void LoadPart(Wz_Node imgNode) { if (!this.inited && !this.AvatarInit() && imgNode == null) { return; } AvatarPart part = this.avatar.AddPart(imgNode); if (part != null) { OnNewPartAdded(part); FillAvatarParts(); UpdateDisplay(); } }
private AvatarPart CreatePart(string name) { AvatarPart part = new AvatarPart(m_maxLODLevel); for (int i = 0; i < m_maxLODLevel; ++i) { GameObject go = new GameObject(); go.name = string.Format("{0}_LOD{1}", name, i); go.transform.position = Vector3.zero; go.transform.rotation = Quaternion.identity; go.transform.localScale = Vector3.one; go.transform.SetParent(this.gameObject.transform, false); part.smrs[i] = go.AddComponent <SkinnedMeshRenderer>(); } m_avatarPartSmrs.Add(name, part); return(part); }
private void OnNewPartAdded(AvatarPart part) { if (part == null) { return; } if (part == avatar.Body) //同步head { int headID = 10000 + part.ID.Value % 10000; if (avatar.Head == null || avatar.Head.ID != headID) { var headImgNode = PluginBase.PluginManager.FindWz(string.Format("Character\\{0:D8}.img", headID)); if (headImgNode != null) { this.avatar.AddPart(headImgNode); } } } else if (part == avatar.Head) //同步body { int bodyID = part.ID.Value % 10000; if (avatar.Body == null || avatar.Body.ID != bodyID) { var bodyImgNode = PluginBase.PluginManager.FindWz(string.Format("Character\\{0:D8}.img", bodyID)); if (bodyImgNode != null) { this.avatar.AddPart(bodyImgNode); } } } else if (part == avatar.Face) //同步表情 { this.avatar.LoadEmotions(); FillEmotion(); } else if (part == avatar.Taming) //同步座驾动作 { this.avatar.LoadTamingActions(); FillTamingAction(); SetTamingDefaultBodyAction(); SetTamingDefault(); } else if (part == avatar.Weapon) //同步武器类型 { FillWeaponTypes(); } else if (part == avatar.Pants || part == avatar.Coat) //隐藏套装 { if (avatar.Longcoat != null) { avatar.Longcoat.Visible = false; } } else if (part == avatar.Longcoat) //还是。。隐藏套装 { if (avatar.Pants != null && avatar.Pants.Visible || avatar.Coat != null && avatar.Coat.Visible) { avatar.Longcoat.Visible = false; } } }
protected void DvItemCommand(object sender, DetailsViewCommandEventArgs e) { string returnURL = "~/ControlRoom/Modules/Setup/AvatarList.aspx"; if (e.CommandName.ToLower() == "back") { Response.Redirect(returnURL); } if (e.CommandName.ToLower() == "refresh") { try { odsData.DataBind(); dv.DataBind(); dv.ChangeMode(DetailsViewMode.Edit); var masterPage = (IControlRoomMaster)Master; if (masterPage != null) { masterPage.PageMessage = SRPResources.RefreshOK; } } catch (Exception ex) { var masterPage = (IControlRoomMaster)Master; masterPage.PageError = String.Format(SRPResources.ApplicationError1, ex.Message); } } if (e.CommandName.ToLower() == "add" || e.CommandName.ToLower() == "addandback") { try { var obj = new AvatarPart(); obj.Name = ((TextBox)((DetailsView)sender).FindControl("Name")).Text; obj.BadgeID = FormatHelper.SafeToInt(((DropDownList)((DetailsView)sender).FindControl("BadgeID")).SelectedValue); obj.ComponentID = FormatHelper.SafeToInt(((DropDownList)((DetailsView)sender).FindControl("ComponentID")).SelectedValue); obj.Ordering = FormatHelper.SafeToInt(((TextBox)((DetailsView)sender).FindControl("Ordering")).Text); obj.Gender = "O"; //"((DropDownList) ((DetailsView) sender).FindControl("Gender")).SelectedValue; obj.AddedDate = DateTime.Now; obj.AddedUser = ((SRPUser)Session[SessionData.UserProfile.ToString()]).Username; //"N/A"; // Get from session obj.LastModDate = obj.AddedDate; obj.LastModUser = obj.AddedUser; if (obj.IsValid(BusinessRulesValidationMode.INSERT)) { obj.Insert(); try { var badgePath = string.Format(Server.MapPath("~/images/AvatarParts/")); System.IO.File.Copy(string.Format("{0}no_avatar.png", badgePath), string.Format("{0}{1}.png", badgePath, obj.APID)); System.IO.File.Copy(string.Format("{0}no_avatar_sm.png", badgePath), string.Format("{0}sm_{1}.png", badgePath, obj.APID)); } catch (Exception ex) { this.Log().Error("Couldn't copy no_avatar images into new avatar: {0}", ex.Message); } if (e.CommandName.ToLower() == "addandback") { Response.Redirect(returnURL); } lblPK.Text = obj.APID.ToString(); odsData.DataBind(); dv.DataBind(); dv.ChangeMode(DetailsViewMode.Edit); var masterPage = (IControlRoomMaster)Master; masterPage.PageMessage = SRPResources.AddedOK; } else { var masterPage = (IControlRoomMaster)Master; string message = String.Format(SRPResources.ApplicationError1, "<ul>"); foreach (BusinessRulesValidationMessage m in obj.ErrorCodes) { message = string.Format(String.Format("{0}<li>{{0}}</li>", message), m.ErrorMessage); } message = string.Format("{0}</ul>", message); masterPage.PageError = message; } } catch (Exception ex) { var masterPage = (IControlRoomMaster)Master; masterPage.PageError = String.Format(SRPResources.ApplicationError1, ex.Message); } } if (e.CommandName.ToLower() == "save" || e.CommandName.ToLower() == "saveandback") { try { var obj = new AvatarPart(); int pk = int.Parse(lblPK.Text); obj = obj.GetAvatarPart(pk); obj.Name = ((TextBox)((DetailsView)sender).FindControl("Name")).Text; obj.BadgeID = FormatHelper.SafeToInt(((DropDownList)((DetailsView)sender).FindControl("BadgeID")).SelectedValue); obj.ComponentID = FormatHelper.SafeToInt(((DropDownList)((DetailsView)sender).FindControl("ComponentID")).SelectedValue); obj.Ordering = FormatHelper.SafeToInt(((TextBox)((DetailsView)sender).FindControl("Ordering")).Text); obj.Gender = "O"; //"((DropDownList)((DetailsView)sender).FindControl("Gender")).SelectedValue; obj.LastModDate = DateTime.Now; obj.LastModUser = ((SRPUser)Session[SessionData.UserProfile.ToString()]).Username; //"N/A"; // Get from session if (obj.IsValid(BusinessRulesValidationMode.UPDATE)) { obj.Update(); if (e.CommandName.ToLower() == "saveandback") { Response.Redirect(returnURL); } odsData.DataBind(); dv.DataBind(); dv.ChangeMode(DetailsViewMode.Edit); var masterPage = (IControlRoomMaster)Master; masterPage.PageMessage = SRPResources.SaveOK; masterPage.PageMessage = SRPResources.AddedOK; } else { var masterPage = (IControlRoomMaster)Master; string message = String.Format(SRPResources.ApplicationError1, "<ul>"); foreach (BusinessRulesValidationMessage m in obj.ErrorCodes) { message = string.Format(String.Format("{0}<li>{{0}}</li>", message), m.ErrorMessage); } message = string.Format("{0}</ul>", message); masterPage.PageError = message; } } catch (Exception ex) { var masterPage = (IControlRoomMaster)Master; masterPage.PageError = String.Format(SRPResources.ApplicationError1, ex.Message); } } }