001/* 002 * Forge Mod Loader 003 * Copyright (c) 2012-2013 cpw. 004 * All rights reserved. This program and the accompanying materials 005 * are made available under the terms of the GNU Lesser Public License v2.1 006 * which accompanies this distribution, and is available at 007 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 008 * 009 * Contributors: 010 * cpw - implementation 011 */ 012 013package cpw.mods.fml.common; 014 015import java.util.EnumSet; 016 017 018/** 019 * 020 * Tick handler for mods to implement and register through the TickRegistry 021 * 022 * The data available to each tick is documented in the TickType 023 * 024 * @author cpw 025 * 026 */ 027public interface ITickHandler 028{ 029 030 /** 031 * Called at the "start" phase of a tick 032 * 033 * Multiple ticks may fire simultaneously- you will only be called once with all the firing ticks 034 * 035 * @param type 036 * @param tickData 037 */ 038 public void tickStart(EnumSet<TickType> type, Object... tickData); 039 040 /** 041 * Called at the "end" phase of a tick 042 * 043 * Multiple ticks may fire simultaneously- you will only be called once with all the firing ticks 044 * 045 * @param type 046 * @param tickData 047 */ 048 public void tickEnd(EnumSet<TickType> type, Object... tickData); 049 050 /** 051 * Returns the list of ticks this tick handler is interested in receiving at the minute 052 */ 053 public EnumSet<TickType> ticks(); 054 055 /** 056 * A profiling label for this tick handler 057 */ 058 public String getLabel(); 059}