Beispiel #1
0
        private void MMessageBus_ChangeAvatarRequestHandler(object sender, ChangeAvatarEvent e)
        {
            MBuildingBlock bb = MBuildParts.GetBlock(e.TemplateID);

            if (bb == null)
            {
                Console.WriteLine("MSpawnHandler: Missing Template:" + e.TemplateID);
                return;
            }

            MSceneObject mo = (MSceneObject)MScene.ModelRoot.FindModuleByInstanceID(e.UserID);

            if (mo != null)
            {
                MMessageBus.DeleteRequest(this, mo);
            }

            MServerObject m = new MServerObject();

            m.InstanceID = e.UserID;
            m.TemplateID = e.TemplateID;
            m.OwnerID    = e.UserID;
            m.TextureID  = bb.MaterialID;
            m.Name       = Globals.UserAccount.UserName;
            MScene.Camera.CameraOffset = MassiveTools.VectorFromArray(bb.BoneOffset);
            m.Position = Globals.UserAccount.CurrentPosition;
            m.Rotation = MassiveTools.ArrayFromQuaterniond(Globals.Avatar.GetRotation());
            Spawn(m);
        }