diff --git a/changelog b/changelog index 6bfcac23b..334b59817 100644 --- a/changelog +++ b/changelog @@ -21,4 +21,7 @@ * The treasure now consists of mainly some rarer earlygame ingots, circuits, some gear, a small selection of armor mods and alexandrite (rare) ## Fixed -* Fixed DFC receivers not outputting power \ No newline at end of file +* Fixed DFC receivers not outputting power +* Fixed the custom machine NEI handlers not working +* Fixed a potential crash caused by invalid assembly templates +* Fixed general weirdness with the schrabidium transmutator item IO \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index e1d7eae46..4a282e8e1 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -1268,6 +1268,7 @@ public class AssemblerRecipes extends SerializableRecipe { ComparableStack compStack = ItemAssemblyTemplate.readType(stack); if(compStack != null) { AssemblerRecipe recipe = recipes.get(compStack); + if(recipe == null) return null; AStack[] ret = recipe.ingredients; return ret == null ? null : Arrays.asList(ret); } @@ -1280,6 +1281,7 @@ public class AssemblerRecipes extends SerializableRecipe { if(out != null) { ComparableStack comp = new ComparableStack(out); AssemblerRecipe recipe = recipes.get(comp); + if(recipe == null) return null; AStack[] ret = recipe.ingredients; return ret == null ? null : Arrays.asList(ret); } diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index b0337b647..a2b264190 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -5,6 +5,8 @@ import java.util.List; import codechicken.nei.recipe.*; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockMotherOfAllOres.TileEntityRandomOre; +import com.hbm.config.CustomMachineConfigJSON; +import com.hbm.handler.nei.CustomMachineHandler; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBattery; import com.hbm.lib.RefStrings; @@ -26,6 +28,9 @@ public class NEIConfig implements IConfigureNEI { for (TemplateRecipeHandler handler: NEIRegistry.listAllHandlers()) { registerHandler(handler); } + + for(CustomMachineConfigJSON.MachineConfiguration conf : CustomMachineConfigJSON.niceList) registerHandler(new CustomMachineHandler(conf)); + //Some things are even beyond my control...or are they? API.hideItem(ItemBattery.getEmptyBattery(ModItems.memory)); API.hideItem(ItemBattery.getFullBattery(ModItems.memory)); diff --git a/src/main/java/com/hbm/main/NEIRegistry.java b/src/main/java/com/hbm/main/NEIRegistry.java index 1909c79e5..893312e63 100644 --- a/src/main/java/com/hbm/main/NEIRegistry.java +++ b/src/main/java/com/hbm/main/NEIRegistry.java @@ -3,7 +3,6 @@ package com.hbm.main; import java.util.ArrayList; import java.util.List; -import com.hbm.config.CustomMachineConfigJSON; import com.hbm.config.VersatileConfig; import com.hbm.handler.nei.*; @@ -64,8 +63,6 @@ public class NEIRegistry { handlers.add(new AshpitHandler()); handlers.add(new ArcWelderHandler()); handlers.add(new ExposureChamberHandler()); - - for(CustomMachineConfigJSON.MachineConfiguration conf : CustomMachineConfigJSON.niceList) handlers.add(new CustomMachineHandler(conf)); return handlers; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java index 8693ef3c2..7f9241d46 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java @@ -33,9 +33,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB private AudioWrapper audio; - private static final int[] slots_top = new int[] { 0 }; - private static final int[] slots_bottom = new int[] { 1, 2 }; - private static final int[] slots_side = new int[] { 3, 2 }; + private static final int[] slots_io = new int[] { 0, 1, 2, 3 }; public TileEntityMachineSchrabidiumTransmutator() { super(4); @@ -82,22 +80,24 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB @Override public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); + return slots_io; } @Override public boolean canExtractItem(int i, ItemStack stack, int j) { - if (i == 2 && stack.getItem() != null && (stack.getItem() == ModItems.redcoil_capacitor && stack.getItemDamage() == stack.getMaxDamage()) || stack.getItem() == ModItems.euphemium_capacitor) { + if(stack.getItem() == ModItems.euphemium_capacitor) return false; + + if(i == 2 && stack.getItem() != null && (stack.getItem() == ModItems.redcoil_capacitor && stack.getItemDamage() == stack.getMaxDamage())) { return true; } - if (i == 1) { + if(i == 1) { return true; } - if (i == 3) { - if (stack.getItem() instanceof IBatteryItem && ((IBatteryItem)stack.getItem()).getCharge(stack) == 0) + if(i == 3) { + if(stack.getItem() instanceof IBatteryItem && ((IBatteryItem) stack.getItem()).getCharge(stack) == 0) return true; }