Allow itemstacks for furnace recipe inputs. Allow passing extra arguments through registerblock into the itemblock constructor.

This commit is contained in:
Christian committed 2013-12-28 18:04:30 -05:00
1 parent 061288909d
commit 5d069629cf
2 files changed
+15 -6

No files matched your search

@@ -10,18 +10,15 @@ import io.netty.util.AttributeKey;
import io.netty.util.concurrent.Future;
import io.netty.util.concurrent.GenericFutureListener;
import io.netty.util.concurrent.ScheduledFuture;
import java.net.SocketAddress;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.TimeUnit;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.network.EnumConnectionState;
import net.minecraft.network.NetHandlerPlayServer;
import net.minecraft.network.NetworkManager;
import net.minecraft.network.Packet;
import net.minecraft.network.play.INetHandlerPlayClient;
import net.minecraft.network.play.client.C17PacketCustomPayload;
import net.minecraft.network.play.server.S3FPacketCustomPayload;
import net.minecraft.network.play.server.S40PacketDisconnect;
@@ -38,6 +38,7 @@ import com.google.common.base.Objects;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.ObjectArrays;
import com.google.common.collect.Sets;
import com.google.common.primitives.Ints;
@@ -165,7 +166,7 @@ public class GameRegistry
* @param name The mod-unique name to register it with
* @param modId The modId that will own the block name. null defaults to the active modId
*/
public static Block registerBlock(Block block, Class<? extends ItemBlock> itemclass, String name, String modId)
public static Block registerBlock(Block block, Class<? extends ItemBlock> itemclass, String name, String modId, Object... itemCtorArgs)
{
if (Loader.instance().isInState(LoaderState.CONSTRUCTING))
{
@@ -177,8 +178,14 @@ public class GameRegistry
ItemBlock i = null;
if (itemclass != null)
{
Constructor<? extends ItemBlock> itemCtor = itemclass.getConstructor(Block.class);
i = itemCtor.newInstance(block);
Class<?>[] ctorArgClasses = new Class<?>[itemCtorArgs.length + 1];
ctorArgClasses[0] = Block.class;
for (int idx = 1; idx < ctorArgClasses.length; idx++)
{
ctorArgClasses[idx] = itemCtorArgs[idx-1].getClass();
}
Constructor<? extends ItemBlock> itemCtor = itemclass.getConstructor(ctorArgClasses);
i = itemCtor.newInstance(ObjectArrays.concat(block, itemCtorArgs));
}
if (i != null)
{
@@ -228,6 +235,11 @@ public class GameRegistry
FurnaceRecipes.func_77602_a().func_151396_a(input, output, xp);
}
public static void addSmelting(ItemStack input, ItemStack output, float xp)
{
FurnaceRecipes.func_77602_a().func_151394_a(input, output, xp);
}
public static void registerTileEntity(Class<? extends TileEntity> tileEntityClass, String id)
{
TileEntity.func_145826_a(tileEntityClass, id);