Handle the minecraft object registry better- now the client compiles too
Also a quickie astyle run over the code..
This commit is contained in:
parent
ae927a3cf8
commit
8b1f984c53
|
@ -32,18 +32,10 @@ public class FMLCommonHandler
|
||||||
private Map<Object, Set<String>> activeChannels = new HashMap<Object, Set<String>>();
|
private Map<Object, Set<String>> activeChannels = new HashMap<Object, Set<String>>();
|
||||||
private IFMLSidedHandler sidedDelegate;
|
private IFMLSidedHandler sidedDelegate;
|
||||||
|
|
||||||
private FMLCommonHandler() {
|
|
||||||
try {
|
public void registerSidedDelegate(IFMLSidedHandler handler)
|
||||||
Class.forName("net.minecraft.client.Minecraft");
|
{
|
||||||
sidedDelegate=(IFMLSidedHandler) Class.forName("cpw.mods.fml.client.FMLClientHandler").newInstance();
|
sidedDelegate = handler;
|
||||||
} catch (Exception ex) {
|
|
||||||
try {
|
|
||||||
sidedDelegate=(IFMLSidedHandler) Class.forName("cpw.mods.fml.server.FMLServerHandler").newInstance();
|
|
||||||
} catch (Exception ex2) {
|
|
||||||
Loader.log.severe("A severe installation issue has occured with FML, we cannot continue");
|
|
||||||
throw new LoaderException(ex2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void gameTickStart()
|
public void gameTickStart()
|
||||||
|
@ -168,11 +160,13 @@ public class FMLCommonHandler
|
||||||
return activeChannels.get(player).contains(channel);
|
return activeChannels.get(player).contains(channel);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Logger getFMLLogger() {
|
public Logger getFMLLogger()
|
||||||
|
{
|
||||||
return Loader.log;
|
return Loader.log;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Logger getMinecraftLogger() {
|
public Logger getMinecraftLogger()
|
||||||
|
{
|
||||||
return sidedDelegate.getMinecraftLogger();
|
return sidedDelegate.getMinecraftLogger();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,131 +13,90 @@
|
||||||
*/
|
*/
|
||||||
package net.minecraft.src;
|
package net.minecraft.src;
|
||||||
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class CommonRegistry
|
public class CommonRegistry
|
||||||
{
|
{
|
||||||
|
private static IMinecraftRegistry instance;
|
||||||
|
|
||||||
|
public static void registerRegistry(IMinecraftRegistry registry)
|
||||||
|
{
|
||||||
|
if (instance != null)
|
||||||
|
{
|
||||||
|
throw new RuntimeException("Illegal attempt to replace FML registry");
|
||||||
|
}
|
||||||
|
|
||||||
|
instance = registry;
|
||||||
|
}
|
||||||
public static void addRecipe(ItemStack output, Object... params)
|
public static void addRecipe(ItemStack output, Object... params)
|
||||||
{
|
{
|
||||||
CraftingManager.func_20151_a().func_20153_a(output, params);
|
instance.addRecipe(output, params);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void addShapelessRecipe(ItemStack output, Object... params)
|
public static void addShapelessRecipe(ItemStack output, Object... params)
|
||||||
{
|
{
|
||||||
CraftingManager.func_20151_a().func_21146_b(output, params);
|
instance.addShapelessRecipe(output, params);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void addSmelting(int input, ItemStack output)
|
public static void addSmelting(int input, ItemStack output)
|
||||||
{
|
{
|
||||||
FurnaceRecipes.func_21162_a().func_21160_a(input, output);
|
instance.addSmelting(input, output);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void registerBlock(Block block)
|
public static void registerBlock(Block block)
|
||||||
{
|
{
|
||||||
registerBlock(block, ItemBlock.class);
|
instance.registerBlock(block);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void registerBlock(Block block, Class <? extends ItemBlock > itemclass)
|
public static void registerBlock(Block block, Class <? extends ItemBlock > itemclass)
|
||||||
{
|
{
|
||||||
try
|
instance.registerBlock(block, itemclass);
|
||||||
{
|
|
||||||
assert block != null : "registerBlock: block cannot be null";
|
|
||||||
assert itemclass != null : "registerBlock: itemclass cannot be null";
|
|
||||||
int blockItemId = block.field_573_bc - 256;
|
|
||||||
itemclass.getConstructor(int.class).newInstance(blockItemId);
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
//HMMM
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void registerEntityID(Class <? extends Entity > entityClass, String entityName, int id)
|
public static void registerEntityID(Class <? extends Entity > entityClass, String entityName, int id)
|
||||||
{
|
{
|
||||||
EntityList.addNewEntityListMapping(entityClass, entityName, id);
|
instance.registerEntityID(entityClass, entityName, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void registerEntityID(Class <? extends Entity > entityClass, String entityName, int id, int backgroundEggColour, int foregroundEggColour)
|
public static void registerEntityID(Class <? extends Entity > entityClass, String entityName, int id, int backgroundEggColour, int foregroundEggColour)
|
||||||
{
|
{
|
||||||
EntityList.addNewEntityListMapping(entityClass, entityName, id, backgroundEggColour, foregroundEggColour);
|
instance.registerEntityID(entityClass, entityName, id, backgroundEggColour, foregroundEggColour);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void registerTileEntity(Class <? extends TileEntity > tileEntityClass, String id)
|
public static void registerTileEntity(Class <? extends TileEntity > tileEntityClass, String id)
|
||||||
{
|
{
|
||||||
TileEntity.addNewTileEntityMapping(tileEntityClass, id);
|
instance.registerTileEntity(tileEntityClass, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void addBiome(BiomeGenBase biome)
|
public static void addBiome(BiomeGenBase biome)
|
||||||
{
|
{
|
||||||
//NOOP because the implementation idea is broken. Creating a BiomeGenBase adds the biome already.
|
instance.addBiome(biome);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void addSpawn(Class <? extends EntityLiving > entityClass, int weightedProb, int min, int max, EnumCreatureType typeOfCreature, BiomeGenBase... biomes)
|
public static void addSpawn(Class <? extends EntityLiving > entityClass, int weightedProb, int min, int max, EnumCreatureType typeOfCreature, BiomeGenBase... biomes)
|
||||||
{
|
{
|
||||||
for (BiomeGenBase biome : biomes)
|
instance.addSpawn(entityClass, weightedProb, min, max, typeOfCreature, biomes);
|
||||||
{
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
List<SpawnListEntry> spawns = biome.func_25055_a(typeOfCreature);
|
|
||||||
|
|
||||||
for (SpawnListEntry entry : spawns)
|
|
||||||
{
|
|
||||||
//Adjusting an existing spawn entry
|
|
||||||
if (entry.field_25145_a == entityClass)
|
|
||||||
{
|
|
||||||
entry.field_35483_d = weightedProb;
|
|
||||||
entry.field_35484_b = min;
|
|
||||||
entry.field_35485_c = max;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
spawns.add(new SpawnListEntry(entityClass, weightedProb, min, max));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public static void addSpawn(String entityName, int weightedProb, int min, int max, EnumCreatureType spawnList, BiomeGenBase... biomes)
|
public static void addSpawn(String entityName, int weightedProb, int min, int max, EnumCreatureType spawnList, BiomeGenBase... biomes)
|
||||||
{
|
{
|
||||||
Class <? extends Entity > entityClazz = EntityList.getEntityToClassMapping().get(entityName);
|
instance.addSpawn(entityName, weightedProb, min, max, spawnList, biomes);
|
||||||
|
|
||||||
if (EntityLiving.class.isAssignableFrom(entityClazz))
|
|
||||||
{
|
|
||||||
addSpawn((Class <? extends EntityLiving >) entityClazz, weightedProb, min, max, spawnList, biomes);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void removeBiome(BiomeGenBase biome)
|
public static void removeBiome(BiomeGenBase biome)
|
||||||
{
|
{
|
||||||
// NOOP because broken
|
instance.removeBiome(biome);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void removeSpawn(Class <? extends EntityLiving > entityClass, EnumCreatureType typeOfCreature, BiomeGenBase... biomes)
|
public static void removeSpawn(Class <? extends EntityLiving > entityClass, EnumCreatureType typeOfCreature, BiomeGenBase... biomes)
|
||||||
{
|
{
|
||||||
for (BiomeGenBase biome : biomes)
|
instance.removeSpawn(entityClass, typeOfCreature, biomes);
|
||||||
{
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
List<SpawnListEntry> spawns = biome.func_25055_a(typeOfCreature);
|
|
||||||
|
|
||||||
for (SpawnListEntry entry : Collections.unmodifiableList(spawns))
|
|
||||||
{
|
|
||||||
if (entry.field_25145_a == entityClass)
|
|
||||||
{
|
|
||||||
spawns.remove(entry);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public static void removeSpawn(String entityName, EnumCreatureType spawnList, BiomeGenBase... biomes)
|
public static void removeSpawn(String entityName, EnumCreatureType spawnList, BiomeGenBase... biomes)
|
||||||
{
|
{
|
||||||
Class <? extends Entity > entityClazz = EntityList.getEntityToClassMapping().get(entityName);
|
instance.removeSpawn(entityName, spawnList, biomes);
|
||||||
|
|
||||||
if (EntityLiving.class.isAssignableFrom(entityClazz))
|
|
||||||
{
|
|
||||||
removeSpawn((Class <? extends EntityLiving >) entityClazz, spawnList, biomes);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
package net.minecraft.src;
|
||||||
|
|
||||||
|
public interface IMinecraftRegistry
|
||||||
|
{
|
||||||
|
|
||||||
|
public abstract void removeSpawn(String entityName, EnumCreatureType spawnList, BiomeGenBase... biomes);
|
||||||
|
|
||||||
|
public abstract void removeSpawn(Class <? extends EntityLiving > entityClass, EnumCreatureType typeOfCreature, BiomeGenBase... biomes);
|
||||||
|
|
||||||
|
public abstract void removeBiome(BiomeGenBase biome);
|
||||||
|
|
||||||
|
public abstract void addSpawn(String entityName, int weightedProb, int min, int max, EnumCreatureType spawnList, BiomeGenBase... biomes);
|
||||||
|
|
||||||
|
public abstract void addSpawn(Class <? extends EntityLiving > entityClass, int weightedProb, int min, int max, EnumCreatureType typeOfCreature, BiomeGenBase... biomes);
|
||||||
|
|
||||||
|
public abstract void addBiome(BiomeGenBase biome);
|
||||||
|
|
||||||
|
public abstract void registerTileEntity(Class <? extends TileEntity > tileEntityClass, String id);
|
||||||
|
|
||||||
|
public abstract void registerEntityID(Class <? extends Entity > entityClass, String entityName, int id, int backgroundEggColour, int foregroundEggColour);
|
||||||
|
|
||||||
|
public abstract void registerEntityID(Class <? extends Entity > entityClass, String entityName, int id);
|
||||||
|
|
||||||
|
public abstract void registerBlock(Block block, Class <? extends ItemBlock > itemclass);
|
||||||
|
|
||||||
|
public abstract void registerBlock(Block block);
|
||||||
|
|
||||||
|
public abstract void addSmelting(int input, ItemStack output);
|
||||||
|
|
||||||
|
public abstract void addShapelessRecipe(ItemStack output, Object... params);
|
||||||
|
|
||||||
|
public abstract void addRecipe(ItemStack output, Object... params);
|
||||||
|
|
||||||
|
}
|
Binary file not shown.
|
@ -20,6 +20,7 @@ import java.util.logging.Logger;
|
||||||
import net.minecraft.server.MinecraftServer;
|
import net.minecraft.server.MinecraftServer;
|
||||||
import net.minecraft.src.BaseMod;
|
import net.minecraft.src.BaseMod;
|
||||||
import net.minecraft.src.BiomeGenBase;
|
import net.minecraft.src.BiomeGenBase;
|
||||||
|
import net.minecraft.src.CommonRegistry;
|
||||||
import net.minecraft.src.EntityItem;
|
import net.minecraft.src.EntityItem;
|
||||||
import net.minecraft.src.EntityPlayer;
|
import net.minecraft.src.EntityPlayer;
|
||||||
import net.minecraft.src.IChunkProvider;
|
import net.minecraft.src.IChunkProvider;
|
||||||
|
@ -29,6 +30,7 @@ import net.minecraft.src.NetworkManager;
|
||||||
import net.minecraft.src.Packet1Login;
|
import net.minecraft.src.Packet1Login;
|
||||||
import net.minecraft.src.Packet250CustomPayload;
|
import net.minecraft.src.Packet250CustomPayload;
|
||||||
import net.minecraft.src.Packet3Chat;
|
import net.minecraft.src.Packet3Chat;
|
||||||
|
import net.minecraft.src.ServerRegistry;
|
||||||
import net.minecraft.src.World;
|
import net.minecraft.src.World;
|
||||||
import cpw.mods.fml.common.FMLCommonHandler;
|
import cpw.mods.fml.common.FMLCommonHandler;
|
||||||
import cpw.mods.fml.common.IFMLSidedHandler;
|
import cpw.mods.fml.common.IFMLSidedHandler;
|
||||||
|
@ -46,6 +48,8 @@ public class FMLServerHandler implements IFMLSidedHandler
|
||||||
public void onPreLoad(MinecraftServer minecraftServer)
|
public void onPreLoad(MinecraftServer minecraftServer)
|
||||||
{
|
{
|
||||||
server = minecraftServer;
|
server = minecraftServer;
|
||||||
|
FMLCommonHandler.instance().registerSidedDelegate(this);
|
||||||
|
CommonRegistry.registerRegistry(new ServerRegistry());
|
||||||
Loader.instance().loadMods();
|
Loader.instance().loadMods();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,145 @@
|
||||||
|
package net.minecraft.src;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class ServerRegistry implements IMinecraftRegistry
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addRecipe(ItemStack output, Object... params)
|
||||||
|
{
|
||||||
|
CraftingManager.func_20151_a().func_20153_a(output, params);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addShapelessRecipe(ItemStack output, Object... params)
|
||||||
|
{
|
||||||
|
CraftingManager.func_20151_a().func_21146_b(output, params);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addSmelting(int input, ItemStack output)
|
||||||
|
{
|
||||||
|
FurnaceRecipes.func_21162_a().func_21160_a(input, output);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerBlock(Block block)
|
||||||
|
{
|
||||||
|
registerBlock(block, ItemBlock.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerBlock(Block block, Class <? extends ItemBlock > itemclass)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
assert block != null : "registerBlock: block cannot be null";
|
||||||
|
assert itemclass != null : "registerBlock: itemclass cannot be null";
|
||||||
|
int blockItemId = block.field_573_bc - 256;
|
||||||
|
itemclass.getConstructor(int.class).newInstance(blockItemId);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
//HMMM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerEntityID(Class <? extends Entity > entityClass, String entityName, int id)
|
||||||
|
{
|
||||||
|
EntityList.addNewEntityListMapping(entityClass, entityName, id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerEntityID(Class <? extends Entity > entityClass, String entityName, int id, int backgroundEggColour, int foregroundEggColour)
|
||||||
|
{
|
||||||
|
EntityList.addNewEntityListMapping(entityClass, entityName, id, backgroundEggColour, foregroundEggColour);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerTileEntity(Class <? extends TileEntity > tileEntityClass, String id)
|
||||||
|
{
|
||||||
|
TileEntity.addNewTileEntityMapping(tileEntityClass, id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addBiome(BiomeGenBase biome)
|
||||||
|
{
|
||||||
|
//NOOP because the implementation idea is broken. Creating a BiomeGenBase adds the biome already.
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addSpawn(Class <? extends EntityLiving > entityClass, int weightedProb, int min, int max, EnumCreatureType typeOfCreature, BiomeGenBase... biomes)
|
||||||
|
{
|
||||||
|
for (BiomeGenBase biome : biomes)
|
||||||
|
{
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
List<SpawnListEntry> spawns = biome.func_25055_a(typeOfCreature);
|
||||||
|
|
||||||
|
for (SpawnListEntry entry : spawns)
|
||||||
|
{
|
||||||
|
//Adjusting an existing spawn entry
|
||||||
|
if (entry.field_25145_a == entityClass)
|
||||||
|
{
|
||||||
|
entry.field_35483_d = weightedProb;
|
||||||
|
entry.field_35484_b = min;
|
||||||
|
entry.field_35485_c = max;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
spawns.add(new SpawnListEntry(entityClass, weightedProb, min, max));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public void addSpawn(String entityName, int weightedProb, int min, int max, EnumCreatureType spawnList, BiomeGenBase... biomes)
|
||||||
|
{
|
||||||
|
Class <? extends Entity > entityClazz = EntityList.getEntityToClassMapping().get(entityName);
|
||||||
|
|
||||||
|
if (EntityLiving.class.isAssignableFrom(entityClazz))
|
||||||
|
{
|
||||||
|
addSpawn((Class <? extends EntityLiving >) entityClazz, weightedProb, min, max, spawnList, biomes);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeBiome(BiomeGenBase biome)
|
||||||
|
{
|
||||||
|
// NOOP because broken
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeSpawn(Class <? extends EntityLiving > entityClass, EnumCreatureType typeOfCreature, BiomeGenBase... biomes)
|
||||||
|
{
|
||||||
|
for (BiomeGenBase biome : biomes)
|
||||||
|
{
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
List<SpawnListEntry> spawns = biome.func_25055_a(typeOfCreature);
|
||||||
|
|
||||||
|
for (SpawnListEntry entry : Collections.unmodifiableList(spawns))
|
||||||
|
{
|
||||||
|
if (entry.field_25145_a == entityClass)
|
||||||
|
{
|
||||||
|
spawns.remove(entry);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public void removeSpawn(String entityName, EnumCreatureType spawnList, BiomeGenBase... biomes)
|
||||||
|
{
|
||||||
|
Class <? extends Entity > entityClazz = EntityList.getEntityToClassMapping().get(entityName);
|
||||||
|
|
||||||
|
if (EntityLiving.class.isAssignableFrom(entityClazz))
|
||||||
|
{
|
||||||
|
removeSpawn((Class <? extends EntityLiving >) entityClazz, spawnList, biomes);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue