Ejemplo n.º 1
0
 public static void changeTerrainElement(int x, int y, TerrainElement element)
 {
     try {
         terrain[x, y] = element;
         Renderer.rerenderAtPos(x, y);
     }
     catch
     {
         // ignored
     }
 }
Ejemplo n.º 2
0
        private void Remake()
        {
            // Start remake after 2 seconds
            Thread.Sleep(2 * 1000);

            // Start every block, from bottom to up
            for (int i = blocks.Count - 1; i > 0; i--)
            {
                // Check if block isn't null
                if (blocks[i] != null)
                {
                    // Set element to blocks[i]
                    TerrainElement element = blocks[i];
                    // TerrainElement which will placed later
                    TerrainElement willadded;

                    // Check if TerrainElement
                    if (element is TerrainSolid)
                    {
                        willadded = new TerrainSolid(element.getX(), element.getY());
                    }
                    else if (element is TerrainSpike)
                    {
                        willadded = new TerrainSpike(element.getX(), element.getY());
                    }
                    else
                    {
                        willadded = new TerrainSolid(element.getX(), element.getY());
                    }

                    lock (WorldThread.WantToRender)
                    {
                        // Set willadded to wantToRender, for Render in WorldThread
                        WorldThread.WantToRender.Add(willadded);
                    }

                    lock (World.entities)
                    {
                        // Go every entity
                        foreach (Entity entity in World.entities)
                        {
                            // Check if entity is in radius
                            if (entity.getX() < getX() + 5 && entity.getX() > getX() - 5 && entity.getY() < getY() + 5 && entity.getY() > getY() - 5)
                            {
                                if (entity is EntityPlayer)
                                {
                                    ((EntityPlayer)entity).setDead();
                                }
                                else
                                {
                                    entity.setDead();
                                }
                            }
                        }
                    }

                    // Sleep after block setting
                    Thread.Sleep(100);
                }
            }

            // Spawn two new bombs
            for (int i = 0; i < 2; i++)
            {
                int random = World.rand.Next(110) + 4;
                if (random < 10)
                {
                    i--;
                }
                else
                {
                    new SpawnEntity(new EntityBomb(random, 2));
                }
            }
        }