Removed "autocraft on redstone signal" option in the Crafter, use an External Storage in combination with an Interface with the Crafting Upgrade instead
This commit is contained in:
@@ -6,7 +6,6 @@ import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPattern;
|
||||
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPatternContainer;
|
||||
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPatternProvider;
|
||||
import com.raoulvdberge.refinedstorage.api.network.INetwork;
|
||||
import com.raoulvdberge.refinedstorage.api.util.IComparer;
|
||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase;
|
||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode;
|
||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerUpgrade;
|
||||
@@ -24,7 +23,6 @@ import java.util.List;
|
||||
public class NetworkNodeCrafter extends NetworkNode implements ICraftingPatternContainer {
|
||||
public static final String ID = "crafter";
|
||||
|
||||
private static final String NBT_TRIGGERED_AUTOCRAFTING = "TriggeredAutocrafting";
|
||||
private static final String NBT_BLOCKED = "Blocked";
|
||||
|
||||
private ItemHandlerBase patterns = new ItemHandlerBase(9, new ItemHandlerListenerNetworkNode(this), s -> s.getItem() instanceof ICraftingPatternProvider && ((ICraftingPatternProvider) s.getItem()).create(world, s, this).isValid()) {
|
||||
@@ -46,7 +44,6 @@ public class NetworkNodeCrafter extends NetworkNode implements ICraftingPatternC
|
||||
|
||||
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ItemHandlerListenerNetworkNode(this), ItemUpgrade.TYPE_SPEED);
|
||||
|
||||
private boolean triggeredAutocrafting = false;
|
||||
private boolean blocked = false;
|
||||
|
||||
public NetworkNodeCrafter(World world, BlockPos pos) {
|
||||
@@ -89,14 +86,6 @@ public class NetworkNodeCrafter extends NetworkNode implements ICraftingPatternC
|
||||
if (ticks == 1) {
|
||||
rebuildPatterns();
|
||||
}
|
||||
|
||||
if (network != null && triggeredAutocrafting && world.isBlockPowered(pos)) {
|
||||
for (ICraftingPattern pattern : actualPatterns) {
|
||||
for (ItemStack output : pattern.getOutputs()) {
|
||||
network.getCraftingManager().schedule(output, 1, IComparer.COMPARE_DAMAGE | IComparer.COMPARE_NBT);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -141,24 +130,6 @@ public class NetworkNodeCrafter extends NetworkNode implements ICraftingPatternC
|
||||
return tag;
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBTTagCompound writeConfiguration(NBTTagCompound tag) {
|
||||
super.writeConfiguration(tag);
|
||||
|
||||
tag.setBoolean(NBT_TRIGGERED_AUTOCRAFTING, triggeredAutocrafting);
|
||||
|
||||
return tag;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readConfiguration(NBTTagCompound tag) {
|
||||
super.readConfiguration(tag);
|
||||
|
||||
if (tag.hasKey(NBT_TRIGGERED_AUTOCRAFTING)) {
|
||||
triggeredAutocrafting = tag.getBoolean(NBT_TRIGGERED_AUTOCRAFTING);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSpeedUpdateCount() {
|
||||
return upgrades.getUpgradeCount(ItemUpgrade.TYPE_SPEED);
|
||||
@@ -187,14 +158,6 @@ public class NetworkNodeCrafter extends NetworkNode implements ICraftingPatternC
|
||||
return upgrades;
|
||||
}
|
||||
|
||||
public boolean isTriggeredAutocrafting() {
|
||||
return triggeredAutocrafting;
|
||||
}
|
||||
|
||||
public void setTriggeredAutocrafting(boolean triggeredAutocrafting) {
|
||||
this.triggeredAutocrafting = triggeredAutocrafting;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IItemHandler getDrops() {
|
||||
return new CombinedInvWrapper(patterns, upgrades);
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.raoulvdberge.refinedstorage.gui;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.container.ContainerCrafter;
|
||||
import com.raoulvdberge.refinedstorage.gui.sidebutton.SideButtonCrafterTriggeredAutocrafting;
|
||||
import com.raoulvdberge.refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
|
||||
import com.raoulvdberge.refinedstorage.tile.TileCrafter;
|
||||
|
||||
@@ -13,7 +12,6 @@ public class GuiCrafter extends GuiBase {
|
||||
@Override
|
||||
public void init(int x, int y) {
|
||||
addSideButton(new SideButtonRedstoneMode(this, TileCrafter.REDSTONE_MODE));
|
||||
addSideButton(new SideButtonCrafterTriggeredAutocrafting(this));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
package com.raoulvdberge.refinedstorage.gui.sidebutton;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.gui.GuiBase;
|
||||
import com.raoulvdberge.refinedstorage.tile.TileCrafter;
|
||||
import com.raoulvdberge.refinedstorage.tile.data.TileDataManager;
|
||||
import net.minecraft.util.text.TextFormatting;
|
||||
|
||||
public class SideButtonCrafterTriggeredAutocrafting extends SideButton {
|
||||
public SideButtonCrafterTriggeredAutocrafting(GuiBase gui) {
|
||||
super(gui);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTooltip() {
|
||||
return TextFormatting.GREEN + GuiBase.t("sidebutton.refinedstorage:crafter.triggered_autocrafting") + TextFormatting.RESET + "\n" + GuiBase.t("gui." + (TileCrafter.TRIGGERED_AUTOCRAFTING.getValue() ? "yes" : "no"));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void drawButtonIcon(int x, int y) {
|
||||
gui.drawTexture(x, y, TileCrafter.TRIGGERED_AUTOCRAFTING.getValue() ? 0 : 16, 144, 16, 16);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed() {
|
||||
TileDataManager.setParameter(TileCrafter.TRIGGERED_AUTOCRAFTING, !TileCrafter.TRIGGERED_AUTOCRAFTING.getValue());
|
||||
}
|
||||
}
|
||||
@@ -1,33 +1,12 @@
|
||||
package com.raoulvdberge.refinedstorage.tile;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeCrafter;
|
||||
import com.raoulvdberge.refinedstorage.tile.data.ITileDataConsumer;
|
||||
import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer;
|
||||
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
|
||||
import net.minecraft.network.datasync.DataSerializers;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
public class TileCrafter extends TileNode<NetworkNodeCrafter> {
|
||||
public static final TileDataParameter<Boolean> TRIGGERED_AUTOCRAFTING = new TileDataParameter<>(DataSerializers.BOOLEAN, false, new ITileDataProducer<Boolean, TileCrafter>() {
|
||||
@Override
|
||||
public Boolean getValue(TileCrafter tile) {
|
||||
return tile.getNode().isTriggeredAutocrafting();
|
||||
}
|
||||
}, new ITileDataConsumer<Boolean, TileCrafter>() {
|
||||
@Override
|
||||
public void setValue(TileCrafter tile, Boolean value) {
|
||||
tile.getNode().setTriggeredAutocrafting(value);
|
||||
tile.getNode().markDirty();
|
||||
}
|
||||
});
|
||||
|
||||
public TileCrafter() {
|
||||
dataManager.addWatchedParameter(TRIGGERED_AUTOCRAFTING);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nonnull
|
||||
public NetworkNodeCrafter createNode(World world, BlockPos pos) {
|
||||
|
||||
Reference in New Issue
Block a user