public static void changeTerrainElement(int x, int y, TerrainElement element) { try { terrain[x, y] = element; Renderer.rerenderAtPos(x, y); } catch { // ignored } }
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)); } } }