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 ;
2015-03-29 15:29:05 +02:00
import ellpeck.actuallyadditions.util.ModUtil ;
2015-03-07 12:51:28 +01:00
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 ( ) {
2015-03-19 21:27:56 +01:00
Util . logInfo ( " Initializing Grinder Recipes... " ) ;
2015-03-07 02:23:31 +01:00
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 ) {
2015-03-19 21:27:56 +01:00
int resultAmount = 1 ;
String nameOfOre = null ;
if ( name . length ( ) > 3 & & name . substring ( 0 , 3 ) . equals ( " ore " ) ) {
nameOfOre = name . substring ( 3 ) ;
resultAmount = 2 ;
}
if ( name . length ( ) > 9 & & name . substring ( 0 , 9 ) . equals ( " oreNether " ) ) {
nameOfOre = name . substring ( 9 ) ;
2015-03-29 15:29:05 +02:00
resultAmount = 4 ;
2015-03-19 21:27:56 +01:00
}
if ( name . length ( ) > 8 & & name . substring ( 0 , 8 ) . equals ( " denseore " ) ) {
nameOfOre = name . substring ( 8 ) ;
2015-03-29 15:29:05 +02:00
resultAmount = 12 ;
2015-03-19 21:27:56 +01:00
}
if ( name . length ( ) > 3 & & name . substring ( 0 , 3 ) . equals ( " gem " ) ) nameOfOre = name . substring ( 3 ) ;
if ( name . length ( ) > 5 & & name . substring ( 0 , 5 ) . equals ( " ingot " ) ) nameOfOre = name . substring ( 5 ) ;
if ( nameOfOre ! = null ) {
2015-03-08 14:58:26 +01:00
ArrayList < ItemStack > allDusts ;
2015-03-19 21:27:56 +01:00
String nameToGetFrom = " dust " + nameOfOre ;
2015-03-08 14:58:26 +01:00
2015-03-19 21:27:56 +01:00
allDusts = OreDictionary . getOres ( nameToGetFrom ) ;
2015-03-08 14:58:26 +01:00
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-29 15:29:05 +02:00
for ( ItemStack theDust : allDusts ) {
ItemStack output = theDust . copy ( ) ;
2015-03-19 21:27:56 +01:00
output . stackSize = resultAmount ;
2015-03-29 15:29:05 +02:00
for ( ItemStack theInput : allOresOfName ) {
ItemStack input = theInput . copy ( ) ;
2015-03-08 14:58:26 +01:00
if ( GrinderRecipes . instance ( ) . getOutput ( input , false ) = = null ) {
2015-03-29 15:29:05 +02:00
ArrayList < ItemStack > specialStacks = null ;
2015-03-07 02:23:31 +01:00
2015-03-29 15:29:05 +02:00
if ( name . equals ( " oreNickel " ) ) specialStacks = OreDictionary . getOres ( " dustPlatinum " ) ;
if ( specialStacks ! = null ) {
for ( ItemStack theSpecial : specialStacks ) {
ItemStack special = theSpecial . copy ( ) ;
GrinderRecipes . instance ( ) . registerRecipe ( input , output , special , 10 ) ;
}
2015-03-19 21:27:56 +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-29 15:29:05 +02:00
else ModUtil . 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-29 15:29:05 +02:00
else if ( ! name . equals ( " ingotBrick " ) & & ! name . equals ( " ingotBrickNether " ) ) ModUtil . AA_LOGGER . log ( Level . WARN , " Couldn't register Crusher Recipe! An Item with OreDictionary Registry ' " + nameToGetFrom + " ' 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
}
}
}
}