API Synced with Grinder canges.

This commit is contained in:
AlgorithmX2 2014-07-20 01:50:50 -05:00
parent af3a9f29b6
commit fdc263702e
3 changed files with 54 additions and 1 deletions

View file

@ -96,6 +96,20 @@ public class GrinderRecipeManager implements IGrinderRegistry, IOreListener
injectRecipe( new AppEngGrinderRecipe( copy( in ), copy( out ), copy( optional ), chance, cost ) ); injectRecipe( new AppEngGrinderRecipe( copy( in ), copy( out ), copy( optional ), chance, cost ) );
} }
@Override
public void addRecipe(ItemStack in, ItemStack out, ItemStack optional, float chance, ItemStack optional2, float chance2, int cost)
{
if ( in == null || (optional == null && out == null && optional2 == null) )
{
log( "Invalid Grinder Recipe Specified." );
return;
}
log( "Allow Grinding of " + Platform.getItemDisplayName( in ) + " to " + Platform.getItemDisplayName( out ) + " with optional "
+ Platform.getItemDisplayName( optional ) + " for " + cost );
injectRecipe( new AppEngGrinderRecipe( copy( in ), copy( out ), copy( optional ), chance, cost ) );
}
@Override @Override
public IGrinderEntry getRecipeForInput(ItemStack input) public IGrinderEntry getRecipeForInput(ItemStack input)
{ {

View file

@ -12,6 +12,9 @@ public class AppEngGrinderRecipe implements IGrinderEntry
private float optionalChance; private float optionalChance;
private ItemStack optionalOutput; private ItemStack optionalOutput;
private float optionalChance2;
private ItemStack optionalOutput2;
private int energy; private int energy;
public AppEngGrinderRecipe(ItemStack a, ItemStack b, int cost) { public AppEngGrinderRecipe(ItemStack a, ItemStack b, int cost) {
@ -30,6 +33,19 @@ public class AppEngGrinderRecipe implements IGrinderEntry
energy = cost; energy = cost;
} }
public AppEngGrinderRecipe(ItemStack a, ItemStack b, ItemStack c, ItemStack d, float chance, float chance2, int cost) {
in = a;
out = b;
optionalOutput = c;
optionalChance = chance;
optionalOutput2 = d;
optionalChance2 = chance2;
energy = cost;
}
@Override @Override
public ItemStack getInput() public ItemStack getInput()
{ {
@ -75,7 +91,7 @@ public class AppEngGrinderRecipe implements IGrinderEntry
@Override @Override
public void setOptionalOutput(ItemStack output, float chance) public void setOptionalOutput(ItemStack output, float chance)
{ {
optionalOutput = output; optionalOutput = output.copy();
optionalChance = chance; optionalChance = chance;
} }
@ -85,4 +101,23 @@ public class AppEngGrinderRecipe implements IGrinderEntry
return optionalChance; return optionalChance;
} }
@Override
public ItemStack getSecondOptionalOutput()
{
return optionalOutput2;
}
@Override
public void setSecondOptionalOutput(ItemStack output, float chance)
{
optionalChance2 = chance;
optionalOutput2 = output.copy();
}
@Override
public float getSecondOptionalChance()
{
return optionalChance2;
}
} }

View file

@ -144,6 +144,10 @@ public class TileGrinder extends AEBaseInvTile implements ICrankable
if ( chance <= r.getOptionalChance() ) if ( chance <= r.getOptionalChance() )
addItem( sia, r.getOptionalOutput() ); addItem( sia, r.getOptionalOutput() );
chance = (Platform.getRandomInt() % 2000) / 2000.0f;
if ( chance <= r.getSecondOptionalChance() )
addItem( sia, r.getSecondOptionalOutput() );
this.setInventorySlotContents( 6, null ); this.setInventorySlotContents( 6, null );
} }
} }