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; } }
/// <summary> /// Manually initializes definitions and other stuff we need to load the DS config serializer. /// Touch this and die. /// </summary> private static void InitSandbox() { FileSystem.InitMyFileSystem(); //Infinario should be disabled on DS MyFakes.ENABLE_INFINARIO = false; MyLog.Default = MySandboxGame.Log; MySandboxGame.Config = new MyConfig("SpaceEngineers.cfg"); MySandboxGame.Config.Load(); SpaceEngineersGame.SetupPerGameSettings(); SpaceEngineersGame.SetupBasicGameInfo(); //all this is basically copied from the MySandboxGame ctor //manually initializing this stuff prevents Steam from detecting SESE as an instance of the game MyPlugins.RegisterGameAssemblyFile(MyPerGameSettings.GameModAssembly); if (MyPerGameSettings.GameModBaseObjBuildersAssembly != null) { MyPlugins.RegisterBaseGameObjectBuildersAssemblyFile(MyPerGameSettings.GameModBaseObjBuildersAssembly); } MyPlugins.RegisterGameObjectBuildersAssemblyFile(MyPerGameSettings.GameModObjBuildersAssembly); MyPlugins.RegisterSandboxAssemblyFile(MyPerGameSettings.SandboxAssembly); MyPlugins.RegisterSandboxGameAssemblyFile(MyPerGameSettings.SandboxGameAssembly); MyPlugins.RegisterFromArgs(null); MyPlugins.Load(); MyGlobalTypeMetadata.Static.Init(); MyDefinitionManager.Static.PreloadDefinitions(); MyDefinitionManager.Static.PrepareBaseDefinitions(); MyDefinitionManager.Static.LoadScenarios(); //MyTutorialHelper.Init(); System.Runtime.CompilerServices.RuntimeHelpers.RunClassConstructor(typeof(MyObjectBuilder_Base).TypeHandle); }
public override void Init() { base.Init(); Log.Info($"Init server '{Config.InstanceName}' at '{Config.InstancePath}'"); MyFakes.ENABLE_INFINARIO = false; MyPerGameSettings.SendLogToKeen = false; MyPerServerSettings.GameName = MyPerGameSettings.GameName; MyPerServerSettings.GameNameSafe = MyPerGameSettings.GameNameSafe; MyPerServerSettings.GameDSName = MyPerServerSettings.GameNameSafe + "Dedicated"; MyPerServerSettings.GameDSDescription = "Your place for space engineering, destruction and exploring."; MySessionComponentExtDebug.ForceDisable = true; MyPerServerSettings.AppId = 244850; MyFinalBuildConstants.APP_VERSION = MyPerGameSettings.BasicGameInfo.GameVersion; MyPlugins.RegisterGameAssemblyFile(MyPerGameSettings.GameModAssembly); MyPlugins.RegisterGameObjectBuildersAssemblyFile(MyPerGameSettings.GameModObjBuildersAssembly); MyPlugins.RegisterSandboxAssemblyFile(MyPerGameSettings.SandboxAssembly); MyPlugins.RegisterSandboxGameAssemblyFile(MyPerGameSettings.SandboxGameAssembly); MyPlugins.Load(); MyGlobalTypeMetadata.Static.Init(); MyInitializer.InvokeBeforeRun( MyPerServerSettings.AppId, MyPerServerSettings.GameDSName, InstancePath, DedicatedServer.AddDateToLog); }
private static void RegisterPlugins() { MyPlugins.RegisterGameAssemblyFile("SpaceEngineers.Game.dll"); MyPlugins.RegisterGameObjectBuildersAssemblyFile("SpaceEngineers.ObjectBuilders.dll"); MyPlugins.RegisterSandboxAssemblyFile("Sandbox.Common.dll"); MyPlugins.RegisterSandboxGameAssemblyFile("Sandbox.Game.dll"); MyPlugins.Load(); MyObjectBuilderType.RegisterAssemblies(); MyObjectBuilderSerializer.RegisterAssembliesAndLoadSerializers(); }
private static void RegisterPlugins() { MyPlugins.RegisterGameAssemblyFile("SpaceEngineers.Game.dll"); MyPlugins.RegisterGameObjectBuildersAssemblyFile("SpaceEngineers.ObjectBuilders.dll"); MyPlugins.RegisterSandboxAssemblyFile("Sandbox.Common.dll"); MyPlugins.RegisterSandboxGameAssemblyFile("Sandbox.Game.dll"); #if DEBUG try { MyPlugins.Load(); } catch (ReflectionTypeLoadException ex) { MyLog.Default.WriteLine(ex); throw; } #else MyPlugins.Load(); #endif // No longer at available. //MyObjectBuilderType.RegisterAssemblies(); //MyObjectBuilderSerializer.RegisterAssembliesAndLoadSerializers(); }
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(); }