package joshie.harvest.api.town; import joshie.harvest.api.buildings.Building; import joshie.harvest.api.buildings.BuildingLocation; import joshie.harvest.api.npc.NPC; import net.minecraft.util.math.BlockPos; import javax.annotation.Nonnull; import javax.annotation.Nullable; public interface Town { /** Returns the block position location for this building, based off the offsets * @param building the build * @param offset the offset * @return the block position **/ @Nullable BlockPos getCoordinatesFromOffset(Building building, BlockPos offset); /** Returns the block position location for this building location * @param location the building location * @return the position**/ @Nullable BlockPos getCoordinatesFor(@Nonnull BuildingLocation location); /** Returns true if this town has the building * @param building the building to check for * @return true if the town has the building, false if it doesn't**/ boolean hasBuilding(Building building); /** Returns true if this town has the npc * @param npc the npc to check for * @return true if the town has the npc, false if it doesn't **/ boolean hasNPC(NPC npc); /** Returns the number of buildings in this town **/ int getBuildingCount(); }