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_BLOCKED = "Blocked";
private static final String NBT_DISPLAY_NAME = "DisplayName"; 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 @Override
protected void onContentsChanged(int slot) { protected void onContentsChanged(int slot) {
super.onContentsChanged(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 List<ICraftingPattern> actualPatterns = new ArrayList<>();
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ItemHandlerListenerNetworkNode(this), ItemUpgrade.TYPE_SPEED); 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(); return ((IWorldNameable) facing).getName();
} }
if (facing != null) {
return world.getBlockState(pos.offset(getDirection())).getBlock().getUnlocalizedName() + ".name";
}
return DEFAULT_NAME; return DEFAULT_NAME;
} }

View File

@@ -1,6 +1,7 @@
package com.raoulvdberge.refinedstorage.container; package com.raoulvdberge.refinedstorage.container;
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingPattern; 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.apiimpl.network.node.NetworkNodeCrafterManager;
import com.raoulvdberge.refinedstorage.container.slot.SlotCrafterManager; import com.raoulvdberge.refinedstorage.container.slot.SlotCrafterManager;
import com.raoulvdberge.refinedstorage.gui.IResizableDisplay; import com.raoulvdberge.refinedstorage.gui.IResizableDisplay;
@@ -20,6 +21,7 @@ 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 javax.annotation.Nonnull;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
@@ -141,6 +143,16 @@ public class ContainerCrafterManager extends ContainerBase {
public int getSlotLimit(int slot) { public int getSlotLimit(int slot) {
return 1; 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;
}
}); });
} }