From 2c1ff88d31df514ea435a56c282ac439d16bfab3 Mon Sep 17 00:00:00 2001 From: Towdium Date: Thu, 3 Mar 2016 14:44:58 +0800 Subject: [PATCH] bug fix and bug fix --- build.gradle | 2 +- .../JustEnoughCalculation.java | 10 +++++++- .../core/Calculator.java | 3 ++- .../core/CostRecord.java | 10 +++++--- .../core/ItemStackWrapper.java | 4 ++-- .../gui/commom/GuiJustEnoughCalculation.java | 3 +-- .../gui/commom/recipe/GuiRecipe.java | 24 +++++++++++++++++-- .../gui/guis/calculator/GuiCalculator.java | 10 +++++++- 8 files changed, 53 insertions(+), 13 deletions(-) diff --git a/build.gradle b/build.gradle index 66108d4..c9bae06 100644 --- a/build.gradle +++ b/build.gradle @@ -20,7 +20,7 @@ plugins { id "net.minecraftforge.gradle.forge" version "2.0.2" } */ -version = "0.2.0" +version = "0.3.0" group= "pers.towdium.justEnoughcalculation" // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = "je_calculation" diff --git a/src/main/java/pers/towdium/justEnoughCalculation/JustEnoughCalculation.java b/src/main/java/pers/towdium/justEnoughCalculation/JustEnoughCalculation.java index 343e98a..778cf89 100644 --- a/src/main/java/pers/towdium/justEnoughCalculation/JustEnoughCalculation.java +++ b/src/main/java/pers/towdium/justEnoughCalculation/JustEnoughCalculation.java @@ -7,6 +7,7 @@ import net.minecraft.init.Items; import net.minecraft.item.EnumDyeColor; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraftforge.common.config.Configuration; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.SidedProxy; import net.minecraftforge.fml.common.event.FMLInitializationEvent; @@ -23,6 +24,8 @@ import pers.towdium.justEnoughCalculation.network.packets.PacketCalculatorUpdate import pers.towdium.justEnoughCalculation.network.packets.PacketRecipeUpdate; import pers.towdium.justEnoughCalculation.network.packets.PacketSyncRecord; +import java.io.File; + /** * @author Towdium */ @@ -33,6 +36,7 @@ public class JustEnoughCalculation { public static Item itemCalculator = new ItemCalculator().setUnlocalizedName("itemCalculator"); public static SimpleNetworkWrapper networkWrapper; public static Logger log = LogManager.getLogger(Reference.MODID); + public static Configuration config; @SidedProxy(clientSide = "pers.towdium.justEnoughCalculation.network.ProxyClient", serverSide = "pers.towdium.justEnoughCalculation.network.ProxyServer") public static IProxy proxy; @@ -43,11 +47,15 @@ public class JustEnoughCalculation { public static class Reference { public static final String MODID = "je_calculation"; public static final String MODNAME = "Just Enough Calculation"; - public static final String VERSION = "0.2.0"; + public static final String VERSION = "0.3.0"; } @Mod.EventHandler public static void preInit(FMLPreInitializationEvent event){ + config = new Configuration(new File(event.getModConfigurationDirectory(), "JustEnoughCalculation" +".cfg"), Reference.VERSION); + config.load(); + config.get("General", "EnableInventoryCheck", true, "Set to false to disable auto inventory check"); + config.save(); GameRegistry.registerItem(itemCalculator,itemCalculator.getUnlocalizedName().substring(5)); networkWrapper = NetworkRegistry.INSTANCE.newSimpleChannel(Reference.MODID); networkWrapper.registerMessage(PacketCalculatorUpdate.class, PacketCalculatorUpdate.class, 1, Side.SERVER); diff --git a/src/main/java/pers/towdium/justEnoughCalculation/core/Calculator.java b/src/main/java/pers/towdium/justEnoughCalculation/core/Calculator.java index 198f1dd..23b2d95 100644 --- a/src/main/java/pers/towdium/justEnoughCalculation/core/Calculator.java +++ b/src/main/java/pers/towdium/justEnoughCalculation/core/Calculator.java @@ -11,6 +11,7 @@ import java.util.List; * This is calculating core v3.0, I call it global coordinating calculation XD. * The procudure might be more complex, but can avoid some unexpected results. */ + public class Calculator { List costRecords; @@ -46,6 +47,6 @@ public class Calculator { protected long getCount(ItemRecord itemRecord, Recipe recipe){ long a = recipe.getOutputAmount(itemRecord.toItemStack()); - return (long) ((double)itemRecord.amount/a + 0.5f); + return (long)Math.ceil(itemRecord.amount/(double)a); } } diff --git a/src/main/java/pers/towdium/justEnoughCalculation/core/CostRecord.java b/src/main/java/pers/towdium/justEnoughCalculation/core/CostRecord.java index 3ef65cd..601b593 100644 --- a/src/main/java/pers/towdium/justEnoughCalculation/core/CostRecord.java +++ b/src/main/java/pers/towdium/justEnoughCalculation/core/CostRecord.java @@ -39,7 +39,9 @@ public class CostRecord{ ItemRecord record = new ItemRecord(itemStack, count); record.approx = b; input.add(record); - catalyst.add(record.copy()); + record = new ItemRecord(itemStack); + record.approx = b; + catalyst.add(record); } } } @@ -159,8 +161,10 @@ public class CostRecord{ } } ItemRecord buffer = itemRecord.copy(); - buffer.amount=0; - builder.add(buffer.toItemStack()); + //buffer.amount=0; + ItemStack itemStack = buffer.toItemStack(); + //itemStack.getTagCompound().setBoolean("mark", true); + builder.add(itemStack); } } return builder.build(); diff --git a/src/main/java/pers/towdium/justEnoughCalculation/core/ItemStackWrapper.java b/src/main/java/pers/towdium/justEnoughCalculation/core/ItemStackWrapper.java index 7a319b4..19bf078 100644 --- a/src/main/java/pers/towdium/justEnoughCalculation/core/ItemStackWrapper.java +++ b/src/main/java/pers/towdium/justEnoughCalculation/core/ItemStackWrapper.java @@ -31,7 +31,7 @@ public class ItemStackWrapper { return ""; } long l = itemStack.getTagCompound().getLong("amount"); - if(l == 0){ + if(l == 0 && itemStack.stackSize == 0){ return ""; } int i = itemStack.getTagCompound().getInteger("percentage"); @@ -249,7 +249,7 @@ public class ItemStackWrapper { } public static boolean rightClick(ItemStack itemStack, boolean doChange){ - if(itemStack == null || (itemStack.hasTagCompound() && (itemStack.getTagCompound().getInteger("percentage") == 1 || itemStack.getTagCompound().getInteger("percentage") == 0))){ + if(itemStack == null){ return false; }else { if(doChange){ diff --git a/src/main/java/pers/towdium/justEnoughCalculation/gui/commom/GuiJustEnoughCalculation.java b/src/main/java/pers/towdium/justEnoughCalculation/gui/commom/GuiJustEnoughCalculation.java index e41dbc6..aae2321 100644 --- a/src/main/java/pers/towdium/justEnoughCalculation/gui/commom/GuiJustEnoughCalculation.java +++ b/src/main/java/pers/towdium/justEnoughCalculation/gui/commom/GuiJustEnoughCalculation.java @@ -31,8 +31,7 @@ public abstract class GuiJustEnoughCalculation extends GuiContainer { @Override protected void handleMouseClick(Slot slotIn, int slotId, int clickedButton, int clickType) { - if (slotIn != null) - { + if (slotIn != null) { slotId = slotIn.slotNumber; } mc.thePlayer.openContainer.slotClick(slotId, clickedButton, clickType, mc.thePlayer); diff --git a/src/main/java/pers/towdium/justEnoughCalculation/gui/commom/recipe/GuiRecipe.java b/src/main/java/pers/towdium/justEnoughCalculation/gui/commom/recipe/GuiRecipe.java index da5e38e..560af1e 100644 --- a/src/main/java/pers/towdium/justEnoughCalculation/gui/commom/recipe/GuiRecipe.java +++ b/src/main/java/pers/towdium/justEnoughCalculation/gui/commom/recipe/GuiRecipe.java @@ -93,6 +93,18 @@ public class GuiRecipe extends GuiTooltipScreen{ } } + @Override + protected void handleMouseClick(Slot slotIn, int slotId, int clickedButton, int clickType) { + boolean b = false; + if(slotIn != null){ + b = slotIn.getHasStack(); + } + super.handleMouseClick(slotIn, slotId, clickedButton, clickType); + if(slotIn != null && b && !slotIn.getHasStack()){ + buttonList.get(slotIn.getSlotIndex()).displayString = "#"; + } + } + public int getActiveSlot() { return activeSlot; } @@ -106,14 +118,22 @@ public class GuiRecipe extends GuiTooltipScreen{ List input = recipe.getInput(); for(int i=0; i<4; i++){ if(i