Beispiel #1
0
 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));
 }
Beispiel #2
0
        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;
            }
        }
Beispiel #3
0
        }   //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