001 /* 002 * The FML Forge Mod Loader suite. 003 * Copyright (C) 2012 cpw 004 * 005 * This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free 006 * Software Foundation; either version 2.1 of the License, or any later version. 007 * 008 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 009 * A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. 010 * 011 * You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 012 * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 013 */ 014 015 package cpw.mods.fml.common; 016 017 import java.util.EnumSet; 018 019 public enum TickType { 020 /** 021 * Fired during the world evaluation loop 022 * server and client side 023 * 024 * arg 0 : The world that is ticking 025 */ 026 WORLD, 027 /** 028 * client side 029 * Fired during the render processing phase 030 * arg 0 : float "partial render time" 031 */ 032 RENDER, 033 /** 034 * client side 035 * Fired during the render processing phase if a GUI is open 036 * arg 0 : float "partial render time" 037 * arg 1 : the open gui or null if no gui is open 038 */ 039 GUI, 040 /** 041 * client side 042 * Fired during the client evaluation loop 043 * arg 0 : The open gui or null if no gui is open 044 */ 045 CLIENTGUI, 046 /** 047 * server side 048 * Fired once as the world loads from disk 049 */ 050 WORLDLOAD, 051 /** 052 * client side only 053 * Fired once per client tick loop. 054 */ 055 CLIENT, 056 /** 057 * client and server side. 058 * Fired whenever the players update loop runs. 059 * arg 0 : the player 060 * arg 1 : the world the player is in 061 */ 062 PLAYER, 063 /** 064 * server side only. 065 * This is the server game tick. 066 * Fired once per tick loop on the server. 067 */ 068 SERVER; 069 070 /** 071 * Partner ticks that are also cancelled by returning false from onTickInGame 072 * 073 * @return 074 */ 075 public EnumSet<TickType> partnerTicks() 076 { 077 if (this==CLIENT) return EnumSet.of(RENDER); 078 if (this==RENDER) return EnumSet.of(CLIENT); 079 if (this==GUI) return EnumSet.of(CLIENTGUI); 080 if (this==CLIENTGUI) return EnumSet.of(GUI); 081 return EnumSet.noneOf(TickType.class); 082 } 083 }