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

@@ -33,7 +33,7 @@ public interface ICraftingPatternContainer {
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
IItemHandlerModifiable getPatternInventory();

View File

@@ -19,7 +19,6 @@ import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraftforge.items.IItemHandlerModifiable;
import net.minecraftforge.items.SlotItemHandler;
import javax.annotation.Nullable;
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 (IItemHandlerModifiable handler : entry.getValue()) {
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() {
// 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", "slotblacklist", "com.raoulvdberge.refinedstorage.container.slot.SlotCrafterManager");
}
}

View File

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

View File

@@ -1,6 +1,7 @@
package com.raoulvdberge.refinedstorage.render;
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingPattern;
import com.raoulvdberge.refinedstorage.container.ContainerCrafter;
import com.raoulvdberge.refinedstorage.container.ContainerCrafterManager;
import com.raoulvdberge.refinedstorage.container.slot.SlotCrafterManager;
import com.raoulvdberge.refinedstorage.gui.GuiBase;
@@ -88,10 +89,10 @@ public class BakedModelPattern implements IBakedModel {
}
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;
if (container instanceof ContainerCrafterManager) {
@@ -100,6 +101,12 @@ public class BakedModelPattern implements IBakedModel {
return true;
}
}
} else if (container instanceof ContainerCrafter) {
for (Slot slot : container.inventorySlots) {
if (slot.slotNumber < 9 && slot.getStack() == stack) {
return true;
}
}
}
return false;