Inheritance: MonoBehaviour
コード例 #1
0
        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();
        }
コード例 #2
0
 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);
 }
コード例 #3
0
        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();
                }
            }
        }
コード例 #4
0
        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);
                    }
                }
            }
        }
コード例 #5
0
        /// <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();
            }
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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;
                }
            }
        }
コード例 #8
0
        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);
                }
            }
        }