From a82a03f3b9e286ece31ee902f5dd5a6ac8547fe2 Mon Sep 17 00:00:00 2001 From: AlgorithmX2 Date: Mon, 2 Jun 2014 11:23:47 -0500 Subject: [PATCH 1/2] IC2 Charging Re-Implemented. --- items/tools/powered/powersink/IC2.java | 50 ++++++++++++++++++++++++-- 1 file changed, 47 insertions(+), 3 deletions(-) diff --git a/items/tools/powered/powersink/IC2.java b/items/tools/powered/powersink/IC2.java index 5b8c84e1b..562571a5a 100644 --- a/items/tools/powered/powersink/IC2.java +++ b/items/tools/powered/powersink/IC2.java @@ -1,13 +1,16 @@ package appeng.items.tools.powered.powersink; import ic2.api.item.IElectricItemManager; +import ic2.api.item.ISpecialElectricItem; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import appeng.api.config.PowerUnits; import appeng.transformer.annotations.integration.Interface; +import appeng.transformer.annotations.integration.InterfaceList; -@Interface(iface = "ic2.api.item.IElectricItemManager", iname = "IC2") -public class IC2 extends AERootPoweredItem implements IElectricItemManager +@InterfaceList(value = { @Interface( iface = "ic2.api.item.ISpecialElectricItem", iname = "IC2"), @Interface( iface = "ic2.api.item.IElectricItemManager", iname = "IC2")} ) +public class IC2 extends AERootPoweredItem implements IElectricItemManager, ISpecialElectricItem { public IC2(Class c, String subname) { @@ -17,7 +20,13 @@ public class IC2 extends AERootPoweredItem implements IElectricItemManager @Override public int charge(ItemStack is, int amount, int tier, boolean ignoreTransferLimit, boolean simulate) { - return amount - ((int) injectExternalPower( PowerUnits.EU, is, amount, simulate )); + int addedAmt = amount; + int limit = getTransferLimit( is ); + + if ( ! ignoreTransferLimit && amount > limit ) + addedAmt = limit; + + return addedAmt - ((int) injectExternalPower( PowerUnits.EU, is, addedAmt, simulate )); } @Override @@ -62,4 +71,39 @@ public class IC2 extends AERootPoweredItem implements IElectricItemManager return null; } + @Override + public boolean canProvideEnergy(ItemStack itemStack) { + return false; + } + + @Override + public Item getChargedItem(ItemStack itemStack) { + return itemStack.getItem(); + } + + @Override + public Item getEmptyItem(ItemStack itemStack) { + return itemStack.getItem(); + } + + @Override + public int getMaxCharge(ItemStack itemStack) { + return (int) PowerUnits.AE.convertTo( PowerUnits.EU, getAEMaxPower( itemStack ) ); + } + + @Override + public int getTier(ItemStack itemStack) { + return 1; + } + + @Override + public int getTransferLimit(ItemStack itemStack) { + return Math.max( 32, getMaxCharge(itemStack)/ 200 ); + } + + @Override + public IElectricItemManager getManager(ItemStack itemStack) { + return this; + } + } From ba525621a6a69a0a5a3a2c8121015be38fbfbeda Mon Sep 17 00:00:00 2001 From: AlgorithmX2 Date: Mon, 2 Jun 2014 12:01:37 -0500 Subject: [PATCH 2/2] Stop Examining other mods recipes. --- .../NEIHelpers/NEIAEShapedRecipeHandler.java | 42 ++++++++---------- .../NEIAEShapelessRecipeHandler.java | 43 ++++++++----------- 2 files changed, 36 insertions(+), 49 deletions(-) diff --git a/integration/modules/NEIHelpers/NEIAEShapedRecipeHandler.java b/integration/modules/NEIHelpers/NEIAEShapedRecipeHandler.java index 6505f1bfa..0d6f97d8a 100644 --- a/integration/modules/NEIHelpers/NEIAEShapedRecipeHandler.java +++ b/integration/modules/NEIHelpers/NEIAEShapedRecipeHandler.java @@ -48,14 +48,11 @@ public class NEIAEShapedRecipeHandler extends TemplateRecipeHandler List allrecipes = CraftingManager.getInstance().getRecipeList(); for (IRecipe irecipe : allrecipes) { - CachedShapedRecipe recipe = null; if ( (irecipe instanceof ShapedRecipe) ) - recipe = new CachedShapedRecipe( (ShapedRecipe) irecipe ); - - if ( recipe != null ) { + CachedShapedRecipe recipe = new CachedShapedRecipe( (ShapedRecipe) irecipe ); recipe.computeVisuals(); - this.arecipes.add( recipe ); + arecipes.add( recipe ); } } } @@ -70,16 +67,13 @@ public class NEIAEShapedRecipeHandler extends TemplateRecipeHandler List allrecipes = CraftingManager.getInstance().getRecipeList(); for (IRecipe irecipe : allrecipes) { - if ( NEIServerUtils.areStacksSameTypeCrafting( irecipe.getRecipeOutput(), result ) ) + if ( (irecipe instanceof ShapedRecipe) ) { - CachedShapedRecipe recipe = null; - if ( (irecipe instanceof ShapedRecipe) ) - recipe = new CachedShapedRecipe( (ShapedRecipe) irecipe ); - - if ( recipe != null ) + if ( NEIServerUtils.areStacksSameTypeCrafting( irecipe.getRecipeOutput(), result ) ) { + CachedShapedRecipe recipe = new CachedShapedRecipe( (ShapedRecipe) irecipe ); recipe.computeVisuals(); - this.arecipes.add( recipe ); + arecipes.add( recipe ); } } } @@ -90,17 +84,18 @@ public class NEIAEShapedRecipeHandler extends TemplateRecipeHandler List allrecipes = CraftingManager.getInstance().getRecipeList(); for (IRecipe irecipe : allrecipes) { - CachedShapedRecipe recipe = null; if ( (irecipe instanceof ShapedRecipe) ) - recipe = new CachedShapedRecipe( (ShapedRecipe) irecipe ); - - if ( (recipe != null) && (recipe.contains( recipe.ingredients, ingredient.getItem() )) ) { - recipe.computeVisuals(); - if ( recipe.contains( recipe.ingredients, ingredient ) ) + CachedShapedRecipe recipe = new CachedShapedRecipe( (ShapedRecipe) irecipe ); + + if ( recipe.contains( recipe.ingredients, ingredient.getItem() ) ) { - recipe.setIngredientPermutation( recipe.ingredients, ingredient ); - this.arecipes.add( recipe ); + recipe.computeVisuals(); + if ( recipe.contains( recipe.ingredients, ingredient ) ) + { + recipe.setIngredientPermutation( recipe.ingredients, ingredient ); + arecipes.add( recipe ); + } } } } @@ -127,12 +122,12 @@ public class NEIAEShapedRecipeHandler extends TemplateRecipeHandler { IRecipeOverlayRenderer renderer = super.getOverlayRenderer( gui, recipe ); if ( renderer != null ) - { return renderer; - } + IStackPositioner positioner = RecipeInfo.getStackPositioner( gui, "crafting2x2" ); if ( positioner == null ) return null; + return new DefaultOverlayRenderer( getIngredientStacks( recipe ), positioner ); } @@ -141,9 +136,8 @@ public class NEIAEShapedRecipeHandler extends TemplateRecipeHandler { IOverlayHandler handler = super.getOverlayHandler( gui, recipe ); if ( handler != null ) - { return handler; - } + return RecipeInfo.getOverlayHandler( gui, "crafting2x2" ); } diff --git a/integration/modules/NEIHelpers/NEIAEShapelessRecipeHandler.java b/integration/modules/NEIHelpers/NEIAEShapelessRecipeHandler.java index 4d36a41b2..93752e0fa 100644 --- a/integration/modules/NEIHelpers/NEIAEShapelessRecipeHandler.java +++ b/integration/modules/NEIHelpers/NEIAEShapelessRecipeHandler.java @@ -48,12 +48,9 @@ public class NEIAEShapelessRecipeHandler extends TemplateRecipeHandler List allrecipes = CraftingManager.getInstance().getRecipeList(); for (IRecipe irecipe : allrecipes) { - CachedShapelessRecipe recipe = null; if ( (irecipe instanceof ShapelessRecipe) ) - recipe = new CachedShapelessRecipe( (ShapelessRecipe) irecipe ); - - if ( recipe != null ) { + CachedShapelessRecipe recipe = new CachedShapelessRecipe( (ShapelessRecipe) irecipe ); recipe.computeVisuals(); this.arecipes.add( recipe ); } @@ -70,16 +67,13 @@ public class NEIAEShapelessRecipeHandler extends TemplateRecipeHandler List allrecipes = CraftingManager.getInstance().getRecipeList(); for (IRecipe irecipe : allrecipes) { - if ( NEIServerUtils.areStacksSameTypeCrafting( irecipe.getRecipeOutput(), result ) ) + if ( (irecipe instanceof ShapelessRecipe) ) { - CachedShapelessRecipe recipe = null; - if ( (irecipe instanceof ShapelessRecipe) ) - recipe = new CachedShapelessRecipe( (ShapelessRecipe) irecipe ); - - if ( recipe != null ) + if ( NEIServerUtils.areStacksSameTypeCrafting( irecipe.getRecipeOutput(), result ) ) { + CachedShapelessRecipe recipe = new CachedShapelessRecipe( (ShapelessRecipe) irecipe ); recipe.computeVisuals(); - this.arecipes.add( recipe ); + arecipes.add( recipe ); } } } @@ -90,17 +84,18 @@ public class NEIAEShapelessRecipeHandler extends TemplateRecipeHandler List allrecipes = CraftingManager.getInstance().getRecipeList(); for (IRecipe irecipe : allrecipes) { - CachedShapelessRecipe recipe = null; if ( (irecipe instanceof ShapelessRecipe) ) - recipe = new CachedShapelessRecipe( (ShapelessRecipe) irecipe ); - - if ( (recipe != null) && (recipe.contains( recipe.ingredients, ingredient.getItem() )) ) { - recipe.computeVisuals(); - if ( recipe.contains( recipe.ingredients, ingredient ) ) + CachedShapelessRecipe recipe = new CachedShapelessRecipe( (ShapelessRecipe) irecipe ); + + if ( recipe.contains( recipe.ingredients, ingredient.getItem() ) ) { - recipe.setIngredientPermutation( recipe.ingredients, ingredient ); - this.arecipes.add( recipe ); + recipe.computeVisuals(); + if ( recipe.contains( recipe.ingredients, ingredient ) ) + { + recipe.setIngredientPermutation( recipe.ingredients, ingredient ); + this.arecipes.add( recipe ); + } } } } @@ -127,12 +122,12 @@ public class NEIAEShapelessRecipeHandler extends TemplateRecipeHandler { IRecipeOverlayRenderer renderer = super.getOverlayRenderer( gui, recipe ); if ( renderer != null ) - { return renderer; - } + IStackPositioner positioner = RecipeInfo.getStackPositioner( gui, "crafting2x2" ); if ( positioner == null ) return null; + return new DefaultOverlayRenderer( getIngredientStacks( recipe ), positioner ); } @@ -141,9 +136,8 @@ public class NEIAEShapelessRecipeHandler extends TemplateRecipeHandler { IOverlayHandler handler = super.getOverlayHandler( gui, recipe ); if ( handler != null ) - { return handler; - } + return RecipeInfo.getOverlayHandler( gui, "crafting2x2" ); } @@ -200,9 +194,8 @@ public class NEIAEShapelessRecipeHandler extends TemplateRecipeHandler public void computeVisuals() { for (PositionedStack p : this.ingredients) - { p.generatePermutations(); - } + this.result.generatePermutations(); } }