79 lines
2.2 KiB
Java
79 lines
2.2 KiB
Java
/* Example:
|
|
|
|
NBTTagCompound msg = new NBTTagCompound();
|
|
NBTTagCompound in = new NBTTagCompound();
|
|
NBTTagCompound out = new NBTTagCompound();
|
|
|
|
new ItemStack( Blocks.iron_ore ).writeToNBT( in );
|
|
new ItemStack( Items.iron_ingot ).writeToNBT( out );
|
|
msg.setTag( "in", in );
|
|
msg.setTag( "out", out );
|
|
msg.setInteger( "turns", 8 );
|
|
|
|
FMLInterModComms.sendMessage( "appliedenergistics2", "add-grindable", msg );
|
|
|
|
-- or --
|
|
|
|
NBTTagCompound msg = new NBTTagCompound();
|
|
NBTTagCompound in = new NBTTagCompound();
|
|
NBTTagCompound out = new NBTTagCompound();
|
|
NBTTagCompound optional = new NBTTagCompound();
|
|
|
|
new ItemStack( Blocks.iron_ore ).writeToNBT( in );
|
|
new ItemStack( Items.iron_ingot ).writeToNBT( out );
|
|
new ItemStack( Blocks.gravel ).writeToNBT( optional );
|
|
msg.setTag( "in", in );
|
|
msg.setTag( "out", out );
|
|
msg.setTag( "optional", optional );
|
|
msg.setFloat( "chance", 0.5 );
|
|
msg.setInteger( "turns", 8 );
|
|
|
|
FMLInterModComms.sendMessage( "appliedenergistics2", "add-grindable", msg );
|
|
|
|
*/
|
|
package appeng.core.api.imc;
|
|
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraft.nbt.NBTTagCompound;
|
|
import appeng.api.AEApi;
|
|
import appeng.core.api.IIMCHandler;
|
|
import cpw.mods.fml.common.event.FMLInterModComms.IMCMessage;
|
|
|
|
public class IMCGrinder implements IIMCHandler
|
|
{
|
|
|
|
@Override
|
|
public void post(IMCMessage m)
|
|
{
|
|
NBTTagCompound msg = m.getNBTValue();
|
|
NBTTagCompound inTag = (NBTTagCompound) msg.getTag( "in" );
|
|
NBTTagCompound outTag = (NBTTagCompound) msg.getTag( "out" );
|
|
|
|
ItemStack in = ItemStack.loadItemStackFromNBT( inTag );
|
|
ItemStack out = ItemStack.loadItemStackFromNBT( outTag );
|
|
|
|
int turns = msg.getInteger( "turns" );
|
|
|
|
if ( in == null )
|
|
throw new RuntimeException( "invalid input" );
|
|
|
|
if ( out == null )
|
|
throw new RuntimeException( "invalid output" );
|
|
|
|
if ( msg.hasKey( "optional" ) )
|
|
{
|
|
NBTTagCompound optionalTag = (NBTTagCompound) msg.getTag( "optional" );
|
|
ItemStack optional = ItemStack.loadItemStackFromNBT( optionalTag );
|
|
|
|
if ( optional == null )
|
|
throw new RuntimeException( "invalid optional" );
|
|
|
|
float chance = msg.getFloat( "chance" );
|
|
|
|
AEApi.instance().registries().grinder().addRecipe( in, out, optional, chance, turns );
|
|
}
|
|
else
|
|
AEApi.instance().registries().grinder().addRecipe( in, out, turns );
|
|
}
|
|
|
|
}
|