50 lines
1.2 KiB
C#
50 lines
1.2 KiB
C#
using Mine2d.engine;
|
|
using Mine2d.engine.networking;
|
|
using Mine2d.game.core;
|
|
using Mine2d.game.core.data;
|
|
using Mine2d.game.state;
|
|
|
|
namespace Mine2d.game;
|
|
|
|
public class Mine2dGame : Game
|
|
{
|
|
private readonly Context ctx;
|
|
|
|
public Mine2dGame(bool isHost)
|
|
{
|
|
var window = new Window("MultiPlayerGame" + (isHost ? " - host" : ""), 1200, 800);
|
|
this.ctx = isHost
|
|
? new Context(
|
|
isHost,
|
|
new Backend(),
|
|
new Frontend(),
|
|
new GameState(),
|
|
new FrontendGameState(),
|
|
new Renderer(window),
|
|
window
|
|
)
|
|
: new Context(
|
|
isHost,
|
|
new RemoteBackend(),
|
|
new Frontend(),
|
|
new GameState(),
|
|
new FrontendGameState(),
|
|
new Renderer(window),
|
|
window
|
|
);
|
|
Bootstrapper.Bootstrap();
|
|
this.ctx.Backend.Init();
|
|
this.ctx.Frontend.Init();
|
|
}
|
|
|
|
protected override void Draw()
|
|
{
|
|
this.ctx.Frontend.Process();
|
|
}
|
|
|
|
protected override void Update(double dt)
|
|
{
|
|
this.ctx.Backend.Process(dt);
|
|
}
|
|
}
|