001package squidpony.squidgrid.zone; 002 003/** 004 * Created by Tommy Ettinger on 11/24/2016. 005 */ 006public interface ImmutableZone extends Zone { 007 /** 008 * Expands the area of this Zone in the four cardinal directions, performing the expansion consecutively 009 * {@code distance} times. Does not modify this Zone; returns a new Zone with the requested changes. 010 * @param distance the amount to expand outward using Manhattan distance (diamond shape) 011 * @return a freshly-constructed Zone with the requested changes 012 */ 013 Zone expand(int distance); 014 015 /** 016 * Expands the area of this Zone in the four cardinal and four diagonal directions, performing the expansion 017 * consecutively {@code distance} times. Does not modify this Zone; returns a new Zone with the requested changes. 018 * @param distance the amount to expand outward using Chebyshev distance (square shape) 019 * @return a freshly-constructed Zone with the requested changes 020 */ 021 Zone expand8way(int distance); 022 023}