001/* 002 * This file is part of Baritone. 003 * 004 * Baritone is free software: you can redistribute it and/or modify 005 * it under the terms of the GNU Lesser General Public License as published by 006 * the Free Software Foundation, either version 3 of the License, or 007 * (at your option) any later version. 008 * 009 * Baritone is distributed in the hope that it will be useful, 010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 012 * GNU Lesser General Public License for more details. 013 * 014 * You should have received a copy of the GNU Lesser General Public License 015 * along with Baritone. If not, see <https://www.gnu.org/licenses/>. 016 */ 017 018package baritone.api.utils; 019 020import baritone.api.pathing.calc.IPath; 021 022import java.util.Objects; 023import java.util.Optional; 024 025public class PathCalculationResult { 026 027 private final IPath path; 028 private final Type type; 029 030 public PathCalculationResult(Type type) { 031 this(type, null); 032 } 033 034 public PathCalculationResult(Type type, IPath path) { 035 Objects.requireNonNull(type); 036 this.path = path; 037 this.type = type; 038 } 039 040 public final Optional<IPath> getPath() { 041 return Optional.ofNullable(this.path); 042 } 043 044 public final Type getType() { 045 return this.type; 046 } 047 048 public enum Type { 049 SUCCESS_TO_GOAL, 050 SUCCESS_SEGMENT, 051 FAILURE, 052 CANCELLATION, 053 EXCEPTION, 054 } 055}