Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 66ab022c95 |
@@ -0,0 +1,5 @@
|
|||||||
|
package appeng.api.config;
|
||||||
|
|
||||||
|
public enum Packaging {
|
||||||
|
ENABLED, DISABLED;
|
||||||
|
}
|
||||||
@@ -37,82 +37,86 @@ import java.util.List;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* do not implement provided by {@link ICraftingPatternItem}
|
* do not implement provided by {@link ICraftingPatternItem}
|
||||||
*
|
* <p>
|
||||||
* caching this INSTANCE will increase performance of validation and checks.
|
* caching this INSTANCE will increase performance of validation and checks.
|
||||||
*/
|
*/
|
||||||
public interface ICraftingPatternDetails
|
public interface ICraftingPatternDetails {
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return source item.
|
* @return source item.
|
||||||
*/
|
*/
|
||||||
ItemStack getPattern();
|
ItemStack getPattern();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param slotIndex specific slot index
|
* @param slotIndex specific slot index
|
||||||
* @param itemStack item in slot
|
* @param itemStack item in slot
|
||||||
* @param world crafting world
|
* @param world crafting world
|
||||||
*
|
* @return if an item can be used in the specific slot for this pattern.
|
||||||
* @return if an item can be used in the specific slot for this pattern.
|
*/
|
||||||
*/
|
boolean isValidItemForSlot(int slotIndex, ItemStack itemStack, World world);
|
||||||
boolean isValidItemForSlot( int slotIndex, ItemStack itemStack, World world );
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return if this pattern is a crafting pattern ( work bench )
|
* @return if this pattern is a crafting pattern ( work bench )
|
||||||
*/
|
*/
|
||||||
boolean isCraftable();
|
boolean isCraftable();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return a list of the inputs, will include nulls.
|
* @return a list of the inputs, will include nulls.
|
||||||
*/
|
*/
|
||||||
IAEItemStack[] getInputs();
|
IAEItemStack[] getInputs();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return a list of the inputs, will be clean
|
* @return a list of the inputs, will be clean
|
||||||
*/
|
*/
|
||||||
IAEItemStack[] getCondensedInputs();
|
IAEItemStack[] getCondensedInputs();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return a list of the outputs, will be clean
|
* @return a list of the outputs, will be clean
|
||||||
*/
|
*/
|
||||||
IAEItemStack[] getCondensedOutputs();
|
IAEItemStack[] getCondensedOutputs();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return a list of the outputs, will include nulls.
|
* @return a list of the outputs, will include nulls.
|
||||||
*/
|
*/
|
||||||
IAEItemStack[] getOutputs();
|
IAEItemStack[] getOutputs();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return if this pattern is enabled to support substitutions.
|
* @return if this pattern is enabled to support substitutions.
|
||||||
*/
|
*/
|
||||||
boolean canSubstitute();
|
boolean canSubstitute();
|
||||||
|
|
||||||
default List<IAEItemStack> getSubstituteInputs( int slot )
|
default List<IAEItemStack> getSubstituteInputs(int slot) {
|
||||||
{
|
return Collections.emptyList();
|
||||||
return Collections.emptyList();
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allow using this INSTANCE of the pattern details to preform the crafting action with performance enhancements.
|
* Allow using this INSTANCE of the pattern details to preform the crafting action with performance enhancements.
|
||||||
*
|
*
|
||||||
* @param craftingInv inventory
|
* @param craftingInv inventory
|
||||||
* @param world crafting world
|
* @param world crafting world
|
||||||
*
|
* @return the crafted ( work bench ) item.
|
||||||
* @return the crafted ( work bench ) item.
|
*/
|
||||||
*/
|
ItemStack getOutput(InventoryCrafting craftingInv, World world);
|
||||||
ItemStack getOutput( InventoryCrafting craftingInv, World world );
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the priority of this pattern
|
* Get the priority of this pattern
|
||||||
*
|
*
|
||||||
* @return the priority of this pattern
|
* @return the priority of this pattern
|
||||||
*/
|
*/
|
||||||
int getPriority();
|
int getPriority();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the priority the of this pattern.
|
* Set the priority the of this pattern.
|
||||||
*
|
*
|
||||||
* @param priority priority of pattern
|
* @param priority priority of pattern
|
||||||
*/
|
*/
|
||||||
void setPriority( int priority );
|
void setPriority(int priority);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return if this pattern is a packaging pattern.
|
||||||
|
*/
|
||||||
|
|
||||||
|
default boolean isPackage() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+33
-17
@@ -1,7 +1,7 @@
|
|||||||
package appeng.client.gui.implementations;
|
package appeng.client.gui.implementations;
|
||||||
|
|
||||||
import appeng.api.config.ActionItems;
|
import appeng.api.config.ActionItems;
|
||||||
import appeng.api.config.ItemSubstitution;
|
import appeng.api.config.Packaging;
|
||||||
import appeng.api.config.Settings;
|
import appeng.api.config.Settings;
|
||||||
import appeng.api.storage.ITerminalHost;
|
import appeng.api.storage.ITerminalHost;
|
||||||
import appeng.client.gui.widgets.GuiImgButton;
|
import appeng.client.gui.widgets.GuiImgButton;
|
||||||
@@ -36,6 +36,9 @@ public class GuiExpandedProcessingPatternTerm extends GuiMEMonitorable implement
|
|||||||
private static final String SUBSITUTION_DISABLE = "0";
|
private static final String SUBSITUTION_DISABLE = "0";
|
||||||
private static final String SUBSITUTION_ENABLE = "1";
|
private static final String SUBSITUTION_ENABLE = "1";
|
||||||
|
|
||||||
|
private static final String PACKAGING_DISABLE = "0";
|
||||||
|
private static final String PACKAGING_ENABLE = "1";
|
||||||
|
|
||||||
private static final String CRAFTMODE_CRFTING = "1";
|
private static final String CRAFTMODE_CRFTING = "1";
|
||||||
private static final String CRAFTMODE_PROCESSING = "0";
|
private static final String CRAFTMODE_PROCESSING = "0";
|
||||||
|
|
||||||
@@ -52,10 +55,14 @@ public class GuiExpandedProcessingPatternTerm extends GuiMEMonitorable implement
|
|||||||
private GuiImgButton divThreeBtn;
|
private GuiImgButton divThreeBtn;
|
||||||
private GuiImgButton minusOneBtn;
|
private GuiImgButton minusOneBtn;
|
||||||
private GuiImgButton maxCountBtn;
|
private GuiImgButton maxCountBtn;
|
||||||
|
private GuiImgButton packagingEnabledBtn;
|
||||||
|
private GuiImgButton packagingDisabledBtn;
|
||||||
public Map<IGhostIngredientHandler.Target<?>, Object> mapTargetSlot = new HashMap<>();
|
public Map<IGhostIngredientHandler.Target<?>, Object> mapTargetSlot = new HashMap<>();
|
||||||
|
private ContainerExpandedProcessingPatternTerm container;
|
||||||
|
|
||||||
public GuiExpandedProcessingPatternTerm(final InventoryPlayer inventoryPlayer, final ITerminalHost te) {
|
public GuiExpandedProcessingPatternTerm(final InventoryPlayer inventoryPlayer, final ITerminalHost te) {
|
||||||
super(inventoryPlayer, te, new ContainerExpandedProcessingPatternTerm(inventoryPlayer, te));
|
super(inventoryPlayer, te, new ContainerExpandedProcessingPatternTerm(inventoryPlayer, te));
|
||||||
|
this.container = (ContainerExpandedProcessingPatternTerm) this.inventorySlots;
|
||||||
this.setReservedSpace(81);
|
this.setReservedSpace(81);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -112,6 +119,13 @@ public class GuiExpandedProcessingPatternTerm extends GuiMEMonitorable implement
|
|||||||
if (this.substitutionsEnabledBtn == btn || this.substitutionsDisabledBtn == btn) {
|
if (this.substitutionsEnabledBtn == btn || this.substitutionsDisabledBtn == btn) {
|
||||||
NetworkHandler.instance().sendToServer(new PacketValueConfig("PatternTerminal.Substitute", this.substitutionsEnabledBtn == btn ? SUBSITUTION_DISABLE : SUBSITUTION_ENABLE));
|
NetworkHandler.instance().sendToServer(new PacketValueConfig("PatternTerminal.Substitute", this.substitutionsEnabledBtn == btn ? SUBSITUTION_DISABLE : SUBSITUTION_ENABLE));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.packagingEnabledBtn == btn || this.packagingDisabledBtn == btn) {
|
||||||
|
NetworkHandler.instance()
|
||||||
|
.sendToServer(
|
||||||
|
new PacketValueConfig("PatternTerminal.Package", this.packagingEnabledBtn == btn ? PACKAGING_DISABLE : PACKAGING_ENABLE));
|
||||||
|
}
|
||||||
|
|
||||||
} catch (final IOException e) {
|
} catch (final IOException e) {
|
||||||
AELog.error(e);
|
AELog.error(e);
|
||||||
}
|
}
|
||||||
@@ -121,29 +135,26 @@ public class GuiExpandedProcessingPatternTerm extends GuiMEMonitorable implement
|
|||||||
public void initGui() {
|
public void initGui() {
|
||||||
super.initGui();
|
super.initGui();
|
||||||
|
|
||||||
this.tabCraftButton = new GuiTabButton(this.guiLeft + 173, this.guiTop + this.ySize - 177, new ItemStack(Blocks.CRAFTING_TABLE), GuiText.CraftingPattern.getLocal(), this.itemRender);
|
|
||||||
this.buttonList.add(this.tabCraftButton);
|
|
||||||
|
|
||||||
this.tabProcessButton = new GuiTabButton(this.guiLeft + 173, this.guiTop + this.ySize - 177, new ItemStack(Blocks.FURNACE), GuiText.ProcessingPattern.getLocal(), this.itemRender);
|
this.tabProcessButton = new GuiTabButton(this.guiLeft + 173, this.guiTop + this.ySize - 177, new ItemStack(Blocks.FURNACE), GuiText.ProcessingPattern.getLocal(), this.itemRender);
|
||||||
this.buttonList.add(this.tabProcessButton);
|
this.buttonList.add(this.tabProcessButton);
|
||||||
|
|
||||||
this.substitutionsEnabledBtn = new GuiImgButton(this.guiLeft + 84, this.guiTop + this.ySize - 163, Settings.ACTIONS, ItemSubstitution.ENABLED);
|
this.packagingEnabledBtn = new GuiImgButton(this.guiLeft + 84, this.guiTop + this.ySize - 163, Settings.ACTIONS, Packaging.ENABLED);
|
||||||
this.substitutionsEnabledBtn.setHalfSize(true);
|
this.packagingEnabledBtn.setHalfSize(true);
|
||||||
this.buttonList.add(this.substitutionsEnabledBtn);
|
this.buttonList.add(this.packagingEnabledBtn);
|
||||||
|
|
||||||
this.substitutionsDisabledBtn = new GuiImgButton(this.guiLeft + 84, this.guiTop + this.ySize - 163, Settings.ACTIONS, ItemSubstitution.DISABLED);
|
this.packagingDisabledBtn = new GuiImgButton(this.guiLeft + 84, this.guiTop + this.ySize - 163, Settings.ACTIONS, Packaging.DISABLED);
|
||||||
this.substitutionsDisabledBtn.setHalfSize(true);
|
this.packagingDisabledBtn.setHalfSize(true);
|
||||||
this.buttonList.add(this.substitutionsDisabledBtn);
|
this.buttonList.add(this.packagingDisabledBtn);
|
||||||
|
|
||||||
this.clearBtn = new GuiImgButton(this.guiLeft + 74, this.guiTop + this.ySize - 163, Settings.ACTIONS, ActionItems.CLOSE);
|
this.clearBtn = new GuiImgButton(this.guiLeft + 74, this.guiTop + this.ySize - 163, Settings.ACTIONS, ActionItems.CLOSE);
|
||||||
this.clearBtn.setHalfSize(true);
|
this.clearBtn.setHalfSize(true);
|
||||||
this.buttonList.add(this.clearBtn);
|
this.buttonList.add(this.clearBtn);
|
||||||
|
|
||||||
this.x3Btn = new GuiImgButton(this.guiLeft + 131, this.guiTop + this.ySize - 158, Settings.ACTIONS, ActionItems.MULTIPLY_BY_THREE);
|
this.x3Btn = new GuiImgButton(this.guiLeft + 131, this.guiTop + this.ySize - 154, Settings.ACTIONS, ActionItems.MULTIPLY_BY_THREE);
|
||||||
this.x3Btn.setHalfSize(true);
|
this.x3Btn.setHalfSize(true);
|
||||||
this.buttonList.add(this.x3Btn);
|
this.buttonList.add(this.x3Btn);
|
||||||
|
|
||||||
this.x2Btn = new GuiImgButton(this.guiLeft + 131, this.guiTop + this.ySize - 148, Settings.ACTIONS, ActionItems.MULTIPLY_BY_TWO);
|
this.x2Btn = new GuiImgButton(this.guiLeft + 131, this.guiTop + this.ySize - 144, Settings.ACTIONS, ActionItems.MULTIPLY_BY_TWO);
|
||||||
this.x2Btn.setHalfSize(true);
|
this.x2Btn.setHalfSize(true);
|
||||||
this.buttonList.add(this.x2Btn);
|
this.buttonList.add(this.x2Btn);
|
||||||
|
|
||||||
@@ -151,11 +162,11 @@ public class GuiExpandedProcessingPatternTerm extends GuiMEMonitorable implement
|
|||||||
this.plusOneBtn.setHalfSize(true);
|
this.plusOneBtn.setHalfSize(true);
|
||||||
this.buttonList.add(this.plusOneBtn);
|
this.buttonList.add(this.plusOneBtn);
|
||||||
|
|
||||||
this.divThreeBtn = new GuiImgButton(this.guiLeft + 87, this.guiTop + this.ySize - 158, Settings.ACTIONS, ActionItems.DIVIDE_BY_THREE);
|
this.divThreeBtn = new GuiImgButton(this.guiLeft + 87, this.guiTop + this.ySize - 154, Settings.ACTIONS, ActionItems.DIVIDE_BY_THREE);
|
||||||
this.divThreeBtn.setHalfSize(true);
|
this.divThreeBtn.setHalfSize(true);
|
||||||
this.buttonList.add(this.divThreeBtn);
|
this.buttonList.add(this.divThreeBtn);
|
||||||
|
|
||||||
this.divTwoBtn = new GuiImgButton(this.guiLeft + 87, this.guiTop + this.ySize - 148, Settings.ACTIONS, ActionItems.DIVIDE_BY_TWO);
|
this.divTwoBtn = new GuiImgButton(this.guiLeft + 87, this.guiTop + this.ySize - 144, Settings.ACTIONS, ActionItems.DIVIDE_BY_TWO);
|
||||||
this.divTwoBtn.setHalfSize(true);
|
this.divTwoBtn.setHalfSize(true);
|
||||||
this.buttonList.add(this.divTwoBtn);
|
this.buttonList.add(this.divTwoBtn);
|
||||||
|
|
||||||
@@ -173,16 +184,21 @@ public class GuiExpandedProcessingPatternTerm extends GuiMEMonitorable implement
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void drawFG(final int offsetX, final int offsetY, final int mouseX, final int mouseY) {
|
public void drawFG(final int offsetX, final int offsetY, final int mouseX, final int mouseY) {
|
||||||
this.tabCraftButton.visible = false;
|
|
||||||
this.tabProcessButton.visible = true;
|
this.tabProcessButton.visible = true;
|
||||||
this.substitutionsEnabledBtn.visible = false;
|
|
||||||
this.substitutionsDisabledBtn.visible = false;
|
|
||||||
this.x2Btn.visible = true;
|
this.x2Btn.visible = true;
|
||||||
this.x3Btn.visible = true;
|
this.x3Btn.visible = true;
|
||||||
this.divTwoBtn.visible = true;
|
this.divTwoBtn.visible = true;
|
||||||
this.divThreeBtn.visible = true;
|
this.divThreeBtn.visible = true;
|
||||||
this.plusOneBtn.visible = true;
|
this.plusOneBtn.visible = true;
|
||||||
this.minusOneBtn.visible = true;
|
this.minusOneBtn.visible = true;
|
||||||
|
|
||||||
|
if (this.container.packaging) {
|
||||||
|
this.packagingEnabledBtn.visible = true;
|
||||||
|
this.packagingDisabledBtn.visible = false;
|
||||||
|
} else {
|
||||||
|
this.packagingEnabledBtn.visible = false;
|
||||||
|
this.packagingDisabledBtn.visible = true;
|
||||||
|
}
|
||||||
//this.maxCountBtn.visible = true;
|
//this.maxCountBtn.visible = true;
|
||||||
|
|
||||||
super.drawFG(offsetX, offsetY, mouseX, mouseY);
|
super.drawFG(offsetX, offsetY, mouseX, mouseY);
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ package appeng.client.gui.implementations;
|
|||||||
|
|
||||||
import appeng.api.config.ActionItems;
|
import appeng.api.config.ActionItems;
|
||||||
import appeng.api.config.ItemSubstitution;
|
import appeng.api.config.ItemSubstitution;
|
||||||
|
import appeng.api.config.Packaging;
|
||||||
import appeng.api.config.Settings;
|
import appeng.api.config.Settings;
|
||||||
import appeng.api.storage.ITerminalHost;
|
import appeng.api.storage.ITerminalHost;
|
||||||
import appeng.client.gui.widgets.GuiImgButton;
|
import appeng.client.gui.widgets.GuiImgButton;
|
||||||
@@ -60,6 +61,9 @@ public class GuiPatternTerm extends GuiMEMonitorable implements IJEIGhostIngredi
|
|||||||
private static final String SUBSITUTION_DISABLE = "0";
|
private static final String SUBSITUTION_DISABLE = "0";
|
||||||
private static final String SUBSITUTION_ENABLE = "1";
|
private static final String SUBSITUTION_ENABLE = "1";
|
||||||
|
|
||||||
|
private static final String PACKAGING_DISABLE = "0";
|
||||||
|
private static final String PACKAGING_ENABLE = "1";
|
||||||
|
|
||||||
private static final String CRAFTMODE_CRFTING = "1";
|
private static final String CRAFTMODE_CRFTING = "1";
|
||||||
private static final String CRAFTMODE_PROCESSING = "0";
|
private static final String CRAFTMODE_PROCESSING = "0";
|
||||||
|
|
||||||
@@ -78,6 +82,8 @@ public class GuiPatternTerm extends GuiMEMonitorable implements IJEIGhostIngredi
|
|||||||
private GuiImgButton divThreeBtn;
|
private GuiImgButton divThreeBtn;
|
||||||
private GuiImgButton minusOneBtn;
|
private GuiImgButton minusOneBtn;
|
||||||
private GuiImgButton maxCountBtn;
|
private GuiImgButton maxCountBtn;
|
||||||
|
private GuiImgButton packagingEnabledBtn;
|
||||||
|
private GuiImgButton packagingDisabledBtn;
|
||||||
public Map<Target<?>, Object> mapTargetSlot = new HashMap<>();
|
public Map<Target<?>, Object> mapTargetSlot = new HashMap<>();
|
||||||
|
|
||||||
public GuiPatternTerm(final InventoryPlayer inventoryPlayer, final ITerminalHost te) {
|
public GuiPatternTerm(final InventoryPlayer inventoryPlayer, final ITerminalHost te) {
|
||||||
@@ -149,6 +155,12 @@ public class GuiPatternTerm extends GuiMEMonitorable implements IJEIGhostIngredi
|
|||||||
.sendToServer(
|
.sendToServer(
|
||||||
new PacketValueConfig("PatternTerminal.Substitute", this.substitutionsEnabledBtn == btn ? SUBSITUTION_DISABLE : SUBSITUTION_ENABLE));
|
new PacketValueConfig("PatternTerminal.Substitute", this.substitutionsEnabledBtn == btn ? SUBSITUTION_DISABLE : SUBSITUTION_ENABLE));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.packagingEnabledBtn == btn || this.packagingDisabledBtn == btn) {
|
||||||
|
NetworkHandler.instance()
|
||||||
|
.sendToServer(
|
||||||
|
new PacketValueConfig("PatternTerminal.Package", this.packagingEnabledBtn == btn ? PACKAGING_DISABLE : PACKAGING_ENABLE));
|
||||||
|
}
|
||||||
} catch (final IOException e) {
|
} catch (final IOException e) {
|
||||||
AELog.error(e);
|
AELog.error(e);
|
||||||
}
|
}
|
||||||
@@ -174,6 +186,14 @@ public class GuiPatternTerm extends GuiMEMonitorable implements IJEIGhostIngredi
|
|||||||
this.substitutionsDisabledBtn.setHalfSize(true);
|
this.substitutionsDisabledBtn.setHalfSize(true);
|
||||||
this.buttonList.add(this.substitutionsDisabledBtn);
|
this.buttonList.add(this.substitutionsDisabledBtn);
|
||||||
|
|
||||||
|
this.packagingEnabledBtn = new GuiImgButton(this.guiLeft + 84, this.guiTop + this.ySize - 163, Settings.ACTIONS, Packaging.ENABLED);
|
||||||
|
this.packagingEnabledBtn.setHalfSize(true);
|
||||||
|
this.buttonList.add(this.packagingEnabledBtn);
|
||||||
|
|
||||||
|
this.packagingDisabledBtn = new GuiImgButton(this.guiLeft + 84, this.guiTop + this.ySize - 163, Settings.ACTIONS, Packaging.DISABLED);
|
||||||
|
this.packagingDisabledBtn.setHalfSize(true);
|
||||||
|
this.buttonList.add(this.packagingDisabledBtn);
|
||||||
|
|
||||||
this.clearBtn = new GuiImgButton(this.guiLeft + 74, this.guiTop + this.ySize - 163, Settings.ACTIONS, ActionItems.CLOSE);
|
this.clearBtn = new GuiImgButton(this.guiLeft + 74, this.guiTop + this.ySize - 163, Settings.ACTIONS, ActionItems.CLOSE);
|
||||||
this.clearBtn.setHalfSize(true);
|
this.clearBtn.setHalfSize(true);
|
||||||
this.buttonList.add(this.clearBtn);
|
this.buttonList.add(this.clearBtn);
|
||||||
@@ -221,6 +241,8 @@ public class GuiPatternTerm extends GuiMEMonitorable implements IJEIGhostIngredi
|
|||||||
this.divThreeBtn.visible = false;
|
this.divThreeBtn.visible = false;
|
||||||
this.plusOneBtn.visible = false;
|
this.plusOneBtn.visible = false;
|
||||||
this.minusOneBtn.visible = false;
|
this.minusOneBtn.visible = false;
|
||||||
|
this.packagingEnabledBtn.visible = false;
|
||||||
|
this.packagingDisabledBtn.visible = false;
|
||||||
//this.maxCountBtn.visible = false;
|
//this.maxCountBtn.visible = false;
|
||||||
|
|
||||||
if (this.container.substitute) {
|
if (this.container.substitute) {
|
||||||
@@ -231,6 +253,13 @@ public class GuiPatternTerm extends GuiMEMonitorable implements IJEIGhostIngredi
|
|||||||
this.substitutionsDisabledBtn.visible = true;
|
this.substitutionsDisabledBtn.visible = true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
if (this.container.packaging) {
|
||||||
|
this.packagingEnabledBtn.visible = true;
|
||||||
|
this.packagingDisabledBtn.visible = false;
|
||||||
|
} else {
|
||||||
|
this.packagingEnabledBtn.visible = false;
|
||||||
|
this.packagingDisabledBtn.visible = true;
|
||||||
|
}
|
||||||
this.tabCraftButton.visible = false;
|
this.tabCraftButton.visible = false;
|
||||||
this.tabProcessButton.visible = true;
|
this.tabProcessButton.visible = true;
|
||||||
this.substitutionsEnabledBtn.visible = false;
|
this.substitutionsEnabledBtn.visible = false;
|
||||||
|
|||||||
@@ -125,6 +125,9 @@ public class GuiImgButton extends GuiButton implements ITooltip {
|
|||||||
this.registerApp(4 + 3 * 16, Settings.ACTIONS, ItemSubstitution.ENABLED, ButtonToolTips.Substitutions, ButtonToolTips.SubstitutionsDescEnabled);
|
this.registerApp(4 + 3 * 16, Settings.ACTIONS, ItemSubstitution.ENABLED, ButtonToolTips.Substitutions, ButtonToolTips.SubstitutionsDescEnabled);
|
||||||
this.registerApp(7 + 3 * 16, Settings.ACTIONS, ItemSubstitution.DISABLED, ButtonToolTips.Substitutions, ButtonToolTips.SubstitutionsDescDisabled);
|
this.registerApp(7 + 3 * 16, Settings.ACTIONS, ItemSubstitution.DISABLED, ButtonToolTips.Substitutions, ButtonToolTips.SubstitutionsDescDisabled);
|
||||||
|
|
||||||
|
this.registerApp(8 + 3 * 16, Settings.ACTIONS, Packaging.ENABLED, ButtonToolTips.Packaging, ButtonToolTips.PackagingDescEnabled);
|
||||||
|
this.registerApp(9 + 3 * 16, Settings.ACTIONS, Packaging.DISABLED, ButtonToolTips.Packaging, ButtonToolTips.PackagingDescDisabled);
|
||||||
|
|
||||||
this.registerApp(16, Settings.VIEW_MODE, ViewItems.STORED, ButtonToolTips.View, ButtonToolTips.StoredItems);
|
this.registerApp(16, Settings.VIEW_MODE, ViewItems.STORED, ButtonToolTips.View, ButtonToolTips.StoredItems);
|
||||||
this.registerApp(18, Settings.VIEW_MODE, ViewItems.ALL, ButtonToolTips.View, ButtonToolTips.StoredCraftable);
|
this.registerApp(18, Settings.VIEW_MODE, ViewItems.ALL, ButtonToolTips.View, ButtonToolTips.StoredCraftable);
|
||||||
this.registerApp(19, Settings.VIEW_MODE, ViewItems.CRAFTABLE, ButtonToolTips.View, ButtonToolTips.Craftable);
|
this.registerApp(19, Settings.VIEW_MODE, ViewItems.CRAFTABLE, ButtonToolTips.View, ButtonToolTips.Craftable);
|
||||||
|
|||||||
@@ -12,14 +12,7 @@ import appeng.api.storage.data.IAEItemStack;
|
|||||||
import appeng.api.storage.data.IItemList;
|
import appeng.api.storage.data.IItemList;
|
||||||
import appeng.container.ContainerNull;
|
import appeng.container.ContainerNull;
|
||||||
import appeng.container.guisync.GuiSync;
|
import appeng.container.guisync.GuiSync;
|
||||||
import appeng.container.slot.AppEngSlot;
|
import appeng.container.slot.*;
|
||||||
import appeng.container.slot.IOptionalSlotHost;
|
|
||||||
import appeng.container.slot.OptionalSlotFake;
|
|
||||||
import appeng.container.slot.SlotFakeCraftingMatrix;
|
|
||||||
import appeng.container.slot.SlotPatternTerm;
|
|
||||||
import appeng.container.slot.SlotPlayerHotBar;
|
|
||||||
import appeng.container.slot.SlotPlayerInv;
|
|
||||||
import appeng.container.slot.SlotRestrictedInput;
|
|
||||||
import appeng.core.sync.packets.PacketPatternSlot;
|
import appeng.core.sync.packets.PacketPatternSlot;
|
||||||
import appeng.helpers.IContainerCraftingPacket;
|
import appeng.helpers.IContainerCraftingPacket;
|
||||||
import appeng.items.storage.ItemViewCell;
|
import appeng.items.storage.ItemViewCell;
|
||||||
@@ -74,6 +67,8 @@ public abstract class ContainerPatternEncoder extends ContainerMEMonitorable imp
|
|||||||
public boolean craftingMode = true;
|
public boolean craftingMode = true;
|
||||||
@GuiSync(96)
|
@GuiSync(96)
|
||||||
public boolean substitute = false;
|
public boolean substitute = false;
|
||||||
|
@GuiSync(95)
|
||||||
|
public boolean packaging = false;
|
||||||
|
|
||||||
protected ContainerPatternEncoder(InventoryPlayer ip, ITerminalHost monitorable, boolean bindInventory) {
|
protected ContainerPatternEncoder(InventoryPlayer ip, ITerminalHost monitorable, boolean bindInventory) {
|
||||||
super(ip, monitorable, bindInventory);
|
super(ip, monitorable, bindInventory);
|
||||||
@@ -254,8 +249,12 @@ public abstract class ContainerPatternEncoder extends ContainerMEMonitorable imp
|
|||||||
|
|
||||||
encodedValue.setTag("in", tagIn);
|
encodedValue.setTag("in", tagIn);
|
||||||
encodedValue.setTag("out", tagOut);
|
encodedValue.setTag("out", tagOut);
|
||||||
encodedValue.setBoolean("crafting", this.isCraftingMode());
|
if (this.isCraftingMode()) {
|
||||||
encodedValue.setBoolean("substitute", this.isSubstitute());
|
encodedValue.setBoolean("crafting", this.isCraftingMode());
|
||||||
|
encodedValue.setBoolean("substitute", this.isSubstitute());
|
||||||
|
} else {
|
||||||
|
encodedValue.setBoolean("packaging", this.isPackaging());
|
||||||
|
}
|
||||||
|
|
||||||
output.setTagCompound(encodedValue);
|
output.setTagCompound(encodedValue);
|
||||||
|
|
||||||
@@ -532,6 +531,14 @@ public abstract class ContainerPatternEncoder extends ContainerMEMonitorable imp
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setSubstitute(final boolean substitute) {
|
public void setSubstitute(final boolean substitute) {
|
||||||
|
if (getPart() != null) {
|
||||||
|
getPart().setSubstitution(substitute);
|
||||||
|
} else if (iGuiItemObject != null) {
|
||||||
|
NBTTagCompound nbtTagCompound = iGuiItemObject.getItemStack().getTagCompound();
|
||||||
|
if (nbtTagCompound != null) {
|
||||||
|
nbtTagCompound.setBoolean("isSubstitute", substitute);
|
||||||
|
}
|
||||||
|
}
|
||||||
this.substitute = substitute;
|
this.substitute = substitute;
|
||||||
if (getPart() != null) {
|
if (getPart() != null) {
|
||||||
getPart().setSubstitution(substitute);
|
getPart().setSubstitution(substitute);
|
||||||
@@ -543,6 +550,22 @@ public abstract class ContainerPatternEncoder extends ContainerMEMonitorable imp
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isPackaging() {
|
||||||
|
return this.packaging;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPackaging(boolean packaging) {
|
||||||
|
if (getPart() != null) {
|
||||||
|
getPart().setPackaging(packaging);
|
||||||
|
} else if (iGuiItemObject != null) {
|
||||||
|
NBTTagCompound nbtTagCompound = iGuiItemObject.getItemStack().getTagCompound();
|
||||||
|
if (nbtTagCompound != null) {
|
||||||
|
nbtTagCompound.setBoolean("isPackaging", packaging);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.packaging = packaging;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void detectAndSendChanges() {
|
public void detectAndSendChanges() {
|
||||||
super.detectAndSendChanges();
|
super.detectAndSendChanges();
|
||||||
@@ -552,6 +575,7 @@ public abstract class ContainerPatternEncoder extends ContainerMEMonitorable imp
|
|||||||
this.setCraftingMode(this.getPart().isCraftingRecipe());
|
this.setCraftingMode(this.getPart().isCraftingRecipe());
|
||||||
this.updateOrderOfOutputSlots();
|
this.updateOrderOfOutputSlots();
|
||||||
}
|
}
|
||||||
|
this.packaging = this.getPart().isPackaging();
|
||||||
this.substitute = this.getPart().isSubstitution();
|
this.substitute = this.getPart().isSubstitution();
|
||||||
} else if (iGuiItemObject != null) {
|
} else if (iGuiItemObject != null) {
|
||||||
NBTTagCompound nbtTagCompound = iGuiItemObject.getItemStack().getTagCompound();
|
NBTTagCompound nbtTagCompound = iGuiItemObject.getItemStack().getTagCompound();
|
||||||
@@ -570,20 +594,23 @@ public abstract class ContainerPatternEncoder extends ContainerMEMonitorable imp
|
|||||||
nbtTagCompound.setBoolean("isCraftingMode", false);
|
nbtTagCompound.setBoolean("isCraftingMode", false);
|
||||||
iGuiItemObject.getItemStack().setTagCompound(nbtTagCompound);
|
iGuiItemObject.getItemStack().setTagCompound(nbtTagCompound);
|
||||||
}
|
}
|
||||||
nbtTagCompound = iGuiItemObject.getItemStack().getTagCompound();
|
|
||||||
if (nbtTagCompound != null) {
|
if (nbtTagCompound.hasKey("isSubstitute")) {
|
||||||
if (nbtTagCompound.hasKey("isSubstitute")) {
|
boolean substitute = nbtTagCompound.getBoolean("isSubstitute");
|
||||||
boolean substitute = nbtTagCompound.getBoolean("isSubstitute");
|
if (this.isSubstitute() != substitute) {
|
||||||
if (this.isSubstitute() != substitute) {
|
this.setSubstitute(substitute);
|
||||||
this.setSubstitute(substitute);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
nbtTagCompound.setBoolean("isSubstitute", false);
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
nbtTagCompound = new NBTTagCompound();
|
|
||||||
nbtTagCompound.setBoolean("isSubstitute", false);
|
nbtTagCompound.setBoolean("isSubstitute", false);
|
||||||
iGuiItemObject.getItemStack().setTagCompound(nbtTagCompound);
|
}
|
||||||
|
|
||||||
|
if (nbtTagCompound.hasKey("isPackaging")) {
|
||||||
|
boolean packaging = nbtTagCompound.getBoolean("isPackaging");
|
||||||
|
if (this.isPackaging() != packaging) {
|
||||||
|
this.setPackaging(packaging);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
nbtTagCompound.setBoolean("isPackaging", false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-1
@@ -224,7 +224,7 @@ public class ContainerWirelessPatternTerminal extends ContainerPatternEncoder im
|
|||||||
this.output.writeToNBT(tag, "output");
|
this.output.writeToNBT(tag, "output");
|
||||||
this.pattern.writeToNBT(tag, "patterns");
|
this.pattern.writeToNBT(tag, "patterns");
|
||||||
this.upgrades.writeToNBT(tag, "upgrades");
|
this.upgrades.writeToNBT(tag, "upgrades");
|
||||||
|
tag.setBoolean("isPackaging", this.packaging);
|
||||||
this.wirelessTerminalGUIObject.saveChanges(tag);
|
this.wirelessTerminalGUIObject.saveChanges(tag);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -236,6 +236,7 @@ public class ContainerWirelessPatternTerminal extends ContainerPatternEncoder im
|
|||||||
this.output.readFromNBT(data, "output");
|
this.output.readFromNBT(data, "output");
|
||||||
this.pattern.readFromNBT(data, "patterns");
|
this.pattern.readFromNBT(data, "patterns");
|
||||||
upgrades.readFromNBT(wirelessTerminalGUIObject.getItemStack().getTagCompound().getCompoundTag("upgrades"));
|
upgrades.readFromNBT(wirelessTerminalGUIObject.getItemStack().getTagCompound().getCompoundTag("upgrades"));
|
||||||
|
this.packaging = data.getBoolean("isPackaging");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -116,6 +116,11 @@ public enum ButtonToolTips {
|
|||||||
SubstitutionsOff,
|
SubstitutionsOff,
|
||||||
SubstitutionsDescEnabled,
|
SubstitutionsDescEnabled,
|
||||||
SubstitutionsDescDisabled,
|
SubstitutionsDescDisabled,
|
||||||
|
Packaging,
|
||||||
|
PackagingOn,
|
||||||
|
PackagingOff,
|
||||||
|
PackagingDescEnabled,
|
||||||
|
PackagingDescDisabled,
|
||||||
CraftOnly,
|
CraftOnly,
|
||||||
CraftEither,
|
CraftEither,
|
||||||
|
|
||||||
|
|||||||
@@ -119,6 +119,7 @@ public enum GuiText {
|
|||||||
And,
|
And,
|
||||||
With,
|
With,
|
||||||
Substitute,
|
Substitute,
|
||||||
|
Package,
|
||||||
Yes,
|
Yes,
|
||||||
No,
|
No,
|
||||||
|
|
||||||
|
|||||||
@@ -255,14 +255,16 @@ public class PacketJEIRecipe extends AppEngPacket {
|
|||||||
|
|
||||||
if (this.output != null && ((con instanceof ContainerPatternEncoder && !((ContainerPatternEncoder) con).isCraftingMode()))) {
|
if (this.output != null && ((con instanceof ContainerPatternEncoder && !((ContainerPatternEncoder) con).isCraftingMode()))) {
|
||||||
IItemHandler outputSlots = cct.getInventoryByName("output");
|
IItemHandler outputSlots = cct.getInventoryByName("output");
|
||||||
for (int i = 0; i < outputSlots.getSlots(); ++i) {
|
if (outputSlots != null) {
|
||||||
ItemHandlerUtil.setStackInSlot(outputSlots, i, ItemStack.EMPTY);
|
for (int i = 0; i < outputSlots.getSlots(); ++i) {
|
||||||
}
|
ItemHandlerUtil.setStackInSlot(outputSlots, i, ItemStack.EMPTY);
|
||||||
for (int i = 0; i < this.output.size() && i < outputSlots.getSlots(); ++i) {
|
}
|
||||||
if (this.output.get(i) == null || this.output.get(i) == ItemStack.EMPTY) {
|
for (int i = 0; i < this.output.size() && i < outputSlots.getSlots(); ++i) {
|
||||||
continue;
|
if (this.output.get(i) == null || this.output.get(i) == ItemStack.EMPTY) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
ItemHandlerUtil.setStackInSlot(outputSlots, i, this.output.get(i));
|
||||||
}
|
}
|
||||||
ItemHandlerUtil.setStackInSlot(outputSlots, i, this.output.get(i));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,7 +23,6 @@ import appeng.api.AEApi;
|
|||||||
import appeng.api.storage.channels.IItemStorageChannel;
|
import appeng.api.storage.channels.IItemStorageChannel;
|
||||||
import appeng.api.storage.data.IAEItemStack;
|
import appeng.api.storage.data.IAEItemStack;
|
||||||
import appeng.container.implementations.ContainerPatternEncoder;
|
import appeng.container.implementations.ContainerPatternEncoder;
|
||||||
import appeng.container.implementations.ContainerPatternTerm;
|
|
||||||
import appeng.core.sync.AppEngPacket;
|
import appeng.core.sync.AppEngPacket;
|
||||||
import appeng.core.sync.network.INetworkInfo;
|
import appeng.core.sync.network.INetworkInfo;
|
||||||
import appeng.util.item.AEItemStack;
|
import appeng.util.item.AEItemStack;
|
||||||
|
|||||||
@@ -157,7 +157,9 @@ public class PacketValueConfig extends AppEngPacket {
|
|||||||
} else if (this.Name.equals("PatternTerminal.MaximizeCount")) {
|
} else if (this.Name.equals("PatternTerminal.MaximizeCount")) {
|
||||||
cpt.maximizeCount();
|
cpt.maximizeCount();
|
||||||
} else if (this.Name.equals("PatternTerminal.Substitute")) {
|
} else if (this.Name.equals("PatternTerminal.Substitute")) {
|
||||||
cpt.getPart().setSubstitution(this.Value.equals("1"));
|
cpt.setSubstitute(this.Value.equals("1"));
|
||||||
|
} else if (this.Name.equals("PatternTerminal.Package")) {
|
||||||
|
cpt.setPackaging(this.Value.equals("1"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (this.Name.startsWith("StorageBus.")) {
|
} else if (this.Name.startsWith("StorageBus.")) {
|
||||||
|
|||||||
@@ -68,6 +68,7 @@ public class PatternHelper implements ICraftingPatternDetails, Comparable<Patter
|
|||||||
private final Set<TestLookup> failCache = new HashSet<>();
|
private final Set<TestLookup> failCache = new HashSet<>();
|
||||||
private final Set<TestLookup> passCache = new HashSet<>();
|
private final Set<TestLookup> passCache = new HashSet<>();
|
||||||
private final IAEItemStack pattern;
|
private final IAEItemStack pattern;
|
||||||
|
private final boolean isPackaging;
|
||||||
private int priority = 0;
|
private int priority = 0;
|
||||||
|
|
||||||
public PatternHelper(final ItemStack is, final World w) {
|
public PatternHelper(final ItemStack is, final World w) {
|
||||||
@@ -80,6 +81,7 @@ public class PatternHelper implements ICraftingPatternDetails, Comparable<Patter
|
|||||||
final NBTTagList inTag = encodedValue.getTagList("in", 10);
|
final NBTTagList inTag = encodedValue.getTagList("in", 10);
|
||||||
final NBTTagList outTag = encodedValue.getTagList("out", 10);
|
final NBTTagList outTag = encodedValue.getTagList("out", 10);
|
||||||
this.isCrafting = encodedValue.getBoolean("crafting");
|
this.isCrafting = encodedValue.getBoolean("crafting");
|
||||||
|
this.isPackaging = encodedValue.getBoolean("packaging");
|
||||||
|
|
||||||
crafting = new InventoryCrafting(new ContainerNull(), isCrafting ? 3 : 4, isCrafting ? 3 : 4);
|
crafting = new InventoryCrafting(new ContainerNull(), isCrafting ? 3 : 4, isCrafting ? 3 : 4);
|
||||||
testFrame = new InventoryCrafting(new ContainerNull(), isCrafting ? 3 : 4, isCrafting ? 3 : 4);
|
testFrame = new InventoryCrafting(new ContainerNull(), isCrafting ? 3 : 4, isCrafting ? 3 : 4);
|
||||||
@@ -207,6 +209,11 @@ public class PatternHelper implements ICraftingPatternDetails, Comparable<Patter
|
|||||||
return this.patternItem;
|
return this.patternItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isPackage() {
|
||||||
|
return this.isPackaging;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized boolean isValidItemForSlot(final int slotIndex, final ItemStack i, final World w) {
|
public synchronized boolean isValidItemForSlot(final int slotIndex, final ItemStack i, final World w) {
|
||||||
if (!this.isCrafting) {
|
if (!this.isCrafting) {
|
||||||
|
|||||||
@@ -136,6 +136,7 @@ public class ItemEncodedPattern extends AEBaseItem implements ICraftingPatternIt
|
|||||||
|
|
||||||
final boolean isCrafting = details.isCraftable();
|
final boolean isCrafting = details.isCraftable();
|
||||||
final boolean substitute = details.canSubstitute();
|
final boolean substitute = details.canSubstitute();
|
||||||
|
final boolean isPackage = details.isPackage();
|
||||||
|
|
||||||
final IAEItemStack[] in = details.getCondensedInputs();
|
final IAEItemStack[] in = details.getCondensedInputs();
|
||||||
final IAEItemStack[] out = details.getCondensedOutputs();
|
final IAEItemStack[] out = details.getCondensedOutputs();
|
||||||
@@ -169,6 +170,11 @@ public class ItemEncodedPattern extends AEBaseItem implements ICraftingPatternIt
|
|||||||
final String canSubstitute = substitute ? GuiText.Yes.getLocal() : GuiText.No.getLocal();
|
final String canSubstitute = substitute ? GuiText.Yes.getLocal() : GuiText.No.getLocal();
|
||||||
|
|
||||||
lines.add(substitutionLabel + canSubstitute);
|
lines.add(substitutionLabel + canSubstitute);
|
||||||
|
} else {
|
||||||
|
final String packageLabel = GuiText.Package.getLocal() + " ";
|
||||||
|
final String canPackage = isPackage ? GuiText.Yes.getLocal() : GuiText.No.getLocal();
|
||||||
|
|
||||||
|
lines.add(packageLabel + canPackage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -546,6 +546,10 @@ public final class CraftingCPUCluster implements IAECluster, ICraftingCPU {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.finalOutput.getStackSize() == 0) {
|
||||||
|
this.completeJob();
|
||||||
|
}
|
||||||
|
|
||||||
this.waiting = false;
|
this.waiting = false;
|
||||||
if (this.waiting || this.tasks.isEmpty()) // nothing to do here...
|
if (this.waiting || this.tasks.isEmpty()) // nothing to do here...
|
||||||
{
|
{
|
||||||
@@ -701,7 +705,11 @@ public final class CraftingCPUCluster implements IAECluster, ICraftingCPU {
|
|||||||
|
|
||||||
for (final IAEItemStack out : details.getCondensedOutputs()) {
|
for (final IAEItemStack out : details.getCondensedOutputs()) {
|
||||||
this.postChange(out, this.machineSrc);
|
this.postChange(out, this.machineSrc);
|
||||||
this.waitingFor.add(out.copy());
|
if (!details.isPackage()) {
|
||||||
|
this.waitingFor.add(out.copy());
|
||||||
|
} else {
|
||||||
|
this.finalOutput.setStackSize(finalOutput.getStackSize() - out.getStackSize());
|
||||||
|
}
|
||||||
this.postCraftingStatusChange(out.copy());
|
this.postCraftingStatusChange(out.copy());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ public abstract class AbstractPartEncoder extends AbstractPartTerminal {
|
|||||||
|
|
||||||
protected boolean craftingMode = true;
|
protected boolean craftingMode = true;
|
||||||
protected boolean substitute = false;
|
protected boolean substitute = false;
|
||||||
|
protected boolean packaging = false;
|
||||||
|
|
||||||
public AbstractPartEncoder(ItemStack is) {
|
public AbstractPartEncoder(ItemStack is) {
|
||||||
super(is);
|
super(is);
|
||||||
@@ -106,6 +107,14 @@ public abstract class AbstractPartEncoder extends AbstractPartTerminal {
|
|||||||
return this.substitute;
|
return this.substitute;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setPackaging(boolean packaging) {
|
||||||
|
this.packaging = packaging;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isPackaging() {
|
||||||
|
return this.packaging;
|
||||||
|
}
|
||||||
|
|
||||||
public void setSubstitution(final boolean canSubstitute) {
|
public void setSubstitution(final boolean canSubstitute) {
|
||||||
this.substitute = canSubstitute;
|
this.substitute = canSubstitute;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ import net.minecraft.util.ResourceLocation;
|
|||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import static appeng.helpers.PatternHelper.CRAFTING_GRID_DIMENSION;
|
import static appeng.helpers.PatternHelper.CRAFTING_GRID_DIMENSION;
|
||||||
import static appeng.helpers.PatternHelper.CRAFTING_OUTPUT_LIMIT;
|
|
||||||
|
|
||||||
|
|
||||||
public class PartPatternTerminal extends AbstractPartEncoder {
|
public class PartPatternTerminal extends AbstractPartEncoder {
|
||||||
@@ -60,6 +59,7 @@ public class PartPatternTerminal extends AbstractPartEncoder {
|
|||||||
super.readFromNBT(data);
|
super.readFromNBT(data);
|
||||||
this.setCraftingRecipe(data.getBoolean("craftingMode"));
|
this.setCraftingRecipe(data.getBoolean("craftingMode"));
|
||||||
this.setSubstitution(data.getBoolean("substitute"));
|
this.setSubstitution(data.getBoolean("substitute"));
|
||||||
|
this.setPackaging(data.getBoolean("packaging"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -67,6 +67,7 @@ public class PartPatternTerminal extends AbstractPartEncoder {
|
|||||||
super.writeToNBT(data);
|
super.writeToNBT(data);
|
||||||
data.setBoolean("craftingMode", this.craftingMode);
|
data.setBoolean("craftingMode", this.craftingMode);
|
||||||
data.setBoolean("substitute", this.substitute);
|
data.setBoolean("substitute", this.substitute);
|
||||||
|
data.setBoolean("packaging", this.packaging);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -196,6 +196,7 @@ gui.appliedenergistics2.And=and
|
|||||||
gui.appliedenergistics2.Creates=Creates
|
gui.appliedenergistics2.Creates=Creates
|
||||||
gui.appliedenergistics2.With=with
|
gui.appliedenergistics2.With=with
|
||||||
gui.appliedenergistics2.Substitute=Using Substitutions:
|
gui.appliedenergistics2.Substitute=Using Substitutions:
|
||||||
|
gui.appliedenergistics2.Package=Treating inputs as package:
|
||||||
gui.appliedenergistics2.Yes=Yes
|
gui.appliedenergistics2.Yes=Yes
|
||||||
gui.appliedenergistics2.No=No
|
gui.appliedenergistics2.No=No
|
||||||
gui.appliedenergistics2.InWorldCrafting=AE2 In World Crafting
|
gui.appliedenergistics2.InWorldCrafting=AE2 In World Crafting
|
||||||
@@ -260,6 +261,9 @@ gui.tooltips.appliedenergistics2.SubstitutionsDescEnabled=Allow substitutions of
|
|||||||
gui.tooltips.appliedenergistics2.SubstitutionsDescDisabled=Prevent substitutions of input components.
|
gui.tooltips.appliedenergistics2.SubstitutionsDescDisabled=Prevent substitutions of input components.
|
||||||
gui.tooltips.appliedenergistics2.SubstitutionsOn=Substitutions Enabled
|
gui.tooltips.appliedenergistics2.SubstitutionsOn=Substitutions Enabled
|
||||||
gui.tooltips.appliedenergistics2.SubstitutionsOff=Substitutions Disabled
|
gui.tooltips.appliedenergistics2.SubstitutionsOff=Substitutions Disabled
|
||||||
|
gui.tooltips.appliedenergistics2.Packaging=Packaging Pattern
|
||||||
|
gui.tooltips.appliedenergistics2.PackagingDescEnabled=Treat the inputs as a package. Do not wait for the result of this pattern when crafting.
|
||||||
|
gui.tooltips.appliedenergistics2.PackagingDescDisabled=Wait for the result of this pattern. This is the DEFAULT behavior.
|
||||||
gui.tooltips.appliedenergistics2.Encode=Encode Pattern
|
gui.tooltips.appliedenergistics2.Encode=Encode Pattern
|
||||||
gui.tooltips.appliedenergistics2.EncodeDescription=Write the entered pattern to the current encoded pattern, or to available blank pattern. Hold Shift to transfer directly to your inventory
|
gui.tooltips.appliedenergistics2.EncodeDescription=Write the entered pattern to the current encoded pattern, or to available blank pattern. Hold Shift to transfer directly to your inventory
|
||||||
gui.tooltips.appliedenergistics2.FuzzyMode=Fuzzy Comparison
|
gui.tooltips.appliedenergistics2.FuzzyMode=Fuzzy Comparison
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 34 KiB |
Reference in New Issue
Block a user