Esempio n. 1
0
        /// -----------------------------------------------------------------
        /// <summary>
        /// </summary>
        // -----------------------------------------------------------------
        public Dispatcher.Messages.ResponseBase SetColorHandler(Dispatcher.Messages.RequestBase irequest)
        {
            if (irequest.GetType() != typeof(SetPartColorRequest))
            {
                return(OperationFailed("wrong type of request object"));
            }

            SetPartColorRequest request = (SetPartColorRequest)irequest;

            SceneObjectGroup sog = m_scene.GetSceneObjectGroup(request.ObjectID);

            if (sog == null)
            {
                return(OperationFailed("no such object"));
            }

            SceneObjectPart sop = request.LinkNum == 0 ? sog.RootPart : sog.GetLinkNumPart(request.LinkNum);

            if (sop == null)
            {
                return(OperationFailed("no such part"));
            }

            sop.SetFaceColorAlpha(SceneObjectPart.ALL_SIDES, request.Color, request.Alpha);
            sog.ScheduleGroupForFullUpdate(); // Full or terse? Don't seem to be sent with terse

            return(new Dispatcher.Messages.ResponseBase(ResponseCode.Success, ""));
        }