123 lines
2.2 KiB
C#
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 ();
|
|
}
|
|
}
|
|
}
|