2015-03-07 12:51:28 +01:00
package ellpeck.actuallyadditions.crafting ;
2015-03-07 02:23:31 +01:00
2015-03-07 12:51:28 +01:00
import ellpeck.actuallyadditions.items.InitItems ;
import ellpeck.actuallyadditions.items.metalists.TheDusts ;
import ellpeck.actuallyadditions.recipe.GrinderRecipes ;
import ellpeck.actuallyadditions.util.Util ;
2015-03-07 02:23:31 +01:00
import net.minecraft.init.Blocks ;
import net.minecraft.init.Items ;
import net.minecraft.item.ItemStack ;
import net.minecraftforge.oredict.OreDictionary ;
import org.apache.logging.log4j.Level ;
import java.util.ArrayList ;
public class GrinderCrafting {
public static void init ( ) {
GrinderRecipes . instance ( ) . registerRecipe ( new ItemStack ( Blocks . iron_ore ) , new ItemStack ( InitItems . itemDust , 2 , TheDusts . IRON . ordinal ( ) ) , new ItemStack ( InitItems . itemDust , 1 , TheDusts . GOLD . ordinal ( ) ) , 10 ) ;
GrinderRecipes . instance ( ) . registerRecipe ( new ItemStack ( Blocks . redstone_ore ) , new ItemStack ( Items . redstone , 10 ) , null , 0 ) ;
2015-03-07 12:51:28 +01:00
GrinderRecipes . instance ( ) . registerRecipe ( new ItemStack ( Blocks . lapis_ore ) , new ItemStack ( InitItems . itemDust , 12 , TheDusts . LAPIS . ordinal ( ) ) , null , 0 ) ;
2015-03-07 02:23:31 +01:00
registerFinally ( ) ;
}
public static void registerFinally ( ) {
String [ ] names = OreDictionary . getOreNames ( ) ;
for ( String name : names ) {
if ( name . contains ( " ore " ) ) {
String nameOfOre = name . substring ( 3 ) ;
2015-03-08 14:58:26 +01:00
ArrayList < ItemStack > allDusts ;
if ( nameOfOre . contains ( " Nether " ) ) allDusts = OreDictionary . getOres ( " dust " + nameOfOre . substring ( 6 ) ) ;
else allDusts = OreDictionary . getOres ( " dust " + nameOfOre ) ;
2015-03-07 02:23:31 +01:00
if ( allDusts ! = null & & allDusts . size ( ) > 0 ) {
ArrayList < ItemStack > allOresOfName = OreDictionary . getOres ( name ) ;
if ( allOresOfName ! = null & & allOresOfName . size ( ) > 0 ) {
2015-03-08 14:58:26 +01:00
for ( ItemStack output : allDusts ) {
output . stackSize = 2 ;
for ( ItemStack input : allOresOfName ) {
if ( GrinderRecipes . instance ( ) . getOutput ( input , false ) = = null ) {
2015-03-07 02:23:31 +01:00
2015-03-08 14:58:26 +01:00
//Special Second Outputs
if ( name . equals ( " oreNickel " ) )
GrinderRecipes . instance ( ) . registerRecipe ( input , output , OreDictionary . getOres ( " dustPlatinum " ) . get ( 0 ) , 10 ) ;
2015-03-07 02:23:31 +01:00
2015-03-08 14:58:26 +01:00
else GrinderRecipes . instance ( ) . registerRecipe ( input , output , null , 0 ) ;
}
2015-03-07 02:23:31 +01:00
}
}
}
2015-03-08 14:58:26 +01:00
else Util . AA_LOGGER . log ( Level . ERROR , " Couldn't register Crusher Recipe! Didn't find Items registered as ' " + name + " '! This shouldn't happen as there is something registered as ' " + name + " ' that doesn't exist! " ) ;
2015-03-07 02:23:31 +01:00
}
2015-03-08 14:58:26 +01:00
else Util . AA_LOGGER . log ( Level . WARN , " Couldn't register Crusher Recipe! An Item with OreDictionary Registry 'dust " + nameOfOre + " ' doesn't exist! It should correspond to ' " + name + " '! This is not an Error, just a bit sad :( " ) ;
2015-03-07 02:23:31 +01:00
}
}
}
}