Letzte Bugfixes. Wegfindung funktioniert wieder
This commit is contained in:
@@ -33,8 +33,8 @@ namespace WorldOfPeacecraft
|
|||||||
Parse = new Parser (this, receiverBuffer);
|
Parse = new Parser (this, receiverBuffer);
|
||||||
Rec = new Receiver (Client, receiverBuffer);
|
Rec = new Receiver (Client, receiverBuffer);
|
||||||
Send = new Sender (Client, SenderBuffer);
|
Send = new Sender (Client, SenderBuffer);
|
||||||
SenderBuffer.AddLine ("get:me");
|
|
||||||
SenderBuffer.AddLine ("get:ents");
|
SenderBuffer.AddLine ("get:ents");
|
||||||
|
SenderBuffer.AddLine ("get:me");
|
||||||
SenderBuffer.AddLine ("get:map");
|
SenderBuffer.AddLine ("get:map");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -76,7 +76,11 @@ namespace WorldOfPeacecraft
|
|||||||
|
|
||||||
public Player getPlayer (int playerId)
|
public Player getPlayer (int playerId)
|
||||||
{
|
{
|
||||||
return Players[playerId];
|
try {
|
||||||
|
return Players [playerId];
|
||||||
|
} catch (KeyNotFoundException e) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Dictionary<int, Player> getPlayerList()
|
public Dictionary<int, Player> getPlayerList()
|
||||||
@@ -167,6 +171,7 @@ namespace WorldOfPeacecraft
|
|||||||
Pathwalker.Stop();
|
Pathwalker.Stop();
|
||||||
LinkedList<Coordinate> path = Pathfinder.FindPath (Players [SelfId].Coord, new Coordinate (x, y), Map);
|
LinkedList<Coordinate> path = Pathfinder.FindPath (Players [SelfId].Coord, new Coordinate (x, y), Map);
|
||||||
Pathwalker.SetCoords (path);
|
Pathwalker.SetCoords (path);
|
||||||
|
MoveStep();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void MoveStep ()
|
public void MoveStep ()
|
||||||
|
|||||||
@@ -300,19 +300,20 @@ namespace WorldOfPeacecraft
|
|||||||
|
|
||||||
private void ProcessPlayer (Block playerBlock)
|
private void ProcessPlayer (Block playerBlock)
|
||||||
{
|
{
|
||||||
int id = MapPlayer(playerBlock).GetId();
|
Player newPlayer = MapPlayer(playerBlock);
|
||||||
|
int id = newPlayer.GetId();
|
||||||
if (Backend.getPlayer(id) == null)
|
if (Backend.getPlayer(id) == null)
|
||||||
{
|
{
|
||||||
lock (Backend)
|
lock (Backend)
|
||||||
{
|
{
|
||||||
Backend.SetPlayer(MapPlayer(playerBlock));
|
Backend.SetPlayer(newPlayer);
|
||||||
}
|
}
|
||||||
Backend.RefreshGui();
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MapPlayerUPD(playerBlock);
|
MapPlayerUPD(newPlayer);
|
||||||
}
|
}
|
||||||
|
Backend.RefreshGui();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -359,9 +360,7 @@ namespace WorldOfPeacecraft
|
|||||||
foreach (Block entityBlock in entitiesBlock.GetBlocks ()) {
|
foreach (Block entityBlock in entitiesBlock.GetBlocks ()) {
|
||||||
switch (entityBlock.GetName ()) {
|
switch (entityBlock.GetName ()) {
|
||||||
case MessPlayer:
|
case MessPlayer:
|
||||||
lock (Backend) {
|
ProcessPlayer(entityBlock);
|
||||||
Backend.SetPlayer (MapPlayer (entityBlock));
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case MessDragon:
|
case MessDragon:
|
||||||
Backend.SetDragon (MapDragon (entityBlock));
|
Backend.SetDragon (MapDragon (entityBlock));
|
||||||
@@ -381,7 +380,7 @@ namespace WorldOfPeacecraft
|
|||||||
lock (Backend) {
|
lock (Backend) {
|
||||||
Backend.clearPlayers ();
|
Backend.clearPlayers ();
|
||||||
foreach (Block playerBlock in playersBlock.GetBlocks ()) {
|
foreach (Block playerBlock in playersBlock.GetBlocks ()) {
|
||||||
Backend.SetPlayer (MapPlayer (playerBlock));
|
ProcessPlayer(playerBlock);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Backend.RefreshGui ();
|
Backend.RefreshGui ();
|
||||||
@@ -417,19 +416,15 @@ namespace WorldOfPeacecraft
|
|||||||
return new Player (id, x, y, desc, busy, score);
|
return new Player (id, x, y, desc, busy, score);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void MapPlayerUPD(Block playerBlock)
|
private void MapPlayerUPD(Player p)
|
||||||
{
|
{
|
||||||
int id = playerBlock.GetIntValue(ValueId);
|
Player backendPlayer = Backend.getPlayer(p.GetId());
|
||||||
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);
|
|
||||||
|
|
||||||
Backend.getPlayer(id).SetScore(score);
|
backendPlayer.SetScore(p.GetScore());
|
||||||
Backend.getPlayer(id).SetDesc(desc);
|
backendPlayer.SetDesc(p.GetName());
|
||||||
Backend.getPlayer(id).SetX(x);
|
backendPlayer.SetBusy(p.GetBusy());
|
||||||
Backend.getPlayer(id).SetY(y);
|
backendPlayer.SetScore(p.GetScore());
|
||||||
|
backendPlayer.SetPos(p.GetX(), p.GetY());
|
||||||
}
|
}
|
||||||
|
|
||||||
private Tile MapMapcell (Block cellBlock)
|
private Tile MapMapcell (Block cellBlock)
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ namespace WorldOfPeacecraft
|
|||||||
if (x != GetX() || y != GetY ())
|
if (x != GetX() || y != GetY ())
|
||||||
positionChanged = true;
|
positionChanged = true;
|
||||||
base.SetPos (x, y);
|
base.SetPos (x, y);
|
||||||
if (LocationChanged != null)
|
if (positionChanged && LocationChanged != null)
|
||||||
LocationChanged(x, y);
|
LocationChanged(x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user