public override void MoveTo(Vector2i newPos) { if (Chunk_ClientSide.GetBlock(newPos) != 0 && Chunk_ClientSide.GetBlock(newPos) != 255) { return; } base.MoveTo(newPos); NetworkComms.SendObject("Move", Network.ip, Options.PORT, Conversion.VectoriToString(newPos)); }
private static void GameWindow_KeyPressed(object sender, KeyEventArgs e) { if (crashed) { return; } if (writing && gameWindow.HasFocus()) { if (e.Code == Keyboard.Key.BackSpace && enter.Length > 0) { enter = enter.Remove(enter.Length - 1); } return; } switch (e.Code) { case Keyboard.Key.Subtract: player.itemInHand -= 1; if (player.itemInHand == 0) { player.itemInHand = 1; } break; case Keyboard.Key.Add: player.itemInHand += 1; if (!Blocks.IsBlock(player.itemInHand)) { player.itemInHand = 1; } break; case Keyboard.Key.D: if (Chunk_ClientSide.GetBlock(player.newPosition + new Vector2i(1, 0)) == 0) { Chunk_ClientSide.SetBlock(player.newPosition + new Vector2i(1, 0), player.itemInHand); } else { Chunk_ClientSide.SetBlock(player.newPosition + new Vector2i(1, 0), 0); player.ressources++; } break; case Keyboard.Key.S: if (Chunk_ClientSide.GetBlock(player.newPosition + new Vector2i(0, 1)) == 0) { Chunk_ClientSide.SetBlock(player.newPosition + new Vector2i(0, 1), player.itemInHand); } else { Chunk_ClientSide.SetBlock(player.newPosition + new Vector2i(0, 1), 0); player.ressources++; } break; case Keyboard.Key.Q: if (Chunk_ClientSide.GetBlock(player.newPosition + new Vector2i(-1, 0)) == 0) { Chunk_ClientSide.SetBlock(player.newPosition + new Vector2i(-1, 0), player.itemInHand); } else { Chunk_ClientSide.SetBlock(player.newPosition + new Vector2i(-1, 0), 0); } break; case Keyboard.Key.Z: if (Chunk_ClientSide.GetBlock(player.newPosition + new Vector2i(0, -1)) == 0) { Chunk_ClientSide.SetBlock(player.newPosition + new Vector2i(0, -1), player.itemInHand); } else { Chunk_ClientSide.SetBlock(player.newPosition + new Vector2i(0, -1), 0); } break; } }
} //Do all drawing stuff static void DrawWorld() { for (int y = -11; y < 12; y++) { for (int x = -11; x < 12; x++) { Vector2i pos = new Vector2i(player.position.X + x, player.position.Y + y); Vector2f drawPos = Screen.WorldToScreen(pos); ground.Position = drawPos; gameWindow.Draw(ground); } } for (int y = -11; y < 12; y++) { for (int x = -11; x < 12; x++) { Vector2i pos = new Vector2i(player.position.X + x, player.position.Y + y); byte bl = Chunk_ClientSide.GetBlock(pos); if (bl == 0) { continue; } Vector2f drawPos = Screen.WorldToScreen(pos); if (Blocks.GetType(bl) == Blocks.Types.Hole) { hole.Position = drawPos; gameWindow.Draw(hole); continue; } if (Blocks.GetType(bl) == Blocks.Types.Block) { block.Position = drawPos; block.Texture = textures[Blocks.GetTexture(bl)]; gameWindow.Draw(block); continue; } else { if (Chunk_ClientSide.GetBlock(pos + new Vector2i(1, 0)) > 1) { wall.SetPoint(0, new Vector2f(Options.squareSize, Options.blockQuart)); wall.SetPoint(1, new Vector2f(Options.squareSize, Options.blockThirdQuart)); } else { wall.SetPoint(0, new Vector2f(Options.blockThirdQuart, Options.blockQuart)); wall.SetPoint(1, new Vector2f(Options.blockThirdQuart, Options.blockThirdQuart)); } if (Chunk_ClientSide.GetBlock(pos + new Vector2i(0, 1)) > 1) { wall.SetPoint(2, new Vector2f(Options.blockThirdQuart, Options.squareSize)); wall.SetPoint(3, new Vector2f(Options.blockQuart, Options.squareSize)); } else { wall.SetPoint(2, new Vector2f(Options.blockThirdQuart, Options.blockThirdQuart)); wall.SetPoint(3, new Vector2f(Options.blockQuart, Options.blockThirdQuart)); } if (Chunk_ClientSide.GetBlock(pos + new Vector2i(-1, 0)) > 1) { wall.SetPoint(4, new Vector2f(0, Options.blockThirdQuart)); wall.SetPoint(5, new Vector2f(0, Options.blockQuart)); } else { wall.SetPoint(4, new Vector2f(Options.blockQuart, Options.blockThirdQuart)); wall.SetPoint(5, new Vector2f(Options.blockQuart, Options.blockQuart)); } if (Chunk_ClientSide.GetBlock(pos + new Vector2i(0, -1)) > 1) { wall.SetPoint(6, new Vector2f(Options.blockQuart, 0)); wall.SetPoint(7, new Vector2f(Options.blockThirdQuart, 0)); } else { wall.SetPoint(6, new Vector2f(Options.blockQuart, Options.blockQuart)); wall.SetPoint(7, new Vector2f(Options.blockThirdQuart, Options.blockQuart)); } wall.Position = drawPos; wall.Texture = textures[Blocks.GetTexture(bl)]; gameWindow.Draw(wall); continue; } } } } //Draw near blocksLimit