Crafter Manager misc fixes

This commit is contained in:
raoulvdberge
2018-04-06 12:14:46 +02:00
parent 7fca77193f
commit 09714cc111
2 changed files with 21 additions and 1 deletions

View File

@@ -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;
}

View File

@@ -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;
}
});
}