Crafter Manager misc fixes
This commit is contained in:
@@ -33,7 +33,7 @@ public class NetworkNodeCrafter extends NetworkNode implements ICraftingPatternC
|
||||
private static final String NBT_BLOCKED = "Blocked";
|
||||
private static final String NBT_DISPLAY_NAME = "DisplayName";
|
||||
|
||||
private ItemHandlerBase patterns = new ItemHandlerBase(9, new ItemHandlerListenerNetworkNode(this), s -> s.getItem() instanceof ICraftingPatternProvider && ((ICraftingPatternProvider) s.getItem()).create(world, s, this).isValid()) {
|
||||
private ItemHandlerBase patterns = new ItemHandlerBase(9, new ItemHandlerListenerNetworkNode(this), s -> isValidPatternInSlot(world, s)) {
|
||||
@Override
|
||||
protected void onContentsChanged(int slot) {
|
||||
super.onContentsChanged(slot);
|
||||
@@ -53,6 +53,10 @@ public class NetworkNodeCrafter extends NetworkNode implements ICraftingPatternC
|
||||
}
|
||||
};
|
||||
|
||||
public static boolean isValidPatternInSlot(World world, ItemStack stack) {
|
||||
return stack.getItem() instanceof ICraftingPatternProvider && ((ICraftingPatternProvider) stack.getItem()).create(world, stack, null).isValid();
|
||||
}
|
||||
|
||||
private List<ICraftingPattern> actualPatterns = new ArrayList<>();
|
||||
|
||||
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ItemHandlerListenerNetworkNode(this), ItemUpgrade.TYPE_SPEED);
|
||||
@@ -179,6 +183,10 @@ public class NetworkNodeCrafter extends NetworkNode implements ICraftingPatternC
|
||||
return ((IWorldNameable) facing).getName();
|
||||
}
|
||||
|
||||
if (facing != null) {
|
||||
return world.getBlockState(pos.offset(getDirection())).getBlock().getUnlocalizedName() + ".name";
|
||||
}
|
||||
|
||||
return DEFAULT_NAME;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.raoulvdberge.refinedstorage.container;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingPattern;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeCrafter;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeCrafterManager;
|
||||
import com.raoulvdberge.refinedstorage.container.slot.SlotCrafterManager;
|
||||
import com.raoulvdberge.refinedstorage.gui.IResizableDisplay;
|
||||
@@ -20,6 +21,7 @@ import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.NonNullList;
|
||||
import net.minecraftforge.items.IItemHandlerModifiable;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
@@ -141,6 +143,16 @@ public class ContainerCrafterManager extends ContainerBase {
|
||||
public int getSlotLimit(int slot) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
public ItemStack insertItem(int slot, @Nonnull ItemStack stack, boolean simulate) {
|
||||
if (NetworkNodeCrafter.isValidPatternInSlot(getPlayer().getEntityWorld(), stack)) {
|
||||
return super.insertItem(slot, stack, simulate);
|
||||
}
|
||||
|
||||
return stack;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user