//This event fires if a new player is found in the updated list
        private void ClientManager_OtherPlayerConnected(object sender, vxNetClientEventPlayerConnected e)
        {
            //First Add a New Player in the Manager. The details will come in an update.
            Texture2D thumbnail = vxEngine.Assets.Textures.Arrow_Right;
            vxServerLobbyPlayerItem item = new vxServerLobbyPlayerItem(vxEngine,
                e.ConnectedPlayer,
            new Vector2(
                    (int)(2 * this.ArtProvider.Padding.X),
                    this.ArtProvider.Padding.Y + (this.ArtProvider.Padding.Y / 10 + 68) * (List_Items.Count + 1)),
            thumbnail,
            List_Items.Count);

            //Set Item Width
            item.ButtonWidth = ScrollPanel.Width - (int)(2 * this.ArtProvider.Padding.X) - ScrollPanel.ScrollBarWidth;

            //Set Clicked Event
            item.Clicked += GetHighlitedItem;

            //Add item too the list
            List_Items.Add(item);

            ScrollPanel.Clear();

            foreach (vxServerLobbyPlayerItem it in List_Items)
                ScrollPanel.AddItem(it);
        }
예제 #2
0
        public virtual void GetProperties(vxScrollPanel owningItem)
        {
            owningItem.Clear();

            nameBox = new vxTextbox(vxEngine, this.name, Vector2.Zero);
            owningItem.AddItem(nameBox);

            indexProp = new vxTextbox(vxEngine, this.Index.ToString(), new Vector2(0, 20));
            owningItem.AddItem(indexProp);
        }
        ///// <summary>
        ///// Method for Receiving Messages. Only Peer Disovery Is Needed for this one.
        ///// </summary>
        ///// <param name="peer">Peer.</param>
        //public void ClientMsgCallback(object peer)
        //{
        //    NetIncomingMessage im;
        //    while ((im = vxEngine.GameClient.ReadMessage()) != null)
        //    {
        //        // handle incoming message
        //        switch (im.MessageType)
        //        {
        //            case NetIncomingMessageType.DebugMessage:
        //            case NetIncomingMessageType.ErrorMessage:
        //            case NetIncomingMessageType.WarningMessage:
        //            case NetIncomingMessageType.VerboseDebugMessage:
        //                string text = im.ReadString();
        //                vxConsole.WriteNetworkLine(im.MessageType + " : " + text);
        //                break;


        //            /**************************************************************/
        //            //DiscoveryResponse
        //            /**************************************************************/
        //            case NetIncomingMessageType.DiscoveryResponse:

        //                //Read In The Discovery Response
        //                string receivedMsg = im.ReadString();

        //                vxConsole.WriteNetworkLine("Server found at: " + im.SenderEndPoint + "\nmsg: " + receivedMsg);
        //                AddDiscoveredServer(receivedMsg);
        //                break;


        //            /**************************************************************/
        //            //StatusChanged
        //            /**************************************************************/
        //            case NetIncomingMessageType.StatusChanged:
        //                NetConnectionStatus status = (NetConnectionStatus)im.ReadByte();


        //                string reason = im.ReadString();
        //                vxConsole.WriteNetworkLine(NetUtility.ToHexString(im.SenderConnection.RemoteUniqueIdentifier) + " " + status + ": " + reason);
        //                break;



        //            /**************************************************************/
        //            //ConnectionApproval
        //            /**************************************************************/
        //            case NetIncomingMessageType.ConnectionApproval:

        //                Console.WriteLine("Connetion Approval From: " + im.SenderEndPoint + "\nmsg: " + im.ReadString());

        //                break;


        //            /**************************************************************/
        //            //Data
        //            /**************************************************************/
        //            case NetIncomingMessageType.Data:
        //                // incoming chat message from a client
        //                string chat = im.ReadString();

        //                //Split the Text By Carriage Return
        //                string[] result = chat.Split(new string[] { "\n", "\r\n" }, StringSplitOptions.RemoveEmptyEntries);

        //                switch (result[0])
        //                {
        //                    default:
        //                        vxConsole.WriteNetworkLine("Broadcasting '" + chat + "'");
        //                        /*
        //                        // broadcast this to all connections, except sender
        //                        List<NetConnection> all = vxEngine.GameSever.Connections; // get copy
        //                        all.Remove(im.SenderConnection);

        //                        if (all.Count > 0)
        //                        {
        //                            NetOutgoingMessage om2 = vxEngine.GameSever.CreateMessage();
        //                            om2.Write(NetUtility.ToHexString(im.SenderConnection.RemoteUniqueIdentifier) + " said: " + chat);
        //                            vxEngine.GameSever.SendMessage(om2, all, NetDeliveryMethod.ReliableOrdered, 0);
        //                        }
        //                        */
        //                        break;
        //                }
        //                break;
        //            default:
        //                vxConsole.WriteNetworkLine("Unhandled type: " + im.MessageType + " " + im.LengthBytes + " bytes");
        //                break;
        //        }
        //        vxEngine.GameClient.Recycle(im);
        //    }
        //}


        private void AddDiscoveredServer(vxNetmsgServerInfo response)
        {
            Texture2D        thumbnail = vxEngine.Assets.Textures.Arrow_Right;
            vxServerListItem item      = new vxServerListItem(vxEngine,
                                                              response.ServerName,
                                                              response.ServerIP,
                                                              response.ServerPort,
                                                              new Vector2(
                                                                  (int)(2 * this.ArtProvider.Padding.X),
                                                                  this.ArtProvider.Padding.Y + (this.ArtProvider.Padding.Y / 10 + 68) * (List_Items.Count + 1)),
                                                              thumbnail,
                                                              List_Items.Count);


            //Set Item Width
            item.ButtonWidth = ScrollPanel.Width - (int)(2 * this.ArtProvider.Padding.X) - ScrollPanel.ScrollBarWidth;

            //Set Clicked Event
            item.Clicked += GetHighlitedItem;

            //Add item too the list
            List_Items.Add(item);


            foreach (vxServerListItem it in List_Items)
            {
                ScrollPanel.AddItem(it);
            }
        }
