Add oredict button to processing pattern encoder
This commit is contained in:
@@ -36,7 +36,7 @@ public class ContainerProcessingPatternEncoder extends ContainerBase {
|
||||
}
|
||||
}
|
||||
|
||||
addPlayerInventory(8, 90);
|
||||
addPlayerInventory(8, 102);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,26 +1,32 @@
|
||||
package refinedstorage.gui;
|
||||
|
||||
import net.minecraft.client.audio.PositionedSoundRecord;
|
||||
import net.minecraft.client.gui.GuiButton;
|
||||
import net.minecraft.init.SoundEvents;
|
||||
import net.minecraftforge.fml.client.config.GuiCheckBox;
|
||||
import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.container.ContainerProcessingPatternEncoder;
|
||||
import refinedstorage.network.MessageGridPatternCreate;
|
||||
import refinedstorage.network.MessageProcessingPatternEncoderClear;
|
||||
import refinedstorage.tile.TileProcessingPatternEncoder;
|
||||
import refinedstorage.tile.data.TileDataManager;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class GuiProcessingPatternEncoder extends GuiBase {
|
||||
private TileProcessingPatternEncoder processingPatternEncoder;
|
||||
|
||||
private GuiCheckBox patternOredicted;
|
||||
|
||||
public GuiProcessingPatternEncoder(ContainerProcessingPatternEncoder container, TileProcessingPatternEncoder processingPatternEncoder) {
|
||||
super(container, 176, 172);
|
||||
super(container, 176, 184);
|
||||
|
||||
this.processingPatternEncoder = processingPatternEncoder;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init(int x, int y) {
|
||||
patternOredicted = addCheckBox(x + 7, y + 76, "Use oredict", TileProcessingPatternEncoder.PATTERN_OREDICTED.getValue()); // @TODO: I18N
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -57,7 +63,7 @@ public class GuiProcessingPatternEncoder extends GuiBase {
|
||||
@Override
|
||||
public void drawForeground(int mouseX, int mouseY) {
|
||||
drawString(7, 7, t("gui.refinedstorage:processing_pattern_encoder"));
|
||||
drawString(7, 78, t("container.inventory"));
|
||||
drawString(7, 91, t("container.inventory"));
|
||||
|
||||
if (isOverCreatePattern(mouseX, mouseY)) {
|
||||
drawTooltip(mouseX, mouseY, t("gui.refinedstorage:processing_pattern_encoder.pattern_create"));
|
||||
@@ -82,4 +88,19 @@ public class GuiProcessingPatternEncoder extends GuiBase {
|
||||
mc.getSoundHandler().playSound(PositionedSoundRecord.getMasterRecord(SoundEvents.UI_BUTTON_CLICK, 1.0F));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void actionPerformed(GuiButton button) throws IOException {
|
||||
super.actionPerformed(button);
|
||||
|
||||
if (button == patternOredicted) {
|
||||
TileDataManager.setParameter(TileProcessingPatternEncoder.PATTERN_OREDICTED, patternOredicted.isChecked());
|
||||
}
|
||||
}
|
||||
|
||||
public void updatePatternOredicted(boolean oredicted) {
|
||||
if (patternOredicted != null) {
|
||||
patternOredicted.setIsChecked(oredicted);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,21 +1,52 @@
|
||||
package refinedstorage.tile;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.network.datasync.DataSerializers;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraftforge.common.capabilities.Capability;
|
||||
import net.minecraftforge.items.CapabilityItemHandler;
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
import net.minecraftforge.items.ItemHandlerHelper;
|
||||
import refinedstorage.RefinedStorageItems;
|
||||
import refinedstorage.gui.GuiProcessingPatternEncoder;
|
||||
import refinedstorage.inventory.ItemHandlerBasic;
|
||||
import refinedstorage.inventory.ItemValidatorBasic;
|
||||
import refinedstorage.item.ItemPattern;
|
||||
import refinedstorage.tile.data.ITileDataConsumer;
|
||||
import refinedstorage.tile.data.ITileDataProducer;
|
||||
import refinedstorage.tile.data.TileDataParameter;
|
||||
|
||||
public class TileProcessingPatternEncoder extends TileBase {
|
||||
public static final TileDataParameter<Boolean> PATTERN_OREDICTED = new TileDataParameter<>(DataSerializers.BOOLEAN, false, new ITileDataProducer<Boolean, TileProcessingPatternEncoder>() {
|
||||
@Override
|
||||
public Boolean getValue(TileProcessingPatternEncoder tile) {
|
||||
return tile.patternOredicted;
|
||||
}
|
||||
}, new ITileDataConsumer<Boolean, TileProcessingPatternEncoder>() {
|
||||
@Override
|
||||
public void setValue(TileProcessingPatternEncoder tile, Boolean value) {
|
||||
tile.patternOredicted = value;
|
||||
tile.markDirty();
|
||||
}
|
||||
}, parameter -> {
|
||||
if (Minecraft.getMinecraft().currentScreen instanceof GuiProcessingPatternEncoder) {
|
||||
((GuiProcessingPatternEncoder) Minecraft.getMinecraft().currentScreen).updatePatternOredicted(parameter.getValue());
|
||||
}
|
||||
});
|
||||
|
||||
private static final String NBT_PATTERN_OREDICTED = "PatternOredicted";
|
||||
|
||||
private ItemHandlerBasic patterns = new ItemHandlerBasic(2, this, new ItemValidatorBasic(RefinedStorageItems.PATTERN));
|
||||
private ItemHandlerBasic configuration = new ItemHandlerBasic(9 * 2, this);
|
||||
|
||||
private boolean patternOredicted = false;
|
||||
|
||||
public TileProcessingPatternEncoder() {
|
||||
dataManager.addWatchedParameter(PATTERN_OREDICTED);
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBTTagCompound write(NBTTagCompound tag) {
|
||||
super.write(tag);
|
||||
@@ -23,6 +54,8 @@ public class TileProcessingPatternEncoder extends TileBase {
|
||||
writeItems(patterns, 0, tag);
|
||||
writeItems(configuration, 1, tag);
|
||||
|
||||
tag.setBoolean(NBT_PATTERN_OREDICTED, patternOredicted);
|
||||
|
||||
return tag;
|
||||
}
|
||||
|
||||
@@ -32,12 +65,18 @@ public class TileProcessingPatternEncoder extends TileBase {
|
||||
|
||||
readItems(patterns, 0, tag);
|
||||
readItems(configuration, 1, tag);
|
||||
|
||||
if (tag.hasKey(NBT_PATTERN_OREDICTED)) {
|
||||
patternOredicted = tag.getBoolean(NBT_PATTERN_OREDICTED);
|
||||
}
|
||||
}
|
||||
|
||||
public void onCreatePattern() {
|
||||
if (canCreatePattern()) {
|
||||
ItemStack pattern = new ItemStack(RefinedStorageItems.PATTERN);
|
||||
|
||||
ItemPattern.setOredicted(pattern, patternOredicted);
|
||||
|
||||
for (int i = 0; i < 18; ++i) {
|
||||
if (configuration.getStackInSlot(i) != null) {
|
||||
if (i >= 9) {
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
Reference in New Issue
Block a user