Patterns in the Crafter slots now automatically render the output without pressing shift

This commit is contained in:
raoulvdberge
2018-03-19 20:22:06 +01:00
parent f287172ce9
commit 9d09bd7d96
6 changed files with 15 additions and 7 deletions

View File

@@ -2,6 +2,7 @@
### 1.5.33 ### 1.5.33
- Added Crafter Manager (raoulvdberge) - Added Crafter Manager (raoulvdberge)
- Patterns in the Crafter slots now automatically render the output without pressing shift (raoulvdberge)
- Fixed Disk Manipulator not extracting items (ineternet) - Fixed Disk Manipulator not extracting items (ineternet)
- Fixed filter slots not caring about max stack size (raoulvdberge) - Fixed filter slots not caring about max stack size (raoulvdberge)
- Various internal refactors (raoulvdberge) - Various internal refactors (raoulvdberge)

View File

@@ -33,7 +33,7 @@ public interface ICraftingPatternContainer {
List<ICraftingPattern> getPatterns(); List<ICraftingPattern> getPatterns();
/** /**
* @return the pattern inventory, or null if no pattern is present * @return the pattern inventory, or null if no pattern inventory is present
*/ */
@Nullable @Nullable
IItemHandlerModifiable getPatternInventory(); IItemHandlerModifiable getPatternInventory();

View File

@@ -19,7 +19,6 @@ import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList; import net.minecraft.util.NonNullList;
import net.minecraftforge.items.IItemHandlerModifiable; import net.minecraftforge.items.IItemHandlerModifiable;
import net.minecraftforge.items.SlotItemHandler;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.util.Collections; import java.util.Collections;
@@ -99,7 +98,7 @@ public class ContainerCrafterManager extends ContainerBase {
for (Map.Entry<String, List<IItemHandlerModifiable>> entry : crafterManager.getNode().getNetwork().getCraftingManager().getNamedContainers().entrySet()) { for (Map.Entry<String, List<IItemHandlerModifiable>> entry : crafterManager.getNode().getNetwork().getCraftingManager().getNamedContainers().entrySet()) {
for (IItemHandlerModifiable handler : entry.getValue()) { for (IItemHandlerModifiable handler : entry.getValue()) {
for (int i = 0; i < handler.getSlots(); ++i) { for (int i = 0; i < handler.getSlots(); ++i) {
addSlotToContainer(new SlotItemHandler(handler, i, 0, 0)); addSlotToContainer(new SlotCrafterManager(handler, i, 0, 0, true, display, this.crafterManager));
} }
} }
} }

View File

@@ -6,5 +6,6 @@ public class IntegrationInventorySorter {
public static void register() { public static void register() {
// Prevent items moving while scrolling through slots with Inventory Sorter in the Crafter Manager // Prevent items moving while scrolling through slots with Inventory Sorter in the Crafter Manager
FMLInterModComms.sendMessage("inventorysorter", "containerblacklist", "com.raoulvdberge.refinedstorage.container.ContainerCrafterManager"); FMLInterModComms.sendMessage("inventorysorter", "containerblacklist", "com.raoulvdberge.refinedstorage.container.ContainerCrafterManager");
FMLInterModComms.sendMessage("inventorysorter", "slotblacklist", "com.raoulvdberge.refinedstorage.container.slot.SlotCrafterManager");
} }
} }

View File

@@ -224,6 +224,8 @@ public class ProxyCommon {
registerItem(RSItems.NETWORK_CARD); registerItem(RSItems.NETWORK_CARD);
registerItem(RSItems.WRENCH); registerItem(RSItems.WRENCH);
registerItem(RSItems.SECURITY_CARD); registerItem(RSItems.SECURITY_CARD);
IntegrationInventorySorter.register();
} }
public void init(FMLInitializationEvent e) { public void init(FMLInitializationEvent e) {
@@ -265,8 +267,6 @@ public class ProxyCommon {
if (IntegrationProjectE.isLoaded()) { if (IntegrationProjectE.isLoaded()) {
IntegrationProjectE.register(); IntegrationProjectE.register();
} }
IntegrationInventorySorter.register();
} }
public void postInit(FMLPostInitializationEvent e) { public void postInit(FMLPostInitializationEvent e) {

View File

@@ -1,6 +1,7 @@
package com.raoulvdberge.refinedstorage.render; package com.raoulvdberge.refinedstorage.render;
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingPattern; import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingPattern;
import com.raoulvdberge.refinedstorage.container.ContainerCrafter;
import com.raoulvdberge.refinedstorage.container.ContainerCrafterManager; import com.raoulvdberge.refinedstorage.container.ContainerCrafterManager;
import com.raoulvdberge.refinedstorage.container.slot.SlotCrafterManager; import com.raoulvdberge.refinedstorage.container.slot.SlotCrafterManager;
import com.raoulvdberge.refinedstorage.gui.GuiBase; import com.raoulvdberge.refinedstorage.gui.GuiBase;
@@ -88,10 +89,10 @@ public class BakedModelPattern implements IBakedModel {
} }
public static boolean canDisplayPatternOutput(ItemStack patternStack, CraftingPattern pattern) { public static boolean canDisplayPatternOutput(ItemStack patternStack, CraftingPattern pattern) {
return (GuiBase.isShiftKeyDown() || isPatternInCrafterManagerSlot(patternStack)) && pattern.isValid() && pattern.getOutputs().size() == 1; return (GuiBase.isShiftKeyDown() || isPatternInDisplaySlot(patternStack)) && pattern.isValid() && pattern.getOutputs().size() == 1;
} }
public static boolean isPatternInCrafterManagerSlot(ItemStack stack) { public static boolean isPatternInDisplaySlot(ItemStack stack) {
Container container = Minecraft.getMinecraft().player.openContainer; Container container = Minecraft.getMinecraft().player.openContainer;
if (container instanceof ContainerCrafterManager) { if (container instanceof ContainerCrafterManager) {
@@ -100,6 +101,12 @@ public class BakedModelPattern implements IBakedModel {
return true; return true;
} }
} }
} else if (container instanceof ContainerCrafter) {
for (Slot slot : container.inventorySlots) {
if (slot.slotNumber < 9 && slot.getStack() == stack) {
return true;
}
}
} }
return false; return false;