Erste Gui Version. Es wird lediglich die Map gezeichnet. Das Backend ist angeschlossen

This commit is contained in:
2014-04-30 17:28:58 +02:00
parent 7a8df2e147
commit ba4eb0d2d9
19 changed files with 363 additions and 513 deletions

View File

@@ -49,47 +49,31 @@ namespace WorldOfPeacecraft
public const string MessPlayers = "players";
public const string MessDragon = "dragon";
public const string MessMapcell = "cell";
private Buffer MonsterBuffer;
private Buffer InputBuffer;
private Thread ParserThread;
private LinkedList<string> Message;
private Regex LastLineRegex;
private Backend backend;
private Backend Backend;
public Parser (Buffer b)
public Parser (Backend backend, Buffer buffer)
{
MonsterBuffer = b;
ParserThread = new Thread (new ThreadStart (this.RunParser));
ParserThread.Start();
InputBuffer = buffer;
Backend = backend;
Message = new LinkedList<string> ();
LastLineRegex = new Regex ("^end:[0-9]+$");
ParserThread = new Thread (new ThreadStart (this.RunParser));
ParserThread.Start();
}
private void RunParser ()
{/*
{
while (true) {
bool waitRequired = false;
lock (MonsterBuffer) {
if (MonsterBuffer.Count == 0) {
waitRequired = true;
BufferFilledEvent.Reset ();
}
}
if (waitRequired) {
BufferFilledEvent.WaitOne ();
}
lock (Buffer) {
Message.AddLast (Buffer.Dequeue ());
}
Message.AddLast (InputBuffer.NextLine ());
if (IsCompletePackage ()) {
Parse ();
}
}*/
}
}
public Player getDummyPlayer()
{
return DummyPlayer;
}
private void Parse ()
{
@@ -188,11 +172,11 @@ namespace WorldOfPeacecraft
switch (block.GetName ()) {
case MessPlayer:
Player player = MapPlayer (block);
backend.removePlayer (player);
Backend.removePlayer (player);
break;
case MessDragon:
Dragon dragon = MapDragon (block);
backend.removeDragon (dragon);
Backend.removeDragon (dragon);
break;
default:
ThrowUnknownBlockException(deleteBlock, block);
@@ -215,7 +199,8 @@ namespace WorldOfPeacecraft
foreach (Block cell in cellsBlock.GetBlocks()) {
map.SetTile(MapMapcell(cell));
}
backend.SetMap(map);
Backend.SetMap(map);
Backend.RefreshGui();
}
private void ProcessMessage (Block mesBlock)
@@ -286,7 +271,6 @@ namespace WorldOfPeacecraft
break;
default:
throw new ParsingException("Invalid type"); // TODO Better message
break;
}
bool accepted = challengeBlock.GetBoolValue("accepted");
Challenge c = new Challenge(id, type, accepted);
@@ -295,12 +279,12 @@ namespace WorldOfPeacecraft
private void ProcessPlayer (Block playerBlock)
{
backend.SetPlayer(MapPlayer(playerBlock));
Backend.SetPlayer(MapPlayer(playerBlock));
}
private void ProcessMapcell (Block mapcellBlock)
{
backend.getMapObject().SetTile(MapMapcell(mapcellBlock));
Backend.getMapObject().SetTile(MapMapcell(mapcellBlock));
}
private void ProcessYourid (Block yourIdBlock)
@@ -329,15 +313,15 @@ namespace WorldOfPeacecraft
private void ProcessEntities (Block entitiesBlock)
{
backend.clearDragons ();
backend.clearPlayers ();
Backend.clearDragons ();
Backend.clearPlayers ();
foreach (Block entityBlock in entitiesBlock.GetBlocks ()) {
switch (entityBlock.GetName()) {
case MessPlayer:
backend.SetPlayer(MapPlayer(entityBlock));
Backend.SetPlayer(MapPlayer(entityBlock));
break;
case MessDragon:
backend.SetDragon(MapDragon(entityBlock));
Backend.SetDragon(MapDragon(entityBlock));
break;
default:
ThrowUnknownBlockException(entitiesBlock, entityBlock);
@@ -348,15 +332,15 @@ namespace WorldOfPeacecraft
private void ProcessPlayers (Block playersBlock)
{
backend.clearPlayers ();
Backend.clearPlayers ();
foreach (Block playerBlock in playersBlock.GetBlocks ()) {
backend.SetPlayer(MapPlayer(playerBlock));
Backend.SetPlayer(MapPlayer(playerBlock));
}
}
private void ProcessDragon (Block dragonBlock)
{
backend.SetDragon(MapDragon(dragonBlock));
Backend.SetDragon(MapDragon(dragonBlock));
}
private Dragon MapDragon (Block dragonBlock)