feat: Splits Server in Core and Application (#1806)

> [!Note]
> **Developer Note**
> Now developers will only need to build/run the Application project instead of everything.
> When adding new projects, make sure to: 
> 1. Add a reference to that project in the Application project.
> 2. Add the dll file to the Distribution/Data/assemblies.json file

### Summary
- Adds an application project
- Consolidates process restarts to use `Core.Kill(true)`
- Removes some old messaging, for example processor optimization
- Fixes missing build cleanup
This commit is contained in:
Kamron Batman 2024-05-30 23:34:03 -07:00 • committed by GitHub
parent e85c56ec2d
commit 60a3a6f501
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
43 changed files with 572 additions and 585 deletions

View file

@ -2,48 +2,46 @@ using System;
using System.Reflection;
using Server.Misc;
namespace Server.Tests
namespace Server.Tests;
internal class ServerFixture : IDisposable
{
internal class ServerFixture : IDisposable
// Global setup
static ServerFixture()
{
// Global setup
static ServerFixture()
{
Core.Assembly = Assembly.GetExecutingAssembly();
Core.LoopContext = new EventLoopContext();
Core.Expansion = Expansion.EJ;
Core.ApplicationAssembly = Assembly.GetExecutingAssembly();
Core.LoopContext = new EventLoopContext();
Core.Expansion = Expansion.EJ;
// Load Configurations
ServerConfiguration.Load(true);
// Load Configurations
ServerConfiguration.Load(true);
// Load UOContent.dll into the type resolver
ServerConfiguration.AssemblyDirectories.Add(Core.BaseDirectory);
var assembles = new [] { "ModernUO.dll", "UOContent.dll" };
AssemblyHandler.LoadAssemblies(assembles);
// Load UOContent.dll into the type resolver
ServerConfiguration.AssemblyDirectories.Add(Core.BaseDirectory);
AssemblyHandler.LoadAssemblies(["Server.dll", "UOContent.dll"]);
// Load Skills
SkillsInfo.Configure();
// Load Skills
SkillsInfo.Configure();
// Configure / Initialize
TestMapDefinitions.ConfigureTestMapDefinitions();
// Configure / Initialize
TestMapDefinitions.ConfigureTestMapDefinitions();
// Configure the world
World.Configure();
// Configure the world
World.Configure();
Timer.Init(0);
Timer.Init(0);
// Configure Races
RaceDefinitions.Configure();
// Configure Races
RaceDefinitions.Configure();
// Load the world
World.Load();
// Load the world
World.Load();
World.ExitSerializationThreads();
}
World.ExitSerializationThreads();
}
public void Dispose()
{
Timer.Init(0);
}
public void Dispose()
{
Timer.Init(0);
}
}