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.behavior.look; 019 020import baritone.api.utils.Rotation; 021 022/** 023 * @author Brady 024 */ 025public interface ITickableAimProcessor extends IAimProcessor { 026 027 /** 028 * Advances the internal state of this aim processor by a single tick. 029 */ 030 void tick(); 031 032 /** 033 * Calls {@link #tick()} the specified number of times. 034 * 035 * @param ticks The number of calls 036 */ 037 void advance(int ticks); 038 039 /** 040 * Returns the actual rotation as provided by {@link #peekRotation(Rotation)}, and then automatically advances the 041 * internal state by one {@link #tick() tick}. 042 * 043 * @param rotation The desired rotation to set 044 * @return The actual rotation 045 */ 046 Rotation nextRotation(Rotation rotation); 047}