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;
019
020import baritone.api.behavior.ILookBehavior;
021import baritone.api.behavior.IPathingBehavior;
022import baritone.api.cache.IWorldProvider;
023import baritone.api.command.manager.ICommandManager;
024import baritone.api.event.listener.IEventBus;
025import baritone.api.pathing.calc.IPathingControlManager;
026import baritone.api.process.*;
027import baritone.api.selection.ISelectionManager;
028import baritone.api.utils.IInputOverrideHandler;
029import baritone.api.utils.IPlayerContext;
030
031/**
032 * @author Brady
033 * @since 9/29/2018
034 */
035public interface IBaritone {
036
037    /**
038     * @return The {@link IPathingBehavior} instance
039     * @see IPathingBehavior
040     */
041    IPathingBehavior getPathingBehavior();
042
043    /**
044     * @return The {@link ILookBehavior} instance
045     * @see ILookBehavior
046     */
047    ILookBehavior getLookBehavior();
048
049    /**
050     * @return The {@link IFollowProcess} instance
051     * @see IFollowProcess
052     */
053    IFollowProcess getFollowProcess();
054
055    /**
056     * @return The {@link IMineProcess} instance
057     * @see IMineProcess
058     */
059    IMineProcess getMineProcess();
060
061    /**
062     * @return The {@link IBuilderProcess} instance
063     * @see IBuilderProcess
064     */
065    IBuilderProcess getBuilderProcess();
066
067    /**
068     * @return The {@link IExploreProcess} instance
069     * @see IExploreProcess
070     */
071    IExploreProcess getExploreProcess();
072
073    /**
074     * @return The {@link IFarmProcess} instance
075     * @see IFarmProcess
076     */
077    IFarmProcess getFarmProcess();
078
079    /**
080     * @return The {@link ICustomGoalProcess} instance
081     * @see ICustomGoalProcess
082     */
083    ICustomGoalProcess getCustomGoalProcess();
084
085    /**
086     * @return The {@link IGetToBlockProcess} instance
087     * @see IGetToBlockProcess
088     */
089    IGetToBlockProcess getGetToBlockProcess();
090
091    /**
092     * @return The {@link IWorldProvider} instance
093     * @see IWorldProvider
094     */
095    IWorldProvider getWorldProvider();
096
097    /**
098     * Returns the {@link IPathingControlManager} for this {@link IBaritone} instance, which is responsible
099     * for managing the {@link IBaritoneProcess}es which control the {@link IPathingBehavior} state.
100     *
101     * @return The {@link IPathingControlManager} instance
102     * @see IPathingControlManager
103     */
104    IPathingControlManager getPathingControlManager();
105
106    /**
107     * @return The {@link IInputOverrideHandler} instance
108     * @see IInputOverrideHandler
109     */
110    IInputOverrideHandler getInputOverrideHandler();
111
112    /**
113     * @return The {@link IPlayerContext} instance
114     * @see IPlayerContext
115     */
116    IPlayerContext getPlayerContext();
117
118    /**
119     * @return The {@link IEventBus} instance
120     * @see IEventBus
121     */
122    IEventBus getGameEventHandler();
123
124    /**
125     * @return The {@link ISelectionManager} instance
126     * @see ISelectionManager
127     */
128    ISelectionManager getSelectionManager();
129
130    /**
131     * @return The {@link ICommandManager} instance
132     * @see ICommandManager
133     */
134    ICommandManager getCommandManager();
135
136    /**
137     * Open click
138     */
139    void openClick();
140}