Add oredict button to grid
This commit is contained in:
@@ -85,7 +85,7 @@ public class CraftingPattern implements ICraftingPattern {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isOredicted() {
|
public boolean isOredicted() {
|
||||||
return true;
|
return ItemPattern.isOredicted(stack);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import com.google.common.collect.ArrayListMultimap;
|
|||||||
import com.google.common.collect.ListMultimap;
|
import com.google.common.collect.ListMultimap;
|
||||||
import com.google.common.collect.Multimaps;
|
import com.google.common.collect.Multimaps;
|
||||||
import net.minecraft.client.audio.PositionedSoundRecord;
|
import net.minecraft.client.audio.PositionedSoundRecord;
|
||||||
|
import net.minecraft.client.gui.GuiButton;
|
||||||
import net.minecraft.client.gui.GuiScreen;
|
import net.minecraft.client.gui.GuiScreen;
|
||||||
import net.minecraft.client.gui.GuiTextField;
|
import net.minecraft.client.gui.GuiTextField;
|
||||||
import net.minecraft.client.renderer.GlStateManager;
|
import net.minecraft.client.renderer.GlStateManager;
|
||||||
@@ -13,6 +14,7 @@ import net.minecraft.item.Item;
|
|||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraftforge.fluids.Fluid;
|
import net.minecraftforge.fluids.Fluid;
|
||||||
|
import net.minecraftforge.fml.client.config.GuiCheckBox;
|
||||||
import net.minecraftforge.fml.common.FMLCommonHandler;
|
import net.minecraftforge.fml.common.FMLCommonHandler;
|
||||||
import refinedstorage.RefinedStorage;
|
import refinedstorage.RefinedStorage;
|
||||||
import refinedstorage.api.network.grid.IItemGridHandler;
|
import refinedstorage.api.network.grid.IItemGridHandler;
|
||||||
@@ -30,6 +32,7 @@ import refinedstorage.gui.sidebutton.*;
|
|||||||
import refinedstorage.integration.jei.IntegrationJEI;
|
import refinedstorage.integration.jei.IntegrationJEI;
|
||||||
import refinedstorage.integration.jei.RefinedStorageJEIPlugin;
|
import refinedstorage.integration.jei.RefinedStorageJEIPlugin;
|
||||||
import refinedstorage.network.*;
|
import refinedstorage.network.*;
|
||||||
|
import refinedstorage.tile.data.TileDataManager;
|
||||||
import refinedstorage.tile.grid.IGrid;
|
import refinedstorage.tile.grid.IGrid;
|
||||||
import refinedstorage.tile.grid.TileGrid;
|
import refinedstorage.tile.grid.TileGrid;
|
||||||
|
|
||||||
@@ -54,6 +57,8 @@ public class GuiGrid extends GuiBase {
|
|||||||
|
|
||||||
private GuiTextField searchField;
|
private GuiTextField searchField;
|
||||||
|
|
||||||
|
private GuiCheckBox patternOredicted;
|
||||||
|
|
||||||
private ContainerGrid container;
|
private ContainerGrid container;
|
||||||
private IGrid grid;
|
private IGrid grid;
|
||||||
|
|
||||||
@@ -94,6 +99,10 @@ public class GuiGrid extends GuiBase {
|
|||||||
searchField.yPosition = sy;
|
searchField.yPosition = sy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (grid.getType() == EnumGridType.PATTERN) {
|
||||||
|
patternOredicted = addCheckBox(x + 64, y + 138, "Use oredict", TileGrid.PATTERN_OREDICTED.getValue()); // @TODO: I18N
|
||||||
|
}
|
||||||
|
|
||||||
if (grid.getType() != EnumGridType.FLUID) {
|
if (grid.getType() != EnumGridType.FLUID) {
|
||||||
addSideButton(new SideButtonGridViewType(grid));
|
addSideButton(new SideButtonGridViewType(grid));
|
||||||
}
|
}
|
||||||
@@ -402,6 +411,15 @@ public class GuiGrid extends GuiBase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void actionPerformed(GuiButton button) throws IOException {
|
||||||
|
super.actionPerformed(button);
|
||||||
|
|
||||||
|
if (button == patternOredicted) {
|
||||||
|
TileDataManager.setParameter(TileGrid.PATTERN_OREDICTED, patternOredicted.isChecked());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void keyTyped(char character, int keyCode) throws IOException {
|
protected void keyTyped(char character, int keyCode) throws IOException {
|
||||||
if (checkHotbarKeys(keyCode)) {
|
if (checkHotbarKeys(keyCode)) {
|
||||||
@@ -427,4 +445,10 @@ public class GuiGrid extends GuiBase {
|
|||||||
searchField.setFocused(TileGrid.isSearchBoxModeWithAutoselection(mode));
|
searchField.setFocused(TileGrid.isSearchBoxModeWithAutoselection(mode));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void updatePatternOredicted(boolean oredicted) {
|
||||||
|
if (patternOredicted != null) {
|
||||||
|
patternOredicted.setIsChecked(oredicted);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import java.util.Set;
|
|||||||
public class ItemPattern extends ItemBase implements ICraftingPatternProvider {
|
public class ItemPattern extends ItemBase implements ICraftingPatternProvider {
|
||||||
private static final String NBT_SLOT = "Slot_%d";
|
private static final String NBT_SLOT = "Slot_%d";
|
||||||
private static final String NBT_OUTPUTS = "Outputs";
|
private static final String NBT_OUTPUTS = "Outputs";
|
||||||
|
private static final String NBT_OREDICTED = "Oredicted";
|
||||||
|
|
||||||
public ItemPattern() {
|
public ItemPattern() {
|
||||||
super("pattern");
|
super("pattern");
|
||||||
@@ -52,6 +53,10 @@ public class ItemPattern extends ItemBase implements ICraftingPatternProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
combineItems(tooltip, true, Iterables.toArray(pattern.getOutputs(), ItemStack.class));
|
combineItems(tooltip, true, Iterables.toArray(pattern.getOutputs(), ItemStack.class));
|
||||||
|
|
||||||
|
if (pattern.isOredicted()) {
|
||||||
|
tooltip.add(TextFormatting.BLUE + "Uses ore dictionary"); // @TODO: I18N
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
tooltip.add(TextFormatting.RED + I18n.format("misc.refinedstorage:pattern.invalid") + TextFormatting.RESET);
|
tooltip.add(TextFormatting.RED + I18n.format("misc.refinedstorage:pattern.invalid") + TextFormatting.RESET);
|
||||||
|
|
||||||
@@ -78,6 +83,22 @@ public class ItemPattern extends ItemBase implements ICraftingPatternProvider {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void setOredicted(ItemStack pattern, boolean oredicted) {
|
||||||
|
if (!pattern.hasTagCompound()) {
|
||||||
|
pattern.setTagCompound(new NBTTagCompound());
|
||||||
|
}
|
||||||
|
|
||||||
|
pattern.getTagCompound().setBoolean(NBT_OREDICTED, oredicted);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isOredicted(ItemStack pattern) {
|
||||||
|
if (!pattern.hasTagCompound() || !pattern.getTagCompound().hasKey(NBT_OREDICTED)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return pattern.getTagCompound().getBoolean(NBT_OREDICTED);
|
||||||
|
}
|
||||||
|
|
||||||
public static void setSlot(ItemStack pattern, int slot, ItemStack stack) {
|
public static void setSlot(ItemStack pattern, int slot, ItemStack stack) {
|
||||||
if (!pattern.hasTagCompound()) {
|
if (!pattern.hasTagCompound()) {
|
||||||
pattern.setTagCompound(new NBTTagCompound());
|
pattern.setTagCompound(new NBTTagCompound());
|
||||||
|
|||||||
@@ -107,10 +107,28 @@ public class TileGrid extends TileNode implements IGrid {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
public static final TileDataParameter<Boolean> PATTERN_OREDICTED = new TileDataParameter<>(DataSerializers.BOOLEAN, false, new ITileDataProducer<Boolean, TileGrid>() {
|
||||||
|
@Override
|
||||||
|
public Boolean getValue(TileGrid tile) {
|
||||||
|
return tile.patternOredicted;
|
||||||
|
}
|
||||||
|
}, new ITileDataConsumer<Boolean, TileGrid>() {
|
||||||
|
@Override
|
||||||
|
public void setValue(TileGrid tile, Boolean value) {
|
||||||
|
tile.patternOredicted = value;
|
||||||
|
tile.markDirty();
|
||||||
|
}
|
||||||
|
}, parameter -> {
|
||||||
|
if (Minecraft.getMinecraft().currentScreen instanceof GuiGrid) {
|
||||||
|
((GuiGrid) Minecraft.getMinecraft().currentScreen).updatePatternOredicted(parameter.getValue());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
public static final String NBT_VIEW_TYPE = "ViewType";
|
public static final String NBT_VIEW_TYPE = "ViewType";
|
||||||
public static final String NBT_SORTING_DIRECTION = "SortingDirection";
|
public static final String NBT_SORTING_DIRECTION = "SortingDirection";
|
||||||
public static final String NBT_SORTING_TYPE = "SortingType";
|
public static final String NBT_SORTING_TYPE = "SortingType";
|
||||||
public static final String NBT_SEARCH_BOX_MODE = "SearchBoxMode";
|
public static final String NBT_SEARCH_BOX_MODE = "SearchBoxMode";
|
||||||
|
private static final String NBT_PATTERN_OREDICTED = "PatternOredicted";
|
||||||
|
|
||||||
public static final int SORTING_DIRECTION_ASCENDING = 0;
|
public static final int SORTING_DIRECTION_ASCENDING = 0;
|
||||||
public static final int SORTING_DIRECTION_DESCENDING = 1;
|
public static final int SORTING_DIRECTION_DESCENDING = 1;
|
||||||
@@ -152,11 +170,14 @@ public class TileGrid extends TileNode implements IGrid {
|
|||||||
private int sortingType = SORTING_TYPE_NAME;
|
private int sortingType = SORTING_TYPE_NAME;
|
||||||
private int searchBoxMode = SEARCH_BOX_MODE_NORMAL;
|
private int searchBoxMode = SEARCH_BOX_MODE_NORMAL;
|
||||||
|
|
||||||
|
private boolean patternOredicted = false;
|
||||||
|
|
||||||
public TileGrid() {
|
public TileGrid() {
|
||||||
dataManager.addWatchedParameter(VIEW_TYPE);
|
dataManager.addWatchedParameter(VIEW_TYPE);
|
||||||
dataManager.addWatchedParameter(SORTING_DIRECTION);
|
dataManager.addWatchedParameter(SORTING_DIRECTION);
|
||||||
dataManager.addWatchedParameter(SORTING_TYPE);
|
dataManager.addWatchedParameter(SORTING_TYPE);
|
||||||
dataManager.addWatchedParameter(SEARCH_BOX_MODE);
|
dataManager.addWatchedParameter(SEARCH_BOX_MODE);
|
||||||
|
dataManager.addWatchedParameter(PATTERN_OREDICTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -308,6 +329,8 @@ public class TileGrid extends TileNode implements IGrid {
|
|||||||
|
|
||||||
ItemStack pattern = new ItemStack(RefinedStorageItems.PATTERN);
|
ItemStack pattern = new ItemStack(RefinedStorageItems.PATTERN);
|
||||||
|
|
||||||
|
ItemPattern.setOredicted(pattern, patternOredicted);
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
for (int i = 0; i < 9; ++i) {
|
||||||
ItemStack ingredient = matrix.getStackInSlot(i);
|
ItemStack ingredient = matrix.getStackInSlot(i);
|
||||||
|
|
||||||
@@ -461,6 +484,10 @@ public class TileGrid extends TileNode implements IGrid {
|
|||||||
if (tag.hasKey(NBT_SEARCH_BOX_MODE)) {
|
if (tag.hasKey(NBT_SEARCH_BOX_MODE)) {
|
||||||
searchBoxMode = tag.getInteger(NBT_SEARCH_BOX_MODE);
|
searchBoxMode = tag.getInteger(NBT_SEARCH_BOX_MODE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (tag.hasKey(NBT_PATTERN_OREDICTED)) {
|
||||||
|
patternOredicted = tag.getBoolean(NBT_PATTERN_OREDICTED);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -475,6 +502,7 @@ public class TileGrid extends TileNode implements IGrid {
|
|||||||
tag.setInteger(NBT_SORTING_DIRECTION, sortingDirection);
|
tag.setInteger(NBT_SORTING_DIRECTION, sortingDirection);
|
||||||
tag.setInteger(NBT_SORTING_TYPE, sortingType);
|
tag.setInteger(NBT_SORTING_TYPE, sortingType);
|
||||||
tag.setInteger(NBT_SEARCH_BOX_MODE, searchBoxMode);
|
tag.setInteger(NBT_SEARCH_BOX_MODE, searchBoxMode);
|
||||||
|
tag.setBoolean(NBT_PATTERN_OREDICTED, patternOredicted);
|
||||||
|
|
||||||
return tag;
|
return tag;
|
||||||
}
|
}
|
||||||
|
|||||||
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