Files
inf3/src/Backend.cs

123 lines
2.2 KiB
C#

using System.Net.Sockets;
using System.Collections.Generic;
using WorldOfPeacecraft;
namespace WorldOfPeacecraft
{
public class Backend : IBackend
{
private Sender Send;
private Receiver Rec;
private Parser Parse;
private TcpClient Client;
private Dictionary<int, Dragon> Dragons;
private Dictionary<int, Player> Players;
private Map Map;
private Buffer SenderBuffer;
private IGui Gui;
public Backend (IGui gui)
{
Gui = gui;
Dragons = new Dictionary<int, Dragon> ();
Players = new Dictionary<int, Player> ();
Client = new TcpClient ("localhost", 9999);
Buffer receiverBuffer = new Buffer(10000);
SenderBuffer = new Buffer(100);
Parse = new Parser (this, receiverBuffer);
Rec = new Receiver (Client, receiverBuffer);
Send = new Sender (Client, SenderBuffer);
SenderBuffer.AddLine ("get:map");
SenderBuffer.AddLine ("get:ents");
}
public IEnumerable<IPositionable> GetDragons ()
{
return Dragons.Values;
}
public IEnumerable<IPositionable> GetPlayers ()
{
return Players.Values;
}
public void removeDragon (Dragon dragon)
{
Dragons.Remove (dragon.GetId ());
}
public void removePlayer (Player player)
{
Players.Remove (player.GetId ());
}
public void clearPlayers ()
{
Players.Clear ();
}
public void clearDragons ()
{
Dragons.Clear ();
}
public Player getPlayer (int playerId)
{
return Players[playerId];
}
public Dragon getDragon (int dragonId)
{
return Dragons[dragonId];
}
public Map getMapObject ()
{
return Map;
}
public void SetDragon (Dragon dragon)
{
Dragons [dragon.GetId ()] = dragon;
}
public void SetPlayer (Player player)
{
Players [player.GetId ()] = player;
}
public void SetMap (Map map)
{
this.Map = map;
}
public ITile[,] GetMap ()
{
if (Map == null) {
return null;
}
return Map.GetTiles ();
}
public void sendCommand (string command)
{
}
public void sendChat (string message)
{
}
public void RefreshGui()
{
Gui.PerformRefresh();
}
public void Stop() {
Parse.Stop ();
Send.Stop ();
Rec.Stop ();
System.Windows.Forms.Application.Exit ();
}
}
}