コード例 #1
0
ファイル: MTextureHandler.cs プロジェクト: BigFun123/Massive
        private void Network_TextureHandler(object sender, Massive.Events.TextureEvent e)
        {
            MSceneObject mo = (MSceneObject)MScene.ModelRoot.FindModuleByInstanceID(e.InstanceID);
            MObject      o  = MScene.MaterialRoot.FindModuleByName(e.TextureID);

            if (o != null && o.Type == MObject.EType.Material)
            {
                MMaterial mat = (MMaterial)o;
                mo.SetMaterial(mat);
            }
            else
            {
                if (MassiveTools.IsURL(e.TextureID))
                {
                    MMaterial mat           = (MMaterial) new MMaterial("URLShader");
                    MShader   DefaultShader = (MShader)MScene.MaterialRoot.FindModuleByName(MShader.DEFAULT_SHADER);
                    mat.AddShader(DefaultShader);
                    mat.ReplaceTexture(Globals.TexturePool.GetTexture(e.TextureID));
                    MScene.MaterialRoot.Add(mat);
                    mo.SetMaterial(mat);
                    mo.material.Setup();
                    MMessageBus.ChangedTexture(this, e.InstanceID, e.TextureID);
                }
                else
                {
                    Console.WriteLine("Object " + e.InstanceID + " was null");
                    MMessageBus.Error(this, "Could not find Material:" + e.TextureID);
                }
            }
        }
コード例 #2
0
        void Add(string s)
        {
            if (MStateMachine.ZoneLocked == true)
            {
                MMessageBus.Error(this, "Can't build here, zone is locked / other building nearby");
                return;
            }

            Vector3d pos = Globals.Avatar.GetPosition();

            if (s.Equals(MBuildParts.FOUNDATION01))
            {
                pos += Globals.Avatar.Forward() * 13 - Globals.Avatar.Up() * 1.0;
            }
            else
            {
                pos += Globals.Avatar.Forward() * 2 - Globals.Avatar.Up() * 1.0;
            }

            Quaterniond rot = Globals.LocalUpRotation();

            if (SelectedItem != null)
            {
                rot = SelectedItem.transform.Rotation;
                //prevent smaller items getting lost in the foundation
                if (SelectedItem.TemplateID != MBuildParts.FOUNDATION01)
                {
                    pos = SelectedItem.transform.Position;
                }
            }

            Globals.Network.SpawnRequest(s, "TEXTURE01", s, s, pos, rot);
        }
コード例 #3
0
ファイル: BuildForm.cs プロジェクト: BigFun123/Massive
        void Add(MBuildingBlock bb)
        {
            LastBuild = bb;
            if (MStateMachine.ZoneLocked == true)
            {
                MMessageBus.Error(this, "Can't build here, zone is locked / other building nearby");
                return;
            }

            Vector3d pos = Globals.Avatar.GetPosition();

            if (bb.TemplateID.Equals(MBuildParts.FOUNDATION01))
            {
                pos += Globals.Avatar.Forward() * 13 - Globals.Avatar.Up() * 1.0;
            }
            else
            {
                pos += Globals.Avatar.Forward() * 4 + Globals.Avatar.Up() * 3.0;
            }

            Quaterniond rot = Globals.LocalUpRotation();

            if (SelectedItem != null)
            {
                rot = SelectedItem.transform.Rotation;
                //prevent smaller items getting lost in the foundation
                if (SelectedItem.TemplateID != MBuildParts.FOUNDATION01)
                {
                    //pos = SelectedItem.transform.Position;
                }
            }

            if (Globals.Network.Connected == true)
            {
                Globals.Network.SpawnRequest(bb.TemplateID, "TEXTURE01", bb.TemplateID, bb.TemplateID, pos, rot);
            }
            else
            {
                MServerObject mso = new MServerObject();
                mso.InstanceID = Helper.GUID();
                mso.OwnerID    = Globals.UserAccount.UserID;
                mso.TextureID  = bb.TextureID;
                mso.TemplateID = bb.TemplateID;
                mso.Position   = MassiveTools.ArrayFromVector(pos);
                mso.Rotation   = MassiveTools.ArrayFromQuaterniond(rot);
                MMessageBus.CreateObjectRequest(this, mso);
            }
        }
コード例 #4
0
ファイル: LinkerConfigForm.cs プロジェクト: BigFun123/Massive
        private void TestButton_Click(object sender, EventArgs e)
        {
            if (Target == null)
            {
                return;
            }

            try {
                Process.Start((string)Target.Tag);
            }
            catch (Exception ee)
            {
                Console.WriteLine(ee.Message);
                MMessageBus.Error(this, ee.Message);
            }
        }
コード例 #5
0
ファイル: MLinkerWidget.cs プロジェクト: BigFun123/Massive
 public static void Mc_DoubleClick(MObject mo)
 {
     if (string.IsNullOrEmpty((string)mo.Tag))
     {
         return;
     }
     MMessageBus.Status(null, "Opening:" + mo.Tag);
     try
     {
         Process.Start((string)mo.Tag);
     }
     catch (Exception ee)
     {
         Console.WriteLine(ee.Message);
         MMessageBus.Error(mo, ee.Message);
     }
 }
コード例 #6
0
        void SetupDatagrid(DataTable dt)
        {
            dataGridView1.DataSource = dt;
            if (dataGridView1.Columns.Count == 0)
            {
                MMessageBus.Error(this, "LobbyForm:Problem loading lobby");
                return;
            }
            dataGridView1.Sort(dataGridView1.Columns[0], ListSortDirection.Ascending);
            dataGridView1.Columns[1].Visible = false;

            DataGridViewRow dg = dataGridView1.Rows[0];

            if (dg == null)
            {
                return;
            }
            ServerIPBox.Text = dg.Cells[1].Value.ToString();
        }