001package squidpony.squidgrid.zone;
002
003/**
004 * Created by Tommy Ettinger on 11/24/2016.
005 */
006public interface MutableZone extends Zone {
007
008    /**
009     * Expands this Zone in the four cardinal directions, performing the expansion consecutively {@code distance} times.
010     * Modified this Zone in-place and returns it for chaining.
011     * @param distance the amount to expand outward using Manhattan distance (diamond shape)
012     * @return this for chaining, after being modified in-place
013     */
014    Zone expand(int distance);
015
016    /**
017     * Expands this Zone in the four cardinal and four diagonal directions, performing the expansion consecutively
018     * {@code distance} times. Modified this Zone in-place and returns it for chaining.
019     * @param distance the amount to expand outward using Chebyshev distance (square shape)
020     * @return this for chaining, after being modified in-place
021     */
022    Zone expand8way(int distance);
023}