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:
raoulvdberge
2017-06-05 00:04:30 +02:00
parent 9df8bbb431
commit a59a8726d6
5 changed files with 1 additions and 87 deletions

View File

@@ -4,6 +4,7 @@
- Removed debug log configuration option, as it's no longer needed (raoulvdberge)
- Fixed bug where storages that are removed remain visible (raoulvdberge)
- Added support for External Storage on Interfaces and other Refined Storage blocks, so you can keep items in stock easier (raoulvdberge)
- Removed "autocraft on redstone signal" option in the Crafter, use an External Storage in combination with an Interface with the Crafting Upgrade instead (raoulvdberge)
### 1.4.10
- Improved performance of network scanning (raoulvdberge)

View File

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

View File

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

View File

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

View File

@@ -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) {