robust-toolbox-template-sin.../Template.Game/EntryPoint.cs
2021-12-29 12:34:48 +01:00

72 lines
No EOL
2.3 KiB
C#

using System.Globalization;
using Robust.Client;
using Robust.Shared.ContentPack;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Localization;
using Robust.Shared.Timing;
// DEVNOTE: You can change the namespace and project name to whatever you want!
// Just make sure to consistently use a prefix across your different projects.
namespace Template.Game;
public class EntryPoint : GameClient
{
// See line 35. Controls the default game culture and language.
// Robust calls this culture, but you might find it more fitting to call it the game
// language. Robust doesn't support changing this mid-game. Load your config file early
// if you want that.
private const string Culture = "en-US";
public override void PreInit()
{
base.PreInit();
// Default to en-US.
// DEVNOTE: If you want your game to be multi-regional at runtime, you'll need to
// do something more complicated here.
IoCManager.Resolve<ILocalizationManager>().LoadCulture(new CultureInfo(Culture));
}
public override void Init()
{
var factory = IoCManager.Resolve<IComponentFactory>();
// DEVNOTE: Registers all of your components.
factory.DoAutoRegistrations();
TemplateIoC.Register();
IoCManager.BuildGraph();
factory.GenerateNetIds();
// DEVNOTE: This is generally where you'll be setting up the IoCManager further, like the tile manager.
}
public override void PostInit()
{
base.PostInit();
// DEVNOTE: Further setup..
// DEVNOTE: This starts the singleplayer mode,
// which means you can start creating entities, spawning things...
// If you want to have a main menu to start the game from instead, use the StateManager.
IoCManager.Resolve<IBaseClient>().StartSinglePlayer();
}
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
// DEVNOTE: You'll want to do a proper shutdown here.
}
public override void Update(ModUpdateLevel level, FrameEventArgs frameEventArgs)
{
base.Update(level, frameEventArgs);
// DEVNOTE: Game update loop goes here. Usually you'll want some independent GameTicker.
}
}