public static void Run <T>(string[] args) where T : MyObjectBuilder_SessionSettings, new() { if (DedicatedServer.ProcessArgs(args)) { return; } if (Environment.UserInteractive) { MyPlugins.RegisterGameAssemblyFile(MyPerGameSettings.GameModAssembly); MyPlugins.RegisterSandboxAssemblyFile(MyPerGameSettings.SandboxAssembly); MyPlugins.RegisterSandboxGameAssemblyFile(MyPerGameSettings.SandboxGameAssembly); MyPlugins.RegisterFromArgs(args); MyPlugins.Load(); ShowWindow(GetConsoleWindow(), SW_HIDE); MyConfigurator.Start <T>(); MyPlugins.Unload(); return; } else { MyServiceBase.Run(new WindowsService()); return; } }
public static void Run <T>(string[] args) where T : MyObjectBuilder_SessionSettings, new() { if (DedicatedServer.ProcessArgs(args)) { return; } if (Environment.UserInteractive) { MyPlugins.RegisterGameAssemblyFile(MyPerGameSettings.GameModAssembly); MyPlugins.RegisterGameObjectBuildersAssemblyFile(MyPerGameSettings.GameModObjBuildersAssembly); MyPlugins.RegisterSandboxAssemblyFile(MyPerGameSettings.SandboxAssembly); MyPlugins.RegisterSandboxGameAssemblyFile(MyPerGameSettings.SandboxGameAssembly); MyPlugins.RegisterFromArgs(args); MyPlugins.Load(); bool resultRegisterAssemblies = MyObjectBuilderType.RegisterAssemblies(); Debug.Assert(resultRegisterAssemblies, "Registering object builders types from assemblies failed."); resultRegisterAssemblies = MyObjectBuilderSerializer.RegisterAssembliesAndLoadSerializers(); Debug.Assert(resultRegisterAssemblies, "Registering object builders serializers from assemblies failed."); ShowWindow(GetConsoleWindow(), SW_HIDE); MyConfigurator.Start <T>(); MyPlugins.Unload(); return; } else { MyServiceBase.Run(new WindowsService()); return; } }
private void Reset( ) { SteamReset( ); /* * if (MyAPIGateway.Session != null) * { * MyAPIGateway.Session.UnloadDataComponents(); * MyAPIGateway.Session.UnloadMultiplayer(); * MyAPIGateway.Session.Unload(); * } */ try { MyPlugins.Unload( ); } catch { } MyAudio.Static.UnloadData( ); MyAudio.UnloadData( ); MyFileSystem.Reset( ); InputReset( ); PhysicsReset( ); }
static void Main(string[] args) { MyPlugins.Load(); var asyncInput = ReadConsoleAsync(); Console.CancelKeyPress += delegate(object sender, ConsoleCancelEventArgs eventArgs) { eventArgs.Cancel = true; IsRunning = false; }; m_client = new MyRakNetClient((ulong)m_port); for (int i = 0; i < 10; i++) { switch (m_client.Startup(m_port)) { case StartupResultEnum.SOCKET_PORT_ALREADY_IN_USE: m_port++; break; default: break; } } new MyRakNetSyncLayer().LoadData(m_client, typeof(Program).Assembly); //MySyncedClass mySyncedObject = new MySyncedClass(); //MySyncedFloatSNorm F = new MySyncedFloatSNorm(); //mySyncedObject.Add(F); //MySyncedInt I = new MySyncedInt(); //mySyncedObject.Add(I); //MySyncedClass myInnerSyncedObject = new MySyncedClass(); //MySyncedVector3 V3 = new MySyncedVector3(); //mySyncedObject.Add(V3); //mySyncedObject.Add(myInnerSyncedObject); //MyRakNetSyncLayer.RegisterSynced(mySyncedObject); MyRakNetSyncLayer.Static.OnEntityCreated += Static_OnEntityCreated; MyRakNetSyncLayer.Static.OnEntityDestroyed += Static_OnEntityDestroyed; RegisterEvents(m_client); var result = m_client.Connect("127.0.0.1", 27025); while (IsRunning) { if (asyncInput.IsCompleted) { var cmd = asyncInput.Result; if (!String.IsNullOrEmpty(cmd)) { if (cmd == "quit") { IsRunning = false; } else { m_client.SendChatMessage(cmd); } } asyncInput = ReadConsoleAsync(); } m_client.Update(); if (foo != null) { if (lastD != foo.Position.Get().X) { for (int i = 0; i < (foo.Position.Get().X + 1) / 2 * 115; i++) { Console.Out.Write("|"); } Console.Out.WriteLine(); lastD = foo.Position.Get().X; } if (lastStr != foo.Name.Get()) { Console.WriteLine(foo.Name.Get()); lastStr = foo.Name.Get(); } } //if (lastF != F) //{ // for (int i = 0; i < (F + 1) / 2 * 115; i++) // { // Console.Out.Write("|"); // } // Console.Out.WriteLine(); // lastF = F; //} //if (lastI != I) //{ // for (int i = 0; i < I % 116; i++) // { // Console.Out.Write("-"); // } // Console.Out.WriteLine(); // lastI = I; //} Thread.Sleep(16); } m_client.Dispose(); MyRakNetSyncLayer.Static.UnloadData(); MyPlugins.Unload(); }
static void Main(string[] args) { MyPlugins.Load(); var asyncInput = ReadConsoleAsync(); Console.CancelKeyPress += delegate(object sender, ConsoleCancelEventArgs eventArgs) { eventArgs.Cancel = true; IsRunning = false; }; m_server = new MyRakNetServer(0); m_server.Startup(32, 27025, null); new MyRakNetSyncLayer().LoadData(m_server, typeof(Program).Assembly); //MySyncedClass mySyncedObject = new MySyncedClass(); //MySyncedFloatSNorm F = new MySyncedFloatSNorm(); //mySyncedObject.Add(F); //MySyncedInt I = new MySyncedInt(); //mySyncedObject.Add(I); //MySyncedClass myInnerSyncedObject = new MySyncedClass(); //MySyncedVector3 V3 = new MySyncedVector3(); //mySyncedObject.Add(V3); //mySyncedObject.Add(myInnerSyncedObject); //MyRakNetSyncLayer.RegisterSynced(mySyncedObject); RegisterEvents(m_server); Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); Foo foo = null; bool sin = false; bool str = false; while (IsRunning) { if (asyncInput.IsCompleted) { var cmd = asyncInput.Result; if (!String.IsNullOrEmpty(cmd)) { if (cmd == "quit") { IsRunning = false; } else if (cmd == "+") { foo = new Foo(); foo.EntityID = 1; MyRakNetSyncLayer.Replicate(foo, foo.EntityID); } else if (cmd == "-") { if (foo != null) { MyRakNetSyncLayer.Destroy(foo.EntityID); foo = null; } } else if (cmd == "sin") { if (foo != null) { sin = !sin; } } else if (cmd == "str") { if (foo != null) { str = !str; } } else { m_server.SendChatMessage(cmd); } } asyncInput = ReadConsoleAsync(); } if (foo != null) { if (sin) { foo.Position.Set(new Vector3D(Math.Sin((double)stopWatch.ElapsedMilliseconds / 1000.0))); } if (str) { char c = (char)('a' + (byte)(stopWatch.ElapsedMilliseconds / 1000.0) % 26); foo.Name.Set(String.Concat(Enumerable.Repeat(c, 100))); } } //I.Set((int)(stopWatch.ElapsedMilliseconds / 1000.0)); //F.Set((float)Math.Sin((double)stopWatch.ElapsedMilliseconds / 1000.0)); //I.Set((int)(stopWatch.ElapsedMilliseconds/10)); //V3.Set(new Vector3(F, F, F)); MyRakNetSyncLayer.Static.Update(); m_server.Update(); //Console.Out.WriteLine(m_server.GetStatsToString()); Thread.Sleep(16); } m_server.Dispose(); MyRakNetSyncLayer.Static.UnloadData(); MyPlugins.Unload(); }