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:
@@ -4,6 +4,7 @@
|
|||||||
- Removed debug log configuration option, as it's no longer needed (raoulvdberge)
|
- Removed debug log configuration option, as it's no longer needed (raoulvdberge)
|
||||||
- Fixed bug where storages that are removed remain visible (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)
|
- 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
|
### 1.4.10
|
||||||
- Improved performance of network scanning (raoulvdberge)
|
- Improved performance of network scanning (raoulvdberge)
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPattern;
|
|||||||
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPatternContainer;
|
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPatternContainer;
|
||||||
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPatternProvider;
|
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPatternProvider;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.INetwork;
|
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.ItemHandlerBase;
|
||||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode;
|
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode;
|
||||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerUpgrade;
|
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerUpgrade;
|
||||||
@@ -24,7 +23,6 @@ import java.util.List;
|
|||||||
public class NetworkNodeCrafter extends NetworkNode implements ICraftingPatternContainer {
|
public class NetworkNodeCrafter extends NetworkNode implements ICraftingPatternContainer {
|
||||||
public static final String ID = "crafter";
|
public static final String ID = "crafter";
|
||||||
|
|
||||||
private static final String NBT_TRIGGERED_AUTOCRAFTING = "TriggeredAutocrafting";
|
|
||||||
private static final String NBT_BLOCKED = "Blocked";
|
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()) {
|
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 ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ItemHandlerListenerNetworkNode(this), ItemUpgrade.TYPE_SPEED);
|
||||||
|
|
||||||
private boolean triggeredAutocrafting = false;
|
|
||||||
private boolean blocked = false;
|
private boolean blocked = false;
|
||||||
|
|
||||||
public NetworkNodeCrafter(World world, BlockPos pos) {
|
public NetworkNodeCrafter(World world, BlockPos pos) {
|
||||||
@@ -89,14 +86,6 @@ public class NetworkNodeCrafter extends NetworkNode implements ICraftingPatternC
|
|||||||
if (ticks == 1) {
|
if (ticks == 1) {
|
||||||
rebuildPatterns();
|
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
|
@Override
|
||||||
@@ -141,24 +130,6 @@ public class NetworkNodeCrafter extends NetworkNode implements ICraftingPatternC
|
|||||||
return tag;
|
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
|
@Override
|
||||||
public int getSpeedUpdateCount() {
|
public int getSpeedUpdateCount() {
|
||||||
return upgrades.getUpgradeCount(ItemUpgrade.TYPE_SPEED);
|
return upgrades.getUpgradeCount(ItemUpgrade.TYPE_SPEED);
|
||||||
@@ -187,14 +158,6 @@ public class NetworkNodeCrafter extends NetworkNode implements ICraftingPatternC
|
|||||||
return upgrades;
|
return upgrades;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isTriggeredAutocrafting() {
|
|
||||||
return triggeredAutocrafting;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTriggeredAutocrafting(boolean triggeredAutocrafting) {
|
|
||||||
this.triggeredAutocrafting = triggeredAutocrafting;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IItemHandler getDrops() {
|
public IItemHandler getDrops() {
|
||||||
return new CombinedInvWrapper(patterns, upgrades);
|
return new CombinedInvWrapper(patterns, upgrades);
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.raoulvdberge.refinedstorage.gui;
|
package com.raoulvdberge.refinedstorage.gui;
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.container.ContainerCrafter;
|
import com.raoulvdberge.refinedstorage.container.ContainerCrafter;
|
||||||
import com.raoulvdberge.refinedstorage.gui.sidebutton.SideButtonCrafterTriggeredAutocrafting;
|
|
||||||
import com.raoulvdberge.refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
|
import com.raoulvdberge.refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileCrafter;
|
import com.raoulvdberge.refinedstorage.tile.TileCrafter;
|
||||||
|
|
||||||
@@ -13,7 +12,6 @@ public class GuiCrafter extends GuiBase {
|
|||||||
@Override
|
@Override
|
||||||
public void init(int x, int y) {
|
public void init(int x, int y) {
|
||||||
addSideButton(new SideButtonRedstoneMode(this, TileCrafter.REDSTONE_MODE));
|
addSideButton(new SideButtonRedstoneMode(this, TileCrafter.REDSTONE_MODE));
|
||||||
addSideButton(new SideButtonCrafterTriggeredAutocrafting(this));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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;
|
package com.raoulvdberge.refinedstorage.tile;
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeCrafter;
|
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.util.math.BlockPos;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
public class TileCrafter extends TileNode<NetworkNodeCrafter> {
|
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
|
@Override
|
||||||
@Nonnull
|
@Nonnull
|
||||||
public NetworkNodeCrafter createNode(World world, BlockPos pos) {
|
public NetworkNodeCrafter createNode(World world, BlockPos pos) {
|
||||||
|
|||||||
Reference in New Issue
Block a user