Letzte Bugfixes. Wegfindung funktioniert wieder

This commit is contained in:
2014-05-15 21:43:14 +02:00
parent ec6d0d6af0
commit 128adc7282
3 changed files with 22 additions and 22 deletions

View File

@@ -300,19 +300,20 @@ namespace WorldOfPeacecraft
private void ProcessPlayer (Block playerBlock)
{
int id = MapPlayer(playerBlock).GetId();
Player newPlayer = MapPlayer(playerBlock);
int id = newPlayer.GetId();
if (Backend.getPlayer(id) == null)
{
lock (Backend)
{
Backend.SetPlayer(MapPlayer(playerBlock));
Backend.SetPlayer(newPlayer);
}
Backend.RefreshGui();
}
else
{
MapPlayerUPD(playerBlock);
MapPlayerUPD(newPlayer);
}
Backend.RefreshGui();
}
@@ -359,9 +360,7 @@ namespace WorldOfPeacecraft
foreach (Block entityBlock in entitiesBlock.GetBlocks ()) {
switch (entityBlock.GetName ()) {
case MessPlayer:
lock (Backend) {
Backend.SetPlayer (MapPlayer (entityBlock));
}
ProcessPlayer(entityBlock);
break;
case MessDragon:
Backend.SetDragon (MapDragon (entityBlock));
@@ -381,7 +380,7 @@ namespace WorldOfPeacecraft
lock (Backend) {
Backend.clearPlayers ();
foreach (Block playerBlock in playersBlock.GetBlocks ()) {
Backend.SetPlayer (MapPlayer (playerBlock));
ProcessPlayer(playerBlock);
}
}
Backend.RefreshGui ();
@@ -417,19 +416,15 @@ namespace WorldOfPeacecraft
return new Player (id, x, y, desc, busy, score);
}
private void MapPlayerUPD(Block playerBlock)
private void MapPlayerUPD(Player p)
{
int id = playerBlock.GetIntValue(ValueId);
int score = playerBlock.GetIntValue(ValuePoints);
bool busy = playerBlock.GetBoolValue(ValueBusy);
string desc = playerBlock.GetStringValue(ValueDescription);
int x = playerBlock.GetIntValue(ValueX);
int y = playerBlock.GetIntValue(ValueY);
Player backendPlayer = Backend.getPlayer(p.GetId());
Backend.getPlayer(id).SetScore(score);
Backend.getPlayer(id).SetDesc(desc);
Backend.getPlayer(id).SetX(x);
Backend.getPlayer(id).SetY(y);
backendPlayer.SetScore(p.GetScore());
backendPlayer.SetDesc(p.GetName());
backendPlayer.SetBusy(p.GetBusy());
backendPlayer.SetScore(p.GetScore());
backendPlayer.SetPos(p.GetX(), p.GetY());
}
private Tile MapMapcell (Block cellBlock)