public EditorScreen(MainWindow window, MasterRenderer renderer) { this.Window = window; this.renderer = renderer; this.entReneder = renderer.GetRenderer3D <EntityRenderer>(); UI = new EditorUI(renderer, this); debug = new DashCMDScreen("modeldebug", "", true, (s) => { s.WriteLine("Mouse POS {0} {1}", Input.ClampedCursorX, Input.ClampedCursorY); s.WriteLine("Camera POS {0}", Camera.Active.Position); s.WriteLine("VoxelEditorObject POS {0}", (Model != null ? Model.CenterPosition : Vector3.Zero)); s.WriteLine(""); s.WriteLine("Current File {0}", CurrentFile); s.WriteLine("Fog: {0}; Enabled? {1}", renderer.GFXSettings.FogQuality, renderer.FogEnabled); s.WriteLine("FXAA: {0}", renderer.GFXSettings.ApplyFXAA); s.WriteLine("Shadows: {0}", renderer.GFXSettings.RenderShadows); s.WriteLine("PCF Samples: {0}", renderer.GFXSettings.ShadowPCFSamples); s.WriteLine("Wireframe: {0}", renderer.GlobalWireframe); }) { SleepTime = 40, }; DashCMD.AddScreen(debug); DashCMD.ExecuteCommand("screen modeldebug"); Camera.Active.Speeds[0] = .5f; LoadNewModel(); }
public SnapshotNetComponent(AOSClient client) : base(client) { snapshotSystem = new SnapshotSystem(client); charSnapshotSystem = new CharacterSnapshotSystem(this, snapshotSystem); objectComponent = client.GetComponent <ObjectNetComponent>(); objectComponent.OnCreatableInstantiated += ObjectComponent_OnCreatableInstantiated; objectComponent.OnCreatableDestroyed += ObjectComponent_OnCreatableDestroyed; DashCMD.AddScreen(new DashCMDScreen("snapshot", "Displays information about the snapshot system.", true, (screen) => { screen.WriteLine("Snapshot Round-Trip Time: {0}s", rtt); screen.WriteLine("Last Outbound Snapshot:", ConsoleColor.Cyan); screen.WriteLine("PacketHeader: {0} bytes", lastOutboundPacketStats.PacketHeader); screen.WriteLine("Acks: {0} bytes", lastOutboundPacketStats.Acks); screen.WriteLine("PlayerData: {0} bytes", lastOutboundPacketStats.PlayerData); screen.WriteLine("Total: {0} bytes", lastOutboundPacketStats.Total); }) { SleepTime = 30 }); DashCMD.SetCVar("cl_tickrate", DEFAULT_TICKRATE); DashCMD.SetCVar("cl_await_sv_snap", false); //DashCMD.SetCVar("cl_tickrate", 25); //DashCMD.SetCVar("cl_await_sv_snap", true); syncTime = tickrate; }
public SnapshotNetComponent(AOSServer server) : base(server) { snapshotSystem = new SnapshotSystem(server); charSnapshotSystem = new CharacterSnapshotSystem(this, snapshotSystem); ConnectionStates = new Dictionary <NetConnection, NetConnectionSnapshotState>(); objectComponent = server.GetComponent <ObjectNetComponent>(); objectComponent.OnCreatableInstantiated += ObjectComponent_OnCreatableInstantiated; objectComponent.OnCreatableDestroyed += ObjectComponent_OnCreatableDestroyed; DashCMD.AddScreen(new DashCMDScreen("snapshot", "Displays information about the snapshot system.", true, (screen) => { try { foreach (KeyValuePair <NetConnection, NetConnectionSnapshotState> pair in ConnectionStates) { SnapshotStats stats = pair.Value.Stats; screen.WriteLine("[{0}]:", pair.Key); screen.WriteLine("Snapshot Round-Trip Time: {0}", pair.Value.RoundTripTime); screen.WriteLine("PacketHeader: {0} bytes", stats.PacketHeader); screen.WriteLine("Acks: {0} bytes", stats.Acks); screen.WriteLine("PlayerData: {0} bytes", stats.PlayerData); screen.WriteLine("TerrainData: {0} bytes", stats.TerrainData); screen.WriteLine("Total: {0} bytes", stats.Total); screen.WriteLine(""); } } catch (Exception) { } }) { SleepTime = 30 }); DashCMD.SetCVar("sv_tickrate", DEFAULT_TICKRATE); DashCMD.SetCVar("sv_await_cl_snap", false); DashCMD.SetCVar <ushort>("ag_max_cl_tickrate", 100); DashCMD.SetCVar("ag_cl_force_await_snap", false); //DashCMD.SetCVar("sv_tickrate", 25); //DashCMD.SetCVar("sv_await_cl_snap", true); //DashCMD.SetCVar<ushort>("ag_max_cl_tickrate", 30); //DashCMD.SetCVar("ag_cl_force_await_snap", true); }
void InitializeCMD() { NetLogger.LogObjectStateChanges = true; NetLogger.LogVerboses = true; DashCMD.AddScreen(new DashCMDScreen("network", "", true, (screen) => { screen.WriteLine("Heartbeat Compution Time: {0}ms", client.HeartbeatComputionTimeMS); screen.WriteLine("Send Rate: {0}", client.ServerConnection.PacketSendRate); screen.WriteLine("MTU: {0}", client.ServerConnection.Stats.MTU); screen.WriteLine("Ping: {0}", client.ServerConnection.Stats.Ping); screen.WriteLine("VPackets s/s: {0}", client.ServerConnection.Stats.PacketsSentPerSecond); screen.WriteLine("VPackets r/s: {0}", client.ServerConnection.Stats.PacketsReceivedPerSecond); screen.WriteLine("Packets Lost: {0}", client.ServerConnection.Stats.PacketsLost); screen.WriteLine("PPackets s/s: {0}", client.ServerConnection.Stats.PhysicalPacketsSentPerSecond); screen.WriteLine("PPackets r/s: {0}", client.ServerConnection.Stats.PhysicalPacketsReceivedPerSecond); })); }
protected override void Load() { base.Load(); LogOpenGLDrivers(); //if (AL.Efx == null) // throw new Exception("Sound card does not support OpenAL Efx!"); AL.DistanceModel(ALDistanceModel.LinearDistance); // 1 meter = 1 block Camera.Active.AudioListener.EfxMetersPerUnit = 1f / Block.CUBE_SIZE; LoadFromConfig(); DashCMD.SetCVar("r_vsync", GetVSync()); DashCMD.SetCVar("r_targfps", TargetFrameRate); DashCMD.SetCVar("r_exp_shadows", false); GLError.Begin(); Renderer.AddRenderer(new VoxelRenderer(Renderer)); Renderer.AddRenderer(new EntityRenderer(Renderer)); Renderer.AddRenderer(new ChunkRenderer(Renderer)); Renderer.AddRenderer(new DebugRenderer(Renderer)); Light sun = new Light(new Vector3(2, 1, 2), LightType.Directional, 1.75f, new Color(255, 255, 255, 255)); Renderer.Lights.Add(sun); Renderer.Sun = sun; Camera.Active.SetMode(CameraMode.ArcBall); Camera.Active.SmoothCamera = true; StaticGui = new StaticGui(this, Renderer); SetupDefaultBinds(); AddScreen(new MainMenuScreen(this)); AddScreen(new SingleplayerScreen(this)); AddScreen(new MultiplayerScreen(this)); AddScreen(new NewText.NewTextScreen(this)); DashCMD.AddScreen(new DashCMDScreen("dt", "", true, (screen) => { screen.WriteLine("DeltaTime: {0}s", lastDeltaTime); }) { SleepTime = 30 }); #if DEBUG DashCMD.AddCommand("connect", "Connects to a server", "connect <ip:port>", (args) => { if (args.Length < 1) { DashCMD.ShowSyntax("connect"); return; } string[] parts = args[0].Split(':'); if (parts.Length != 2) { DashCMD.WriteError("Invalid arguments. (connect ip:port)"); return; } IPAddress ip; if (!NetHelper.TryParseIP(parts[0], out ip)) { DashCMD.WriteError("Invalid ip address"); return; } int port; if (!int.TryParse(parts[1], out port)) { DashCMD.WriteError("Invalid port."); return; } SwitchScreen("Multiplayer", new IPEndPoint(ip, port), "TestPlayer1"); }); #endif SwitchScreen("MainMenu"); }
void InitializeDebugging() { DashCMD.AddCommand("endpoint", "Displays the server's ip endpoint.", (args) => { DashCMD.WriteLine("Bound IPEndPoint: {0}", AOSServer.Instance.BoundEndPoint); DashCMD.WriteLine("Receive IPEndPoint: {0}", AOSServer.Instance.ReceiveEndPoint); DashCMD.WriteLine(""); }); DashCMD.AddCommand("exit", "Stops the server.", (args) => { DashCMD.WriteImportant("Shutting down server..."); AOSServer.Instance.Shutdown("Server shutting down..."); Stop(); DashCMD.Stop(); }); DashCMD.AddScreen(new DashCMDScreen("dt", "", true, (screen) => { screen.WriteLine("DeltaTime: {0}s", lastDeltaTime); }) { SleepTime = 30 }); DashCMD.AddScreen(new DashCMDScreen("network", "", true, (screen) => { screen.WriteLine("General Stats:", ConsoleColor.Green); screen.WriteLine("Heartbeat Compution Time: {0}ms", AOSServer.Instance.HeartbeatComputionTimeMS); int totalPhysicalPS = 0; int totalVirtualPS = 0; foreach (NetConnection client in server.Connections.Values) { totalPhysicalPS += client.Stats.PhysicalPacketsReceivedPerSecond; totalVirtualPS += client.Stats.PacketsReceivedPerSecond; } screen.WriteLine("Total PPackets r/s: {0}", totalPhysicalPS); screen.WriteLine("Total VPackets r/s: {0}", totalVirtualPS); screen.WriteLine(""); foreach (NetConnection client in server.Connections.Values) { screen.WriteLine("[{0}]:", ConsoleColor.Green, client); screen.WriteLine("Send Rate: {0}", client.PacketSendRate); screen.WriteLine("MTU: {0}", client.Stats.MTU); screen.WriteLine("Ping: {0}", client.Stats.Ping); screen.WriteLine("VPackets s/s: {0}", client.Stats.PacketsSentPerSecond); screen.WriteLine("VPackets r/s: {0}", client.Stats.PacketsReceivedPerSecond); screen.WriteLine("Packets Lost: {0}", client.Stats.PacketsLost); screen.WriteLine("PPackets s/s: {0}", client.Stats.PhysicalPacketsSentPerSecond); screen.WriteLine("PPackets r/s: {0}", client.Stats.PhysicalPacketsReceivedPerSecond); } })); }