//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); }
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); } }
/// <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; }