2012-03-30 10:11:13 -04:00
/*
2012-04-01 02:14:14 -04:00
* The FML Forge Mod Loader suite. Copyright (C) 2012 cpw
2012-04-05 10:07:52 -04:00
*
2012-03-30 10:11:13 -04:00
* 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
* Software Foundation; either version 2.1 of the License, or any later version.
2012-04-05 10:07:52 -04:00
*
2012-03-30 10:11:13 -04:00
* 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
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
2012-04-05 10:07:52 -04:00
*
2012-03-30 10:11:13 -04:00
* 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
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
2012-03-30 01:12:59 -04:00
package net.minecraft.src ;
2012-03-28 12:53:08 -04:00
2012-05-07 00:54:18 -04:00
import java.util.EnumSet ;
2012-03-28 12:53:08 -04:00
import java.util.List ;
2012-05-10 18:54:25 -04:00
import java.util.Map ;
2012-03-28 12:53:08 -04:00
import java.util.logging.Logger ;
2012-04-03 17:04:26 -04:00
import net.minecraft.server.MinecraftServer ;
2012-04-05 11:34:57 -04:00
import cpw.mods.fml.common.FMLCommonHandler ;
2012-04-02 18:09:06 -04:00
import cpw.mods.fml.common.Loader ;
2012-08-02 20:09:18 -02:30
import cpw.mods.fml.common.ObfuscationReflectionHelper ;
2012-05-07 00:54:18 -04:00
import cpw.mods.fml.common.modloader.ModLoaderHelper ;
2012-05-03 19:40:55 -04:00
import cpw.mods.fml.common.modloader.ModLoaderModContainer ;
2012-05-31 22:09:45 -04:00
import cpw.mods.fml.common.registry.FMLRegistry ;
2012-04-05 11:34:57 -04:00
import cpw.mods.fml.server.FMLServerHandler ;
2012-04-02 18:09:06 -04:00
2012-04-05 10:07:52 -04:00
public class ModLoader
{
/**
* Not used on the server.
*
* @param achievement
* @param name
* @param description
*/
public static void addAchievementDesc ( Achievement achievement , String name , String description )
{
2012-08-02 20:09:18 -02:30
String achName = achievement . func_75970_i ();
2012-05-10 18:54:25 -04:00
addLocalization ( achName , name );
addLocalization ( achName + ".desc" , description );
2012-04-05 10:07:52 -04:00
}
/**
* This method is a call in hook from modified external code. Implemented elsewhere.
2012-06-26 16:24:50 -04:00
*
2012-05-10 18:54:25 -04:00
* {@link FMLCommonHandler#fuelLookup(int, int)}
2012-06-26 16:24:50 -04:00
*
2012-04-05 10:07:52 -04:00
* @param id
* @param metadata
* @return
*/
@Deprecated
public static int addAllFuel ( int id , int metadata )
{
return 0 ;
}
2012-05-10 18:54:25 -04:00
public static void addAllRenderers ( Map < Class <? extends Entity > , Object > renderers )
{
}
public static void addAnimation ( Object anim )
{
}
2012-04-05 10:07:52 -04:00
/**
* This method is unimplemented in server versions to date.
*
* @param armor
* @return
*/
public static int addArmor ( String armor )
{
return 0 ;
}
/**
2012-05-03 14:05:13 -04:00
* This method adds the supplied biome to the set of candidate biomes for the default world generator type.
2012-04-05 10:07:52 -04:00
*
* @param biome
*/
public static void addBiome ( BiomeGenBase biome )
{
2012-08-02 20:09:18 -02:30
GameRegistry . addBiome ( biome );
2012-04-05 10:07:52 -04:00
}
/**
2012-05-10 18:54:25 -04:00
* Add localization for the specified string
*
2012-04-05 10:07:52 -04:00
* @param key
* @param value
*/
public static void addLocalization ( String key , String value )
{
2012-05-10 18:54:25 -04:00
addLocalization ( key , "en_US" , value );
2012-04-05 10:07:52 -04:00
}
/**
2012-05-10 18:54:25 -04:00
* Add localization for the specified string
*
2012-04-05 10:07:52 -04:00
* @param key
* @param lang
* @param value
*/
public static void addLocalization ( String key , String lang , String value )
{
2012-05-10 18:54:25 -04:00
FMLCommonHandler . instance (). addStringLocalization ( key , lang , value );
2012-04-05 10:07:52 -04:00
}
/**
2012-05-10 18:54:25 -04:00
* Name the specified minecraft object with the supplied name
*
2012-04-05 10:07:52 -04:00
* @param instance
* @param name
*/
public static void addName ( Object instance , String name )
{
2012-05-10 18:54:25 -04:00
addName ( instance , "en_US" , name );
2012-04-05 10:07:52 -04:00
}
/**
* Unimplemented on the server as it does not generate names
2012-05-10 18:54:25 -04:00
*
2012-04-05 10:07:52 -04:00
* @param instance
* @param lang
* @param name
*/
public static void addName ( Object instance , String lang , String name )
{
2012-05-10 18:54:25 -04:00
FMLCommonHandler . instance (). addNameForObject ( instance , lang , name );
2012-04-05 10:07:52 -04:00
}
/**
* Unimplemented on the server as it does not render textures
2012-06-26 16:24:50 -04:00
*
2012-04-05 10:07:52 -04:00
* @param fileToOverride
* @param fileToAdd
* @return
*/
public static int addOverride ( String fileToOverride , String fileToAdd )
{
return 0 ;
}
/**
* Unimplemented on the server as it does not render textures
2012-06-26 16:24:50 -04:00
*
2012-04-05 10:07:52 -04:00
* @param path
* @param overlayPath
* @param index
*/
public static void addOverride ( String path , String overlayPath , int index )
{
2012-05-10 18:54:25 -04:00
// NOOP
2012-04-05 10:07:52 -04:00
}
/**
* Add a Shaped Recipe
2012-05-10 18:54:25 -04:00
*
2012-04-05 10:07:52 -04:00
* @param output
* @param params
*/
public static void addRecipe ( ItemStack output , Object ... params )
{
2012-08-02 20:09:18 -02:30
GameRegistry . addRecipe ( output , params );
2012-04-05 10:07:52 -04:00
}
/**
* Add a shapeless recipe
2012-05-10 18:54:25 -04:00
*
2012-04-05 10:07:52 -04:00
* @param output
* @param params
*/
public static void addShapelessRecipe ( ItemStack output , Object ... params )
{
2012-08-02 20:09:18 -02:30
GameRegistry . addShapelessRecipe ( output , params );
2012-04-05 10:07:52 -04:00
}
/**
* Add a new product to be smelted
2012-05-10 18:54:25 -04:00
*
2012-04-05 10:07:52 -04:00
* @param input
* @param output
*/
public static void addSmelting ( int input , ItemStack output )
{
2012-08-02 20:09:18 -02:30
GameRegistry . addSmelting ( input , output , 1 . 0f );
2012-04-05 10:07:52 -04:00
}
/**
* Add a mob to the spawn list
2012-05-10 18:54:25 -04:00
*
2012-04-05 10:07:52 -04:00
* @param entityClass
* @param weightedProb
* @param min
* @param max
* @param spawnList
*/
public static void addSpawn ( Class <? extends EntityLiving > entityClass , int weightedProb , int min , int max , EnumCreatureType spawnList )
{
2012-08-02 20:09:18 -02:30
EntityRegistry . addSpawn ( entityClass , weightedProb , min , max , spawnList , WorldType . base12Biomes );
2012-04-05 10:07:52 -04:00
}
/**
* Add a mob to the spawn list
* @param entityClass
* @param weightedProb
* @param min
* @param max
* @param spawnList
* @param biomes
*/
2012-05-10 18:54:25 -04:00
public static void addSpawn ( Class <? extends EntityLiving > entityClass , int weightedProb , int min , int max , EnumCreatureType spawnList , BiomeGenBase ... biomes )
2012-04-05 10:07:52 -04:00
{
2012-08-02 20:09:18 -02:30
EntityRegistry . addSpawn ( entityClass , weightedProb , min , max , spawnList , biomes );
2012-04-05 10:07:52 -04:00
}
/**
* Add a mob to the spawn list
2012-05-10 18:54:25 -04:00
*
2012-04-05 10:07:52 -04:00
* @param entityName
* @param weightedProb
* @param min
* @param max
* @param spawnList
*/
public static void addSpawn ( String entityName , int weightedProb , int min , int max , EnumCreatureType spawnList )
{
2012-08-02 20:09:18 -02:30
EntityRegistry . addSpawn ( entityName , weightedProb , min , max , spawnList , WorldType . base12Biomes );
2012-04-05 10:07:52 -04:00
}
/**
* Add a mob to the spawn list
2012-08-02 20:09:18 -02:30
*
2012-04-05 10:07:52 -04:00
* @param entityName
* @param weightedProb
* @param min
* @param max
* @param spawnList
* @param biomes
*/
public static void addSpawn ( String entityName , int weightedProb , int min , int max , EnumCreatureType spawnList , BiomeGenBase ... biomes )
{
2012-05-31 22:09:45 -04:00
FMLRegistry . addSpawn ( entityName , weightedProb , min , max , spawnList , biomes );
2012-04-05 10:07:52 -04:00
}
/**
* This method is a call in hook from modified external code. Implemented elsewhere.
2012-04-05 11:34:57 -04:00
* {@link FMLServerHandler#tryDispensingEntity(World, double, double, double, byte, byte, ItemStack)}
2012-06-26 16:24:50 -04:00
*
2012-04-05 10:07:52 -04:00
* @param world
* @param x
* @param y
* @param z
* @param xVel
* @param zVel
* @param item
* @return
*/
@Deprecated
public static boolean dispenseEntity ( World world , double x , double y , double z , int xVel , int zVel , ItemStack item )
{
return false ;
}
/**
* Remove a container and drop all the items in it on the ground around
2012-05-10 18:54:25 -04:00
*
2012-04-05 10:07:52 -04:00
* @param world
* @param x
* @param y
* @param z
*/
public static void genericContainerRemoval ( World world , int x , int y , int z )
{
2012-08-02 20:09:18 -02:30
/* TileEntity te = world.func_603_b(x, y, z);
2012-04-05 10:07:52 -04:00
if (!(te instanceof IInventory))
2012-04-03 16:12:19 -04:00
{
2012-04-05 10:07:52 -04:00
return;
2012-04-03 16:12:19 -04:00
}
2012-04-05 10:07:52 -04:00
IInventory inv = (IInventory)te;
for (int l = 0; l < inv.func_83_a(); l++)
2012-04-03 16:12:19 -04:00
{
2012-04-05 10:07:52 -04:00
ItemStack itemstack = inv.func_82_a(l);
if (itemstack == null)
2012-04-03 16:12:19 -04:00
{
2012-04-05 10:07:52 -04:00
continue;
2012-04-03 16:12:19 -04:00
}
2012-04-05 10:07:52 -04:00
float f = world.field_803_m.nextFloat() * 0.8F + 0.1F;
float f1 = world.field_803_m.nextFloat() * 0.8F + 0.1F;
float f2 = world.field_803_m.nextFloat() * 0.8F + 0.1F;
while (itemstack.field_853_a > 0)
2012-04-03 16:12:19 -04:00
{
2012-04-05 10:07:52 -04:00
int i1 = world.field_803_m.nextInt(21) + 10;
if (i1 > itemstack.field_853_a)
{
i1 = itemstack.field_853_a ;
}
itemstack.field_853_a -= i1;
EntityItem entityitem = new EntityItem(world, (float)te.field_478_b + f, (float)te.field_483_c + f1, (float)te.field_482_d + f2, new ItemStack(itemstack.field_855_c, i1, itemstack.func_21125_h()));
float f3 = 0.05F;
entityitem.field_319_o = (float)world.field_803_m.nextGaussian() * f3;
entityitem.field_318_p = (float)world.field_803_m.nextGaussian() * f3 + 0.2F;
entityitem.field_317_q = (float)world.field_803_m.nextGaussian() * f3;
if (itemstack.func_40608_n())
{
entityitem.field_429_a.func_40604_d((NBTTagCompound)itemstack.func_40607_o().func_40468_b());
}
world.func_526_a(entityitem);
2012-04-03 16:12:19 -04:00
}
}
2012-08-02 20:09:18 -02:30
*/ }
2012-04-05 10:07:52 -04:00
/**
* Get a list of all BaseMod loaded into the system
* {@link ModLoaderModContainer#findAll}
2012-05-10 18:54:25 -04:00
*
2012-04-05 10:07:52 -04:00
* @return
*/
2012-05-31 22:42:23 -04:00
public static List < BaseMod > getLoadedMods ()
2012-04-05 10:07:52 -04:00
{
2012-05-31 22:42:23 -04:00
return ModLoaderModContainer . findAll ( BaseMod . class );
2012-04-05 10:07:52 -04:00
}
/**
2012-05-10 18:54:25 -04:00
* Get a logger instance {@link FMLCommonHandler#getFMLLogger()}
*
2012-04-05 10:07:52 -04:00
* @return
*/
public static Logger getLogger ()
{
2012-08-02 20:09:18 -02:30
return FMLLog . getLogger ();
2012-04-05 10:07:52 -04:00
}
2012-05-10 18:54:25 -04:00
public static Object getMinecraftInstance ()
{
return getMinecraftServerInstance ();
}
/**
* Get the minecraft server instance
* {@link FMLServerHandler#getServer()}
* @return
*/
public static MinecraftServer getMinecraftServerInstance ()
{
2012-08-02 20:09:18 -02:30
return FMLCommonHandler . instance (). getMinecraftServerInstance ();
2012-05-10 18:54:25 -04:00
}
2012-04-05 10:07:52 -04:00
/**
* Get a value from a field using reflection
* {@link ReflectionHelper#getPrivateValue(Class, Object, int)}
2012-05-10 18:54:25 -04:00
*
2012-04-05 10:07:52 -04:00
* @param instanceclass
* @param instance
* @param fieldindex
* @return
*/
2012-05-10 18:54:25 -04:00
public static < T , E > T getPrivateValue ( Class <? super E > instanceclass , E instance , int fieldindex )
2012-04-05 10:07:52 -04:00
{
2012-08-02 20:09:18 -02:30
return ObfuscationReflectionHelper . getPrivateValue ( instanceclass , instance , fieldindex );
2012-04-05 10:07:52 -04:00
}
/**
* Get a value from a field using reflection
2012-08-02 20:09:18 -02:30
* {@link ObfuscationReflectionHelper#getPrivateValue(Class, Object, String)}
2012-06-26 16:24:50 -04:00
*
2012-04-05 10:07:52 -04:00
* @param instanceclass
* @param instance
* @param field
* @return
*/
2012-05-10 18:54:25 -04:00
public static < T , E > T getPrivateValue ( Class <? super E > instanceclass , E instance , String field )
2012-04-05 10:07:52 -04:00
{
2012-08-02 20:09:18 -02:30
return ObfuscationReflectionHelper . getPrivateValue ( instanceclass , instance , field );
2012-04-05 10:07:52 -04:00
}
2012-05-10 18:54:25 -04:00
/**
* Stubbed method on the server to return a unique model id
2012-06-26 16:24:50 -04:00
*
2012-05-10 18:54:25 -04:00
*/
public static int getUniqueBlockModelID ( BaseMod mod , boolean inventoryRenderer )
{
return - 1 ;
}
2012-04-05 10:07:52 -04:00
/**
* Get a new unique entity id
* {@link Entity#getNextId()}
2012-05-10 18:54:25 -04:00
*
2012-04-05 10:07:52 -04:00
* @return
*/
public static int getUniqueEntityId ()
{
2012-08-02 20:09:18 -02:30
return EntityRegistry . findGlobalUniqueEntityId ();
2012-04-05 10:07:52 -04:00
}
2012-05-10 18:54:25 -04:00
public static int getUniqueSpriteIndex ( String path )
{
return - 1 ;
}
2012-06-26 16:24:50 -04:00
2012-05-10 18:54:25 -04:00
/**
* To properly implement packet 250 protocol you should always check your
* channel is active prior to sending the packet
2012-06-26 16:24:50 -04:00
*
2012-05-10 18:54:25 -04:00
* @param player
* @param channel
* @return
*/
public static boolean isChannelActive ( EntityPlayer player , String channel )
{
return FMLCommonHandler . instance (). isChannelActive ( channel , player );
}
public static boolean isGUIOpen ( Class <?> gui )
{
return false ;
}
2012-04-05 10:07:52 -04:00
/**
* Is the named mod loaded?
* {@link Loader#isModLoaded(String)}
2012-06-26 16:24:50 -04:00
*
2012-04-05 10:07:52 -04:00
* @param modname
* @return
*/
public static boolean isModLoaded ( String modname )
{
return Loader . isModLoaded ( modname );
}
2012-05-10 18:54:25 -04:00
/**
* Implemented elsewhere
*/
@Deprecated
public static void loadConfig ()
{
}
public static Object loadImage ( Object renderEngine , String path ) throws Exception
{
return null ;
}
/**
* Call in from elsewhere. Unimplemented here.
* @param player
* @param item
*/
@Deprecated
public static void onItemPickup ( EntityPlayer player , ItemStack item )
{
}
/**
* Call in from elsewhere. Unimplemented here.
*/
@Deprecated
public static void onTick ( float tick , Object game )
{
}
public static void openGUI ( EntityPlayer player , Object gui )
{
// NOOP
}
@Deprecated
public static void populateChunk ( IChunkProvider generator , int chunkX , int chunkZ , World world )
{
}
2012-04-05 10:07:52 -04:00
/**
* This method is a call in hook from modified external code. Implemented elsewhere.
2012-04-05 11:34:57 -04:00
* {@link FMLServerHandler#handlePacket250(Packet250CustomPayload, EntityPlayer)}
2012-06-26 16:24:50 -04:00
*
2012-04-05 10:07:52 -04:00
* @param packet
*/
@Deprecated
public static void receivePacket ( Packet250CustomPayload packet )
{
}
2012-05-10 18:54:25 -04:00
@Deprecated
public static Object [] registerAllKeys ( Object [] keys )
{
return keys ;
}
@Deprecated
public static void registerAllTextureOverrides ( Object cache )
{
}
2012-04-05 10:07:52 -04:00
/**
* Register a new block
2012-06-26 16:24:50 -04:00
*
2012-04-05 10:07:52 -04:00
* @param block
*/
public static void registerBlock ( Block block )
{
2012-08-02 20:09:18 -02:30
GameRegistry . registerBlock ( block );
2012-04-05 10:07:52 -04:00
}
/**
* Register a new block
2012-06-26 16:24:50 -04:00
*
2012-04-05 10:07:52 -04:00
* @param block
* @param itemclass
*/
2012-05-10 18:54:25 -04:00
public static void registerBlock ( Block block , Class <? extends ItemBlock > itemclass )
2012-04-05 10:07:52 -04:00
{
2012-08-02 20:09:18 -02:30
GameRegistry . registerBlock ( block , itemclass );
2012-04-05 10:07:52 -04:00
}
/**
* Register a new entity ID
2012-06-26 16:24:50 -04:00
*
2012-04-05 10:07:52 -04:00
* @param entityClass
* @param entityName
* @param id
*/
2012-05-10 18:54:25 -04:00
public static void registerEntityID ( Class <? extends Entity > entityClass , String entityName , int id )
2012-04-05 10:07:52 -04:00
{
2012-08-02 20:09:18 -02:30
EntityRegistry . registerEntityID ( entityClass , entityName , id );
2012-04-05 10:07:52 -04:00
}
/**
* Register a new entity ID
2012-06-26 16:24:50 -04:00
*
2012-04-05 10:07:52 -04:00
* @param entityClass
* @param entityName
* @param id
* @param background
* @param foreground
*/
2012-05-10 18:54:25 -04:00
public static void registerEntityID ( Class <? extends Entity > entityClass , String entityName , int id , int background , int foreground )
2012-04-05 10:07:52 -04:00
{
2012-08-02 20:09:18 -02:30
EntityRegistry . registerEntityID ( entityClass , entityName , id , background , foreground );
2012-04-05 10:07:52 -04:00
}
2012-05-10 18:54:25 -04:00
public static void registerKey ( BaseMod mod , Object keyHandler , boolean allowRepeat )
{
// NOOP
}
2012-04-05 10:07:52 -04:00
/**
2012-05-10 18:54:25 -04:00
* Register the mod for packets on this channel. This only registers the
* channel with Forge Mod Loader, not with clients connecting- use
* BaseMod.onClientLogin to tell them about your custom channel
2012-04-05 11:34:57 -04:00
* {@link FMLCommonHandler#registerChannel(cpw.mods.fml.common.ModContainer, String)}
2012-06-26 16:24:50 -04:00
*
2012-04-05 10:07:52 -04:00
* @param mod
* @param channel
*/
public static void registerPacketChannel ( BaseMod mod , String channel )
{
2012-06-26 16:24:50 -04:00
FMLCommonHandler . instance (). registerChannel ( FMLCommonHandler . instance (). findContainerFor ( mod ), channel );
2012-04-05 10:07:52 -04:00
}
/**
* Register a new tile entity class
2012-06-26 16:24:50 -04:00
*
2012-04-05 10:07:52 -04:00
* @param tileEntityClass
* @param id
*/
2012-05-10 18:54:25 -04:00
public static void registerTileEntity ( Class <? extends TileEntity > tileEntityClass , String id )
2012-04-05 10:07:52 -04:00
{
2012-08-02 20:09:18 -02:30
GameRegistry . registerTileEntity ( tileEntityClass , id );
2012-04-05 10:07:52 -04:00
}
2012-05-10 18:54:25 -04:00
public static void registerTileEntity ( Class <? extends TileEntity > tileEntityClass , String id , Object renderer )
{
2012-08-02 20:09:18 -02:30
GameRegistry . registerTileEntity ( tileEntityClass , id );
2012-05-10 18:54:25 -04:00
}
2012-04-05 10:07:52 -04:00
/**
2012-05-10 18:54:25 -04:00
* Remove a biome from the list of generated biomes
2012-06-26 16:24:50 -04:00
*
2012-04-05 10:07:52 -04:00
* @param biome
*/
public static void removeBiome ( BiomeGenBase biome )
{
2012-08-02 20:09:18 -02:30
GameRegistry . removeBiome ( biome );
2012-04-05 10:07:52 -04:00
}
/**
* Remove a spawn
2012-06-26 16:24:50 -04:00
*
2012-04-05 10:07:52 -04:00
* @param entityClass
* @param spawnList
*/
2012-05-10 18:54:25 -04:00
public static void removeSpawn ( Class <? extends EntityLiving > entityClass , EnumCreatureType spawnList )
2012-04-05 10:07:52 -04:00
{
2012-08-02 20:09:18 -02:30
EntityRegistry . removeSpawn ( entityClass , spawnList , WorldType . base12Biomes );
2012-04-05 10:07:52 -04:00
}
/**
* Remove a spawn
2012-06-26 16:24:50 -04:00
*
2012-04-05 10:07:52 -04:00
* @param entityClass
* @param spawnList
* @param biomes
*/
2012-05-10 18:54:25 -04:00
public static void removeSpawn ( Class <? extends EntityLiving > entityClass , EnumCreatureType spawnList , BiomeGenBase ... biomes )
2012-04-05 10:07:52 -04:00
{
2012-08-02 20:09:18 -02:30
EntityRegistry . removeSpawn ( entityClass , spawnList , biomes );
2012-04-05 10:07:52 -04:00
}
/**
* Remove a spawn
2012-06-26 16:24:50 -04:00
*
2012-04-05 10:07:52 -04:00
* @param entityName
* @param spawnList
*/
public static void removeSpawn ( String entityName , EnumCreatureType spawnList )
{
2012-08-02 20:09:18 -02:30
EntityRegistry . removeSpawn ( entityName , spawnList , WorldType . base12Biomes );
2012-04-05 10:07:52 -04:00
}
/**
* Remove a spawn
2012-06-26 16:24:50 -04:00
*
2012-04-05 10:07:52 -04:00
* @param entityName
* @param spawnList
* @param biomes
*/
public static void removeSpawn ( String entityName , EnumCreatureType spawnList , BiomeGenBase ... biomes )
{
2012-05-31 22:09:45 -04:00
FMLRegistry . removeSpawn ( entityName , spawnList , biomes );
2012-04-05 10:07:52 -04:00
}
2012-05-10 18:54:25 -04:00
@Deprecated
public static boolean renderBlockIsItemFull3D ( int modelID )
{
return false ;
}
@Deprecated
public static void renderInvBlock ( Object renderer , Block block , int metadata , int modelID )
{
// NOOP
}
@Deprecated
public static boolean renderWorldBlock ( Object renderer , IBlockAccess world , int x , int y , int z , Block block , int modelID )
{
return false ;
}
2012-04-05 10:07:52 -04:00
/**
* Configuration is handled elsewhere
* {@link ModLoaderModContainer}
*/
@Deprecated
public static void saveConfig ()
{
}
2012-08-02 20:09:18 -02:30
public static void sendPacket ( Packet packet ) {
// TODO
// FMLClientHandler.instance().sendPacket(packet);
}
2012-04-05 10:07:52 -04:00
/**
2012-05-10 18:54:25 -04:00
* Send a chat message to the server
2012-04-05 11:34:57 -04:00
* {@link FMLServerHandler#handleChatPacket(Packet3Chat, EntityPlayer)}
2012-06-26 16:24:50 -04:00
*
2012-04-05 10:07:52 -04:00
* @param text
*/
@Deprecated
public static void serverChat ( String text )
{
2012-05-10 18:54:25 -04:00
//TODO
}
@Deprecated
public static void serverLogin ( Object handler , Packet1Login loginPacket )
{
//TODO
2012-04-05 10:07:52 -04:00
}
/**
* Indicate that you want to receive ticks
*
2012-05-10 18:54:25 -04:00
* @param mod receiving the events
* @param enable indicates whether you want to recieve them or not
* @param useClock Not used in server side: all ticks are sent on the server side (no render subticks)
2012-04-05 10:07:52 -04:00
*/
public static void setInGameHook ( BaseMod mod , boolean enable , boolean useClock )
{
2012-05-07 00:54:18 -04:00
ModLoaderHelper . updateStandardTicks ( mod , enable , useClock );
2012-04-05 10:07:52 -04:00
}
2012-06-26 16:24:50 -04:00
2012-05-10 18:54:25 -04:00
public static void setInGUIHook ( BaseMod mod , boolean enable , boolean useClock )
{
ModLoaderHelper . updateGUITicks ( mod , enable , useClock );
}
2012-04-05 10:07:52 -04:00
/**
* Set a private field to a value using reflection
2012-08-02 20:09:18 -02:30
* {@link ObfuscationReflectionHelper#setPrivateValue(Class, Object, int, Object)}
2012-06-26 16:24:50 -04:00
*
2012-04-05 10:07:52 -04:00
* @param instanceclass
* @param instance
* @param fieldindex
* @param value
*/
2012-05-10 18:54:25 -04:00
public static < T , E > void setPrivateValue ( Class <? super T > instanceclass , T instance , int fieldindex , E value )
2012-04-05 10:07:52 -04:00
{
2012-08-02 20:09:18 -02:30
ObfuscationReflectionHelper . setPrivateValue ( instanceclass , instance , value , fieldindex );
2012-04-05 10:07:52 -04:00
}
/**
* Set a private field to a value using reflection
2012-08-02 20:09:18 -02:30
* {@link ObfuscationReflectionHelper#setPrivateValue(Class, Object, String, Object)}
2012-06-26 16:24:50 -04:00
*
2012-04-05 10:07:52 -04:00
* @param instanceclass
* @param instance
* @param field
* @param value
*/
2012-05-10 18:54:25 -04:00
public static < T , E > void setPrivateValue ( Class <? super T > instanceclass , T instance , String field , E value )
2012-04-05 10:07:52 -04:00
{
2012-08-02 20:09:18 -02:30
ObfuscationReflectionHelper . setPrivateValue ( instanceclass , instance , value , field );
2012-04-05 10:07:52 -04:00
}
/**
* This method is a call in hook from modified external code. Implemented elsewhere.
2012-04-05 11:34:57 -04:00
* {@link FMLServerHandler#onItemCrafted(EntityPlayer, ItemStack, IInventory)}
2012-06-26 16:24:50 -04:00
*
2012-04-05 10:07:52 -04:00
* @param player
* @param item
* @param matrix
*/
@Deprecated
public static void takenFromCrafting ( EntityPlayer player , ItemStack item , IInventory matrix )
{
}
/**
* This method is a call in hook from modified external code. Implemented elsewhere.
2012-04-05 11:34:57 -04:00
* {@link FMLServerHandler#onItemSmelted(EntityPlayer, ItemStack)}
2012-06-26 16:24:50 -04:00
*
2012-04-05 10:07:52 -04:00
* @param player
* @param item
*/
@Deprecated
public static void takenFromFurnace ( EntityPlayer player , ItemStack item )
{
}
/**
* Throw the offered exception. Likely will stop the game.
2012-04-05 11:34:57 -04:00
* {@link FMLServerHandler#raiseException(Throwable, String, boolean)}
2012-08-02 20:09:18 -02:30
*
2012-04-05 10:07:52 -04:00
* @param message
* @param e
*/
public static void throwException ( String message , Throwable e )
{
2012-05-10 18:54:25 -04:00
FMLCommonHandler . instance (). raiseException ( e , message , true );
2012-04-05 10:07:52 -04:00
}
2012-06-26 16:24:50 -04:00
2012-05-10 18:54:25 -04:00
public static void throwException ( Throwable e )
{
throwException ( "Exception in ModLoader" , e );
2012-04-06 12:24:52 -04:00
}
2012-03-30 01:12:59 -04:00
}