/// <summary> /// Attempts to remove a random bramble within a given (tile) area. /// </summary> /// <param name="minTileX"></param> /// <param name="minTileY"></param> /// <param name="width"></param> /// <param name="height"></param> /// <param name="adjacentRadius"></param> /// <param name="sync"></param> /// <returns>`true` if a bramble was found and removed.</returns> public static bool ErodeRandomBrambleWithinArea( int minTileX, int minTileY, int width, int height, int adjacentRadius, bool sync) { int randTileX = minTileX + TmlLibraries.SafelyGetRand().Next(width); int randTileY = minTileY + TmlLibraries.SafelyGetRand().Next(height); Tile tile = Framing.GetTileSafely(randTileX, randTileY); if (!tile.active() || tile.type != ModContent.TileType <CursedBrambleTile>()) { return(false); } if (!sync) { WorldGen.KillTile( i: randTileX, j: randTileY, fail: false, effectOnly: false, noItem: true ); WorldGen.SquareTileFrame(randTileX, randTileY); } else { TileLibraries.KillTile( tileX: randTileX, tileY: randTileY, effectOnly: false, dropsItem: false, forceSyncIfUnchanged: true ); } CursedBrambleTile.ErodeBramblesWithinAreaRadiusRandomly(minTileX, minTileY, adjacentRadius); return(true); }
//////////////// /// <summary> /// Attempts to remove a random bramble within a given (tile) radius of a given tile. /// </summary> /// <param name="tileX"></param> /// <param name="tileY"></param> /// <param name="radius"></param> /// <param name="adjacentRadius"></param> /// <returns>`true` if a bramble was found and removed.</returns> public static bool ErodeRandomBrambleWithinRadius(int tileX, int tileY, int radius, int adjacentRadius) { int randX = TmlLibraries.SafelyGetRand().Next(radius * 2); int randY = TmlLibraries.SafelyGetRand().Next(radius * 2); int randTileX = tileX + (randX - radius); int randTileY = tileY + (randY - radius); Tile tile = Framing.GetTileSafely(randTileX, randTileY); if (!tile.active() || tile.type != ModContent.TileType <CursedBrambleTile>()) { return(false); } TileLibraries.KillTile(randTileX, randTileY, false, false, true); CursedBrambleTile.ErodeBramblesWithinAreaRadiusRandomly(tileX, tileY, adjacentRadius); return(true); }