예제 #4
0
 /// <summary>
 /// Override this Method and add in your Register Sandbox Entities code.
 /// </summary>
 public virtual void RegisterSandboxEntities()
 {
     ScrollPanel_EngineItems.AddItem(new vxScrollPanelSpliter(vxEngine, "Water"));
     ScrollPanel_EngineItems.AddItem(RegisterNewSandboxItem(vxWaterEntity.Info));
 }
        /// <summary>
        /// LoadContent will be called once per game and is the place to load
        /// all of your content.
        /// </summary>
        public override void LoadContent()
        {
            InitialiseLevel();


            ///////////////////////////////////////////////////////////////////////
            //Initialise Camera Code
            ///////////////////////////////////////////////////////////////////////
            #region Set Up Camera

            base.LoadContent();
            Camera.CameraType = CameraType.CharacterFPS;

            character = new CharacterControllerInput(BEPUPhyicsSpace, Camera, vxEngine);

            //Since this is the character playground, turn on the character by default.
            character.Activate();

            //Having the character body visible would be a bit distracting.
            character.CharacterController.Body.Tag = "noDisplayObject";

            SimulationStart();
            SimulationStop();

            //
            //Grabbers
            //
            grabber = new MotorizedGrabSpring();
            BEPUPhyicsSpace.Add(grabber);
            rayCastFilter = RayCastFilter;


            #endregion

            DoFog   = true;
            FogNear = 20;
            FogFar  = Camera.FarPlane / 4;

            Envrio envr = new Envrio(vxEngine, vxEngine.vxContentManager.LoadModel("Models/courtyard/td_courtyard"), Vector3.Zero);

            //Envrio envr = new Envrio(vxEngine, vxEngine.vxContentManager.LoadModel("Models/castle/mdl_castle"), new Vector3(0, 1, 0));

            //waterItems.Add(new vxWaterEntity(vxEngine, Vector3.Up, new Vector3(50, 0.25f, 50)));


            envr.SpecularIntensity = 1;
            //envr.SpecularIntensity = 100;
            //envr.SpecularPower = 5f;
            //envr.DoFog = false;

            light = new vxLightEntity(vxEngine, new Vector3(0, 2, 0), LightType.Point, Color.Orange, 10, 1);

            //This is a little convenience method used to extract vertices and indices from a model.
            //It doesn't do anything special; any approach that gets valid vertices and indices will work.

                        #if !TECHDEMO_PLTFRM_GL
            ModelDataExtractor.GetVerticesAndIndicesFromModel(envr.vxModel.ModelMain, out staticTriangleVertices, out staticTriangleIndices);

            //var staticMesh = new StaticMesh(staticTriangleVertices, staticTriangleIndices, new AffineTransform(Matrix3X3.CreateFromAxisAngle(Vector3.Up, MathHelper.Pi), new Vector3(0, -10, 0)));
            var staticMesh = new StaticMesh(staticTriangleVertices, staticTriangleIndices,
                                            new AffineTransform(new Vector3(1),
                                                                Quaternion.CreateFromRotationMatrix(Matrix.CreateRotationX(-MathHelper.PiOver2) * Matrix.CreateRotationY(0)),
                                                                new Vector3(0)));
            staticMesh.Sidedness = TriangleSidedness.Counterclockwise;

            BEPUPhyicsSpace.Add(staticMesh);
            BEPUDebugDrawer.Add(staticMesh);
                        #endif

            int size = 100;
            BEPUPhyicsSpace.Add(new Box(new Vector3(0, -5, 0), size, 10, size));

            vxTabPage Straights = new vxTabPage(vxEngine, tabControl, "Items");
            tabControl.AddItem(Straights);

            vxScrollPanel ScrollPanel_GeneralItemsPage = new vxScrollPanel(new Vector2(0, 0),
                                                                           vxEngine.GraphicsDevice.Viewport.Width - 150, vxEngine.GraphicsDevice.Viewport.Height - 75);

            //Cubes
            ScrollPanel_GeneralItemsPage.AddItem(new vxScrollPanelSpliter(vxEngine, "Items"));
            ScrollPanel_GeneralItemsPage.AddItem(RegisterNewSandboxItem(WoodenCrate.EntityDescription));

            //Add the scrollpanel to the slider tab page.
            Straights.AddItem(ScrollPanel_GeneralItemsPage);

            //IndexedCubeTest cube = new IndexedCubeTest(vxEngine, new Vector3(4, 4, 0));


            Teapot t = new Teapot((GameEngine)vxEngine, new Vector3(4, 4, 0));
            t.SetMesh(Matrix.CreateTranslation(new Vector3(4, 2, 0)), true, true);

            ConcreteCube cc = new ConcreteCube((GameEngine)vxEngine, new Vector3(0, 5, 0));
            cc.SetMesh(Matrix.CreateTranslation(new Vector3(0, 2, 0)), true, true);


            ModelObjs mo = new ModelObjs((GameEngine)vxEngine, new Vector3(-4, 4, 0));
            mo.SetMesh(Matrix.CreateTranslation(new Vector3(0, 2, 8)), true, true);

            vxEngine.InputManager.ShowCursor = true;
        }