From 41c3a1efb8655c036fcb89bab91121bdf677d7e8 Mon Sep 17 00:00:00 2001 From: MCTBL Date: Tue, 12 Nov 2024 23:17:12 +0800 Subject: [PATCH 1/8] add card texture and button --- .../appeng/api/config/FakeCraftingMode.java | 13 ++++++++++ src/main/java/appeng/api/config/Settings.java | 4 ++- src/main/java/appeng/api/config/Upgrades.java | 3 ++- .../appeng/api/definitions/IMaterials.java | 2 ++ .../gui/implementations/GuiInterface.java | 24 ++++++++++++++++++ .../client/gui/widgets/GuiImgButton.java | 3 +++ .../implementations/ContainerInterface.java | 13 ++++++++++ src/main/java/appeng/core/Registration.java | 2 ++ .../core/api/definitions/ApiMaterials.java | 8 ++++++ .../java/appeng/helpers/DualityInterface.java | 4 +++ .../items/materials/ItemMultiMaterial.java | 1 + .../appeng/items/materials/MaterialType.java | 3 ++- .../parts/automation/UpgradeInventory.java | 6 ++++- .../textures/guis/states.png | Bin 16687 -> 19073 bytes .../items/ItemMaterial.CardFakeCrafting.png | Bin 0 -> 1975 bytes 15 files changed, 82 insertions(+), 4 deletions(-) create mode 100644 src/main/java/appeng/api/config/FakeCraftingMode.java create mode 100644 src/main/resources/assets/appliedenergistics2/textures/items/ItemMaterial.CardFakeCrafting.png diff --git a/src/main/java/appeng/api/config/FakeCraftingMode.java b/src/main/java/appeng/api/config/FakeCraftingMode.java new file mode 100644 index 00000000000..225da5d0e9e --- /dev/null +++ b/src/main/java/appeng/api/config/FakeCraftingMode.java @@ -0,0 +1,13 @@ +package appeng.api.config; + +/* + * Author : MCTBL Time : 2024-11-07 20:41:21 + */ + +public enum FakeCraftingMode { + + NONE, + + FAKE; + +} diff --git a/src/main/java/appeng/api/config/Settings.java b/src/main/java/appeng/api/config/Settings.java index 58cf715d66a..d1187e0f632 100644 --- a/src/main/java/appeng/api/config/Settings.java +++ b/src/main/java/appeng/api/config/Settings.java @@ -83,7 +83,9 @@ public enum Settings { TERMINAL_FONT_SIZE(EnumSet.allOf(TerminalFontSize.class)), - INTERFACE_TERMINAL_SECTION_ORDER(EnumSet.allOf(StringOrder.class)); + INTERFACE_TERMINAL_SECTION_ORDER(EnumSet.allOf(StringOrder.class)), + + FAKE_CRAFTING_MOED(EnumSet.allOf(FakeCraftingMode.class)); private final EnumSet> values; diff --git a/src/main/java/appeng/api/config/Upgrades.java b/src/main/java/appeng/api/config/Upgrades.java index dd7827eb735..51114ad61cc 100644 --- a/src/main/java/appeng/api/config/Upgrades.java +++ b/src/main/java/appeng/api/config/Upgrades.java @@ -43,7 +43,8 @@ public enum Upgrades { PATTERN_CAPACITY(1), ORE_FILTER(1), ADVANCED_BLOCKING(1), - LOCK_CRAFTING(1); + LOCK_CRAFTING(1), + FAKE_FRAFTING(1); /** * @deprecated use {@link Upgrades#getTier()} diff --git a/src/main/java/appeng/api/definitions/IMaterials.java b/src/main/java/appeng/api/definitions/IMaterials.java index f17fc6012dd..d2cc7dfa14b 100644 --- a/src/main/java/appeng/api/definitions/IMaterials.java +++ b/src/main/java/appeng/api/definitions/IMaterials.java @@ -149,4 +149,6 @@ public interface IMaterials { IItemDefinition cardAdvancedBlocking(); IItemDefinition cardLockCrafting(); + + IItemDefinition cardFakeCrafting(); } diff --git a/src/main/java/appeng/client/gui/implementations/GuiInterface.java b/src/main/java/appeng/client/gui/implementations/GuiInterface.java index cdfe7d66838..cf4d4ad2210 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiInterface.java +++ b/src/main/java/appeng/client/gui/implementations/GuiInterface.java @@ -17,6 +17,7 @@ import org.lwjgl.input.Mouse; import appeng.api.config.AdvancedBlockingMode; +import appeng.api.config.FakeCraftingMode; import appeng.api.config.InsertionMode; import appeng.api.config.LockCraftingMode; import appeng.api.config.Settings; @@ -50,6 +51,7 @@ public class GuiInterface extends GuiUpgradeable { private GuiImgButton advancedBlockingMode; private GuiImgButton lockCraftingMode; + private GuiImgButton fakeCraftingMode; public GuiInterface(final InventoryPlayer inventoryPlayer, final IInterfaceHost te) { super(new ContainerInterface(inventoryPlayer, te)); @@ -129,6 +131,16 @@ protected void addButtons() { LockCraftingMode.NONE); this.lockCraftingMode.visible = this.bc.getInstalledUpgrades(Upgrades.LOCK_CRAFTING) > 0; this.buttonList.add(lockCraftingMode); + + offset += 18; + + this.fakeCraftingMode = new GuiImgButton( + this.guiLeft - 18, + this.guiTop + offset, + Settings.FAKE_CRAFTING_MOED, + FakeCraftingMode.FAKE); + this.fakeCraftingMode.visible = this.bc.getInstalledUpgrades(Upgrades.FAKE_FRAFTING) > 0; + this.buttonList.add(fakeCraftingMode); } @Override @@ -168,6 +180,11 @@ public void drawFG(final int offsetX, final int offsetY, final int mouseX, final this.lockCraftingMode.set(((ContainerInterface) this.cvb).getLockCraftingMode()); } + if (this.fakeCraftingMode != null) { + // TODO 1 + // this.fakeCraftingMode.set(((ContainerInterface) this.cvb) + } + this.fontRendererObj.drawString( this.getGuiDisplayName(GuiText.Interface.getLocal()), 8, @@ -234,6 +251,10 @@ protected void actionPerformed(final GuiButton btn) { if (btn == this.lockCraftingMode) { NetworkHandler.instance.sendToServer(new PacketConfigButton(this.lockCraftingMode.getSetting(), backwards)); } + + if (btn == this.fakeCraftingMode) { + // TODO 2 + } } @Override @@ -245,5 +266,8 @@ protected void handleButtonVisibility() { if (this.lockCraftingMode != null) { this.lockCraftingMode.setVisibility(this.bc.getInstalledUpgrades(Upgrades.LOCK_CRAFTING) > 0); } + if (this.fakeCraftingMode != null) { + this.fakeCraftingMode.setVisibility(this.bc.getInstalledUpgrades(Upgrades.FAKE_FRAFTING) > 0); + } } } diff --git a/src/main/java/appeng/client/gui/widgets/GuiImgButton.java b/src/main/java/appeng/client/gui/widgets/GuiImgButton.java index 729b12b4e43..a377e88edad 100644 --- a/src/main/java/appeng/client/gui/widgets/GuiImgButton.java +++ b/src/main/java/appeng/client/gui/widgets/GuiImgButton.java @@ -29,6 +29,7 @@ import appeng.api.config.CraftingMode; import appeng.api.config.CraftingSortOrder; import appeng.api.config.CraftingStatus; +import appeng.api.config.FakeCraftingMode; import appeng.api.config.FullnessMode; import appeng.api.config.FuzzyMode; import appeng.api.config.InsertionMode; @@ -718,6 +719,8 @@ public GuiImgButton(final int x, final int y, final Enum idx, final Enum val) { LockCraftingMode.LOCK_UNTIL_RESULT, ButtonToolTips.LockCraftingMode, ButtonToolTips.LockCraftingUntilResultReturned); + this.registerApp(16 * 13 + 4, Settings.FAKE_CRAFTING_MOED, FakeCraftingMode.FAKE, null, "test1"); + this.registerApp(16 * 13 + 5, Settings.FAKE_CRAFTING_MOED, FakeCraftingMode.NONE, null, "test2"); this.registerApp( 16 + 2, Settings.CRAFTING_MODE, diff --git a/src/main/java/appeng/container/implementations/ContainerInterface.java b/src/main/java/appeng/container/implementations/ContainerInterface.java index 7584714aace..747b6516834 100644 --- a/src/main/java/appeng/container/implementations/ContainerInterface.java +++ b/src/main/java/appeng/container/implementations/ContainerInterface.java @@ -18,6 +18,7 @@ import net.minecraft.tileentity.TileEntity; import appeng.api.config.AdvancedBlockingMode; +import appeng.api.config.FakeCraftingMode; import appeng.api.config.InsertionMode; import appeng.api.config.LockCraftingMode; import appeng.api.config.SecurityPermissions; @@ -64,6 +65,9 @@ public class ContainerInterface extends ContainerUpgradeable implements IOptiona @GuiSync(12) public LockCraftingMode lockCraftingMode = LockCraftingMode.NONE; + @GuiSync(16) + public FakeCraftingMode fakeCraftingMode = FakeCraftingMode.NONE; + @GuiSync(8) public InsertionMode insertionMode = InsertionMode.DEFAULT; @@ -167,6 +171,7 @@ protected void loadSettingsFromHost(final IConfigManager cm) { this.setPatternOptimization((YesNo) cm.getSetting(Settings.PATTERN_OPTIMIZATION)); this.setAdvancedBlockingMode((AdvancedBlockingMode) cm.getSetting(Settings.ADVANCED_BLOCKING_MODE)); this.setLockCraftingMode((LockCraftingMode) cm.getSetting(Settings.LOCK_CRAFTING_MODE)); + this.setFakeCraftingMode((FakeCraftingMode) cm.getSetting(Settings.FAKE_CRAFTING_MOED)); } public void doublePatterns(int val) { @@ -254,6 +259,14 @@ private void setLockCraftingMode(LockCraftingMode mode) { this.lockCraftingMode = mode; } + public FakeCraftingMode getFakeCraftingMode() { + return this.fakeCraftingMode; + } + + public void setFakeCraftingMode(FakeCraftingMode mode) { + this.fakeCraftingMode = mode; + } + public int getPatternCapacityCardsInstalled() { if (Platform.isClient() && isEmpty) return -1; if (myDuality == null) return 0; diff --git a/src/main/java/appeng/core/Registration.java b/src/main/java/appeng/core/Registration.java index f757623ac54..8eae84d962d 100644 --- a/src/main/java/appeng/core/Registration.java +++ b/src/main/java/appeng/core/Registration.java @@ -610,6 +610,8 @@ void postInit(final FMLPostInitializationEvent event) { Upgrades.PATTERN_CAPACITY.registerItem(parts.p2PTunnelMEInterface(), 3); Upgrades.ADVANCED_BLOCKING.registerItem(parts.iface(), 1); Upgrades.ADVANCED_BLOCKING.registerItem(blocks.iface(), 1); + Upgrades.FAKE_FRAFTING.registerItem(parts.iface(), 1); + Upgrades.FAKE_FRAFTING.registerItem(blocks.iface(), 1); Upgrades.LOCK_CRAFTING.registerItem(parts.iface(), 1); Upgrades.LOCK_CRAFTING.registerItem(blocks.iface(), 1); Upgrades.LOCK_CRAFTING.registerItem(parts.p2PTunnelMEInterface(), 1); diff --git a/src/main/java/appeng/core/api/definitions/ApiMaterials.java b/src/main/java/appeng/core/api/definitions/ApiMaterials.java index f707621f96d..8e629c3a134 100644 --- a/src/main/java/appeng/core/api/definitions/ApiMaterials.java +++ b/src/main/java/appeng/core/api/definitions/ApiMaterials.java @@ -76,6 +76,7 @@ public final class ApiMaterials implements IMaterials { private final IItemDefinition cardPatternRefiller; private final IItemDefinition cardAdvancedBlocking; private final IItemDefinition cardLockCrafting; + private final IItemDefinition cardFakeCrafting; private final IItemDefinition enderDust; private final IItemDefinition flour; private final IItemDefinition goldDust; @@ -181,6 +182,8 @@ public ApiMaterials(final DefinitionConstructor constructor) { itemMultiMaterial.createMaterial(MaterialType.CardAdvancedBlocking)); this.cardLockCrafting = new DamagedItemDefinition( itemMultiMaterial.createMaterial(MaterialType.CardLockCrafting)); + this.cardFakeCrafting = new DamagedItemDefinition( + itemMultiMaterial.createMaterial(MaterialType.CardFakeCrafting)); this.enderDust = new DamagedItemDefinition(itemMultiMaterial.createMaterial(MaterialType.EnderDust)); this.flour = new DamagedItemDefinition(itemMultiMaterial.createMaterial(MaterialType.Flour)); @@ -546,4 +549,9 @@ public IItemDefinition cardAdvancedBlocking() { public IItemDefinition cardLockCrafting() { return this.cardLockCrafting; } + + @Override + public IItemDefinition cardFakeCrafting() { + return this.cardFakeCrafting; + } } diff --git a/src/main/java/appeng/helpers/DualityInterface.java b/src/main/java/appeng/helpers/DualityInterface.java index cbc6679890b..e8e13c76c58 100644 --- a/src/main/java/appeng/helpers/DualityInterface.java +++ b/src/main/java/appeng/helpers/DualityInterface.java @@ -38,6 +38,7 @@ import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.config.AdvancedBlockingMode; +import appeng.api.config.FakeCraftingMode; import appeng.api.config.InsertionMode; import appeng.api.config.LockCraftingMode; import appeng.api.config.Settings; @@ -150,6 +151,7 @@ public DualityInterface(final AENetworkProxy networkProxy, final IInterfaceHost this.cm.registerSetting(Settings.ADVANCED_BLOCKING_MODE, AdvancedBlockingMode.DEFAULT); this.cm.registerSetting(Settings.LOCK_CRAFTING_MODE, LockCraftingMode.NONE); this.cm.registerSetting(Settings.PATTERN_OPTIMIZATION, YesNo.YES); + this.cm.registerSetting(Settings.FAKE_CRAFTING_MOED, FakeCraftingMode.NONE); this.iHost = ih; this.craftingTracker = new MultiCraftingTracker(this.iHost, 9); @@ -205,6 +207,8 @@ public void onChangeInventory(final IInventory inv, final int slot, final InvOpe if (this.getInstalledUpgrades(Upgrades.LOCK_CRAFTING) == 0) { cm.putSetting(Settings.LOCK_CRAFTING_MODE, LockCraftingMode.NONE); resetCraftingLock(); + } else if (this.getInstalledUpgrades(Upgrades.FAKE_FRAFTING) == 0) { + cm.putSetting(Settings.FAKE_CRAFTING_MOED, FakeCraftingMode.NONE); } } } diff --git a/src/main/java/appeng/items/materials/ItemMultiMaterial.java b/src/main/java/appeng/items/materials/ItemMultiMaterial.java index 5c2d6ff2381..8de86798d6d 100644 --- a/src/main/java/appeng/items/materials/ItemMultiMaterial.java +++ b/src/main/java/appeng/items/materials/ItemMultiMaterial.java @@ -145,6 +145,7 @@ public Upgrades getType(final ItemStack itemstack) { case CardAdvancedBlocking -> Upgrades.ADVANCED_BLOCKING; case CardLockCrafting -> Upgrades.LOCK_CRAFTING; case CardSticky -> Upgrades.STICKY; + case CardFakeCrafting -> Upgrades.FAKE_FRAFTING; default -> null; }; } diff --git a/src/main/java/appeng/items/materials/MaterialType.java b/src/main/java/appeng/items/materials/MaterialType.java index 7bfb1cb0c66..2097b10a64c 100644 --- a/src/main/java/appeng/items/materials/MaterialType.java +++ b/src/main/java/appeng/items/materials/MaterialType.java @@ -117,7 +117,8 @@ public enum MaterialType { CardPatternRefiller(62), CardAdvancedBlocking(63), CardSticky(64), - CardLockCrafting(65); + CardLockCrafting(65), + CardFakeCrafting(66); private final EnumSet features; // IIcon for the material. diff --git a/src/main/java/appeng/parts/automation/UpgradeInventory.java b/src/main/java/appeng/parts/automation/UpgradeInventory.java index 65fef7aee16..ef9c427fd61 100644 --- a/src/main/java/appeng/parts/automation/UpgradeInventory.java +++ b/src/main/java/appeng/parts/automation/UpgradeInventory.java @@ -38,6 +38,7 @@ public abstract class UpgradeInventory extends AppEngInternalInventory implement private int patternCapacityUpgrades = 0; private int advancedBlockingUpgrades = 0; private int lockCraftingUpgrades = 0; + private int fakeCraftingUpgrades = 0; private int stickyUpgrades = 0; public UpgradeInventory(final IAEAppEngInventory parent, final int s) { @@ -89,6 +90,7 @@ public int getInstalledUpgrades(final Upgrades u) { case ADVANCED_BLOCKING -> this.advancedBlockingUpgrades; case LOCK_CRAFTING -> this.lockCraftingUpgrades; case STICKY -> this.stickyUpgrades; + case FAKE_FRAFTING -> this.fakeCraftingUpgrades; default -> 0; }; } @@ -97,7 +99,7 @@ public int getInstalledUpgrades(final Upgrades u) { private void updateUpgradeInfo() { this.cached = true; - this.patternCapacityUpgrades = this.stickyUpgrades = this.inverterUpgrades = this.capacityUpgrades = this.redstoneUpgrades = this.speedUpgrades = this.superSpeedUpgrades = this.fuzzyUpgrades = this.craftingUpgrades = this.oreFilterUpgrades = this.advancedBlockingUpgrades = this.lockCraftingUpgrades = 0; + this.patternCapacityUpgrades = this.stickyUpgrades = this.inverterUpgrades = this.capacityUpgrades = this.redstoneUpgrades = this.speedUpgrades = this.superSpeedUpgrades = this.fuzzyUpgrades = this.craftingUpgrades = this.oreFilterUpgrades = this.advancedBlockingUpgrades = this.lockCraftingUpgrades = this.fakeCraftingUpgrades = 0; for (final ItemStack is : this) { if (is == null || is.getItem() == null || !(is.getItem() instanceof IUpgradeModule)) { @@ -118,6 +120,7 @@ private void updateUpgradeInfo() { case ADVANCED_BLOCKING -> this.advancedBlockingUpgrades++; case LOCK_CRAFTING -> this.lockCraftingUpgrades++; case STICKY -> this.stickyUpgrades++; + case FAKE_FRAFTING -> this.fakeCraftingUpgrades++; default -> {} } } @@ -135,6 +138,7 @@ private void updateUpgradeInfo() { this.advancedBlockingUpgrades = Math .min(this.advancedBlockingUpgrades, this.getMaxInstalled(Upgrades.ADVANCED_BLOCKING)); this.lockCraftingUpgrades = Math.min(this.lockCraftingUpgrades, this.getMaxInstalled(Upgrades.LOCK_CRAFTING)); + this.fakeCraftingUpgrades = Math.min(this.fakeCraftingUpgrades, this.getMaxInstalled(Upgrades.FAKE_FRAFTING)); this.stickyUpgrades = Math.min(this.stickyUpgrades, this.getMaxInstalled(Upgrades.STICKY)); } diff --git a/src/main/resources/assets/appliedenergistics2/textures/guis/states.png b/src/main/resources/assets/appliedenergistics2/textures/guis/states.png index 3a77867e6d079e76fa681ef2d3244ec160e9ff9b..4f766feb44febbaec01d25ae646b02231116966b 100644 GIT binary patch literal 19073 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 XgL~Hw3@FUOodQ~Fx~e70mSO)Na&bih diff --git a/src/main/resources/assets/appliedenergistics2/textures/items/ItemMaterial.CardFakeCrafting.png b/src/main/resources/assets/appliedenergistics2/textures/items/ItemMaterial.CardFakeCrafting.png new file mode 100644 index 0000000000000000000000000000000000000000..4e0c11553e4c757c96b0d2240a4ca90824d884c8 GIT binary patch literal 1975 zcmbVNeQeZZ7%xj0urV0lA7Ut7kb(62ai6Wbjj@|-z>P6Z7!!f+?b}_mey#0xw;2Iv zP>HBPC1D#TNDwq6gJqx+2rx|;2nrH05|t3(AA|%WVQ7NGx3{|sn1O^QZQr)P=lA@c zkN4@O%8CU!SyQtx49h7m3ss?eu5%90MAzxJ?+fTQ!YEs5VOaJ!=Ny8yZ=Z}|L%)$D z)pm7wF%NXrC5U=0bj4Kzp)stWC~gR#9@=;?1jMcn62*=~ygFQom*^(M zy)GXK7>^hCb1uf`_Hf)>oTZrnMF%LxO)@^-L-Q<)Cl3O7GewE73cZ;0g`R>$)V2+t zqGGX_E9Q3TW*xTXaQ3;Y+2WEhf%228|@&0ln#WT z8fjY1N~Q@VjEV~e#kgoEqy$g|X`In$DhcNzpr8U(sM!|6GHI+4)otC1>W`pKe}2dT zN^Llt_A#gyRZY9F?9wI_MlvCTqOC}?0jVlz>5V3UrA6KP05q(NveY~n z)Xnm4?jb1Z8d0!?{{@SHmvmDVP|UI_)IrM7>IgiYNxno^bQ3v7>f8wx;V@sWS+<}7 zSRM)zC~TK3i@aa-0zbn_B;+JWa&8YGIVedaD|jW&?_>NP4@lXEbkOJ&H)Ss(dj?3X zMEfODfIdG7e4YSV>!u|V8P?LQ*W>m1gp~afQ%0LhP@bB{*>X--@MW@v>eZaw6w6>k za;3<4q7irjI1L^ofKyp063N%{AQ^bF2nJ|lQHV$%Q|B$T=L~S~AcS(@Lup#Z`q2fs3-A_O4T9mgm_r!W?7juZ%_+5APIoE{==K2i_=N;&J zdq>aOt7E=j-g$d?arVKk{Vyv@L4XXEfqBa^CuVbV%~caee!V)k;hpT(o@YC5YGd`$ zJ+JqIqj!(C>2FS%NgU~o>;vt)Z{AXe_A5<)AG=oD_1TrB?{{B>2Y%Wj_BP~iT{zYs zzWq{8A=kDzW9`a`oi{!>CAJpT)KBZ3;hTJ6)~vB33dYPmJ-$x*=0q4}<#cZq@m Date: Sat, 23 Nov 2024 11:20:51 +0800 Subject: [PATCH 2/8] add lang file --- settings.gradle | 2 +- .../appeng/client/gui/widgets/GuiImgButton.java | 14 ++++++++++++-- .../appeng/core/localization/ButtonToolTips.java | 3 +++ .../assets/appliedenergistics2/lang/en_US.lang | 5 +++++ .../assets/appliedenergistics2/lang/zh_CN.lang | 5 +++++ 5 files changed, 26 insertions(+), 3 deletions(-) diff --git a/settings.gradle b/settings.gradle index efba9fd4c48..06204f7d6d8 100644 --- a/settings.gradle +++ b/settings.gradle @@ -17,7 +17,7 @@ pluginManagement { } plugins { - id 'com.gtnewhorizons.gtnhsettingsconvention' version '1.0.28' + id 'com.gtnewhorizons.gtnhsettingsconvention' version '1.0.29' } diff --git a/src/main/java/appeng/client/gui/widgets/GuiImgButton.java b/src/main/java/appeng/client/gui/widgets/GuiImgButton.java index a377e88edad..125aa796157 100644 --- a/src/main/java/appeng/client/gui/widgets/GuiImgButton.java +++ b/src/main/java/appeng/client/gui/widgets/GuiImgButton.java @@ -719,8 +719,18 @@ public GuiImgButton(final int x, final int y, final Enum idx, final Enum val) { LockCraftingMode.LOCK_UNTIL_RESULT, ButtonToolTips.LockCraftingMode, ButtonToolTips.LockCraftingUntilResultReturned); - this.registerApp(16 * 13 + 4, Settings.FAKE_CRAFTING_MOED, FakeCraftingMode.FAKE, null, "test1"); - this.registerApp(16 * 13 + 5, Settings.FAKE_CRAFTING_MOED, FakeCraftingMode.NONE, null, "test2"); + this.registerApp( + 16 * 13 + 4, + Settings.FAKE_CRAFTING_MOED, + FakeCraftingMode.FAKE, + ButtonToolTips.FakeCraftingMode, + ButtonToolTips.FakeCraftingOn); + this.registerApp( + 16 * 13 + 5, + Settings.FAKE_CRAFTING_MOED, + FakeCraftingMode.NONE, + ButtonToolTips.FakeCraftingMode, + ButtonToolTips.FakeCraftingOff); this.registerApp( 16 + 2, Settings.CRAFTING_MODE, diff --git a/src/main/java/appeng/core/localization/ButtonToolTips.java b/src/main/java/appeng/core/localization/ButtonToolTips.java index 9da2963e6a8..55971e29f18 100644 --- a/src/main/java/appeng/core/localization/ButtonToolTips.java +++ b/src/main/java/appeng/core/localization/ButtonToolTips.java @@ -204,6 +204,9 @@ public enum ButtonToolTips { CraftingModeIgnoreMissing, CraftingModeIgnoreMissingDesc, ExtraOptions, + FakeCraftingMode, + FakeCraftingOn, + FakeCraftingOff, SwitchBytesInfo, SwitchBytesInfo_Item, diff --git a/src/main/resources/assets/appliedenergistics2/lang/en_US.lang b/src/main/resources/assets/appliedenergistics2/lang/en_US.lang index 28e92e8897c..63ed966b80d 100644 --- a/src/main/resources/assets/appliedenergistics2/lang/en_US.lang +++ b/src/main/resources/assets/appliedenergistics2/lang/en_US.lang @@ -506,6 +506,10 @@ gui.tooltips.appliedenergistics2.CraftingModeStandardDesc=Only starts craft if a gui.tooltips.appliedenergistics2.CraftingModeIgnoreMissing=Ignore Missing Crafting Mode gui.tooltips.appliedenergistics2.CraftingModeIgnoreMissingDesc=Starts craft even if ingredients are missing from the ME System. +gui.tooltips.appliedenergistics2.FakeCraftingMode=Fake Crafting +gui.tooltips.appliedenergistics2.FakeCraftingOn=Fake Crafting Mode +gui.tooltips.appliedenergistics2.FakeCraftingOff=Standard Crafting Mode + gui.tooltips.appliedenergistics2.ExtraOptions=Extra Options gui.tooltips.appliedenergistics2.SwitchBytesInfo=Cell Info @@ -621,6 +625,7 @@ item.appliedenergistics2.ItemMaterial.CardPatternRefiller.name=Pattern Refiller item.appliedenergistics2.ItemMaterial.CardAdvancedBlocking.name=Advanced Blocking Card item.appliedenergistics2.ItemMaterial.CardLockCrafting.name=Locking Card item.appliedenergistics2.ItemMaterial.CardSticky.name=Sticky Card +item.appliedenergistics2.ItemMaterial.CardFakeCrafting.name=Fake Crafting Card item.appliedenergistics2.ItemMaterial.Cell2SpatialPart.name=2³ Spatial Component item.appliedenergistics2.ItemMaterial.Cell16SpatialPart.name=16³ Spatial Component diff --git a/src/main/resources/assets/appliedenergistics2/lang/zh_CN.lang b/src/main/resources/assets/appliedenergistics2/lang/zh_CN.lang index 68343ff299a..684a9a0b0ff 100644 --- a/src/main/resources/assets/appliedenergistics2/lang/zh_CN.lang +++ b/src/main/resources/assets/appliedenergistics2/lang/zh_CN.lang @@ -507,6 +507,10 @@ gui.tooltips.appliedenergistics2.CraftingModeIgnoreMissingDesc=在ME系统内原 gui.tooltips.appliedenergistics2.ExtraOptions=额外选项 +gui.tooltips.appliedenergistics2.FakeCraftingMode=伪合成 +gui.tooltips.appliedenergistics2.FakeCraftingOn=伪合成开启 +gui.tooltips.appliedenergistics2.FakeCraftingOff=伪合成关闭 + gui.tooltips.appliedenergistics2.SwitchBytesInfo=存储信息 gui.tooltips.appliedenergistics2.SwitchBytesInfo_Item=物品 gui.tooltips.appliedenergistics2.SwitchBytesInfo_Fluid=流体 @@ -620,6 +624,7 @@ item.appliedenergistics2.ItemMaterial.CardPatternRefiller.name=空白样板重 item.appliedenergistics2.ItemMaterial.CardAdvancedBlocking.name=高级阻挡卡 item.appliedenergistics2.ItemMaterial.CardLockCrafting.name=Locking Card item.appliedenergistics2.ItemMaterial.CardSticky.name=粘性卡 +item.appliedenergistics2.ItemMaterial.CardFakeCrafting.name=伪合成卡 item.appliedenergistics2.ItemMaterial.Cell2SpatialPart.name=2³-空间组件 item.appliedenergistics2.ItemMaterial.Cell16SpatialPart.name=16³-空间组件 From f4c6e7658c9785f545fbcf7717ddafbbdf38aa9e Mon Sep 17 00:00:00 2001 From: MCTBL Date: Mon, 9 Dec 2024 21:48:11 +0800 Subject: [PATCH 3/8] add network packet --- .../java/appeng/client/gui/implementations/GuiInterface.java | 5 ++--- .../appeng/container/implementations/ContainerInterface.java | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main/java/appeng/client/gui/implementations/GuiInterface.java b/src/main/java/appeng/client/gui/implementations/GuiInterface.java index cf4d4ad2210..e72f1abbb31 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiInterface.java +++ b/src/main/java/appeng/client/gui/implementations/GuiInterface.java @@ -181,8 +181,7 @@ public void drawFG(final int offsetX, final int offsetY, final int mouseX, final } if (this.fakeCraftingMode != null) { - // TODO 1 - // this.fakeCraftingMode.set(((ContainerInterface) this.cvb) + this.fakeCraftingMode.set(((ContainerInterface) this.cvb).getFakeCraftingMode()); } this.fontRendererObj.drawString( @@ -253,7 +252,7 @@ protected void actionPerformed(final GuiButton btn) { } if (btn == this.fakeCraftingMode) { - // TODO 2 + NetworkHandler.instance.sendToServer(new PacketConfigButton(this.fakeCraftingMode.getSetting(), backwards)); } } diff --git a/src/main/java/appeng/container/implementations/ContainerInterface.java b/src/main/java/appeng/container/implementations/ContainerInterface.java index 747b6516834..9be2b4949fb 100644 --- a/src/main/java/appeng/container/implementations/ContainerInterface.java +++ b/src/main/java/appeng/container/implementations/ContainerInterface.java @@ -66,7 +66,7 @@ public class ContainerInterface extends ContainerUpgradeable implements IOptiona public LockCraftingMode lockCraftingMode = LockCraftingMode.NONE; @GuiSync(16) - public FakeCraftingMode fakeCraftingMode = FakeCraftingMode.NONE; + public FakeCraftingMode fakeCraftingMode = FakeCraftingMode.FAKE; @GuiSync(8) public InsertionMode insertionMode = InsertionMode.DEFAULT; From e604176fa0ab4b419c239c8093b607d3c9c85f37 Mon Sep 17 00:00:00 2001 From: MCTBL Date: Sat, 14 Dec 2024 18:12:26 +0800 Subject: [PATCH 4/8] finish function --- .../java/appeng/helpers/DualityInterface.java | 6 +++- .../implementations/CraftingCPUCluster.java | 29 +++++++++++++++++- .../textures/guis/states.png | Bin 17184 -> 19129 bytes 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/src/main/java/appeng/helpers/DualityInterface.java b/src/main/java/appeng/helpers/DualityInterface.java index e8e13c76c58..fea4bf2a400 100644 --- a/src/main/java/appeng/helpers/DualityInterface.java +++ b/src/main/java/appeng/helpers/DualityInterface.java @@ -151,7 +151,7 @@ public DualityInterface(final AENetworkProxy networkProxy, final IInterfaceHost this.cm.registerSetting(Settings.ADVANCED_BLOCKING_MODE, AdvancedBlockingMode.DEFAULT); this.cm.registerSetting(Settings.LOCK_CRAFTING_MODE, LockCraftingMode.NONE); this.cm.registerSetting(Settings.PATTERN_OPTIMIZATION, YesNo.YES); - this.cm.registerSetting(Settings.FAKE_CRAFTING_MOED, FakeCraftingMode.NONE); + this.cm.registerSetting(Settings.FAKE_CRAFTING_MOED, FakeCraftingMode.FAKE); this.iHost = ih; this.craftingTracker = new MultiCraftingTracker(this.iHost, 9); @@ -1042,6 +1042,10 @@ private InsertionMode getInsertionMode() { return (InsertionMode) cm.getSetting(Settings.INSERTION_MODE); } + public boolean isFakeCraftingMode() { + return cm.getSetting(Settings.FAKE_CRAFTING_MOED) == FakeCraftingMode.FAKE; + } + private static boolean acceptsItems(final InventoryAdaptor ad, final InventoryCrafting table, final InsertionMode insertionMode) { for (int x = 0; x < table.getSizeInventory(); x++) { diff --git a/src/main/java/appeng/me/cluster/implementations/CraftingCPUCluster.java b/src/main/java/appeng/me/cluster/implementations/CraftingCPUCluster.java index b71e8b9184d..c8dbb0e6bd7 100644 --- a/src/main/java/appeng/me/cluster/implementations/CraftingCPUCluster.java +++ b/src/main/java/appeng/me/cluster/implementations/CraftingCPUCluster.java @@ -145,6 +145,7 @@ public final class CraftingCPUCluster implements IAECluster, ICraftingCPU { private boolean isComplete = true; private int remainingOperations; private boolean somethingChanged; + private boolean isFakeCrafting; private long lastTime; private long elapsedTime; @@ -497,6 +498,7 @@ private void completeJob() { } craftCompleteListeners.forEach(f -> f.apply(this.finalOutput.getItemStack(), this.numsOfOutput, elapsedTime)); + this.isFakeCrafting = false; this.usedStorage = 0; this.remainingItemCount = 0; this.startItemCount = 0; @@ -688,6 +690,21 @@ public void updateCraftingLogic(final IGrid grid, final IEnergyGrid eg, final Cr if (this.remainingOperations > 0 && !this.somethingChanged) { this.waiting = true; } + + if (this.isFakeCrafting) { + final IAEItemStack is = this.waitingFor.findPrecise(this.finalOutput); + if (is != null) { + long stackSize = is.getStackSize(); + is.decStackSize(stackSize); + this.markDirty(); + this.postCraftingStatusChange(is); + this.finalOutput.decStackSize(stackSize); + if (this.finalOutput.getStackSize() <= 0) { + this.completeJob(); + } + this.updateCPU(); + } + } } private void executeCrafting(final IEnergyGrid eg, final CraftingGridCache cc) { @@ -787,6 +804,7 @@ private void executeCrafting(final IEnergyGrid eg, final CraftingGridCache cc) { this.somethingChanged = true; this.remainingOperations--; pushedPattern = true; + this.isFakeCrafting = (m instanceof DualityInterface di && di.isFakeCraftingMode()); for (final IAEItemStack out : details.getCondensedOutputs()) { this.postChange(out, this.machineSrc); @@ -816,7 +834,6 @@ private void executeCrafting(final IEnergyGrid eg, final CraftingGridCache cc) { Platform.getPlayer((WorldServer) this.getWorld()), details.getOutput(ic, this.getWorld()), ic); - for (int x = 0; x < ic.getSizeInventory(); x++) { final ItemStack output = Platform.getContainerItem(ic.getStackInSlot(x)); if (output != null) { @@ -837,6 +854,15 @@ private void executeCrafting(final IEnergyGrid eg, final CraftingGridCache cc) { } if (this.remainingOperations == 0) { + // if (m instanceof DualityInterface di && di.isFakeCraftingMode()) { + // final IAEItemStack is = this.waitingFor.findPrecise(this.finalOutput); + // long stackSize = is.getStackSize(); + // is.decStackSize(stackSize); + // this.markDirty(); + // this.postCraftingStatusChange(is); + // this.finalOutput.decStackSize(stackSize); + // this.updateCPU(); + // } return; } } @@ -934,6 +960,7 @@ public ICraftingLink submitJob(final IGrid g, final ICraftingJob job, final Base // when it comes to a new craft, if (job.getOutput() != null) { this.finalOutput = job.getOutput(); + this.isFakeCrafting = false; this.waiting = false; this.isComplete = false; this.usedStorage = job.getByteTotal(); diff --git a/src/main/resources/assets/appliedenergistics2/textures/guis/states.png b/src/main/resources/assets/appliedenergistics2/textures/guis/states.png index 017596ba903d007c9474ebe5d9c98c6e0599bf8e..0d4b377ba112253c36ae0609be9ef246a4137194 100644 GIT binary patch literal 19129 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 Date: Sat, 14 Dec 2024 18:29:54 +0800 Subject: [PATCH 5/8] check is there has upgrade had installed --- src/main/java/appeng/helpers/DualityInterface.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/appeng/helpers/DualityInterface.java b/src/main/java/appeng/helpers/DualityInterface.java index fea4bf2a400..42878537fd6 100644 --- a/src/main/java/appeng/helpers/DualityInterface.java +++ b/src/main/java/appeng/helpers/DualityInterface.java @@ -1043,7 +1043,8 @@ private InsertionMode getInsertionMode() { } public boolean isFakeCraftingMode() { - return cm.getSetting(Settings.FAKE_CRAFTING_MOED) == FakeCraftingMode.FAKE; + return this.getInstalledUpgrades(Upgrades.FAKE_FRAFTING) != 0 + && cm.getSetting(Settings.FAKE_CRAFTING_MOED) == FakeCraftingMode.FAKE; } private static boolean acceptsItems(final InventoryAdaptor ad, final InventoryCrafting table, From 21a21932d51e698456826fa575cdb9bebe1874c7 Mon Sep 17 00:00:00 2001 From: MCTBL Date: Sun, 22 Dec 2024 11:22:11 +0800 Subject: [PATCH 6/8] Fix spelling error --- src/main/java/appeng/api/config/Settings.java | 2 +- src/main/java/appeng/api/config/Upgrades.java | 2 +- .../client/gui/implementations/GuiInterface.java | 6 +++--- .../java/appeng/client/gui/widgets/GuiImgButton.java | 4 ++-- .../container/implementations/ContainerInterface.java | 2 +- src/main/java/appeng/core/Registration.java | 4 ++-- src/main/java/appeng/helpers/DualityInterface.java | 10 +++++----- .../java/appeng/items/materials/ItemMultiMaterial.java | 2 +- .../me/cluster/implementations/CraftingCPUCluster.java | 9 --------- .../java/appeng/parts/automation/UpgradeInventory.java | 6 +++--- 10 files changed, 19 insertions(+), 28 deletions(-) diff --git a/src/main/java/appeng/api/config/Settings.java b/src/main/java/appeng/api/config/Settings.java index d1187e0f632..3409e6fbe04 100644 --- a/src/main/java/appeng/api/config/Settings.java +++ b/src/main/java/appeng/api/config/Settings.java @@ -85,7 +85,7 @@ public enum Settings { INTERFACE_TERMINAL_SECTION_ORDER(EnumSet.allOf(StringOrder.class)), - FAKE_CRAFTING_MOED(EnumSet.allOf(FakeCraftingMode.class)); + FAKE_CRAFTING_MODE(EnumSet.allOf(FakeCraftingMode.class)); private final EnumSet> values; diff --git a/src/main/java/appeng/api/config/Upgrades.java b/src/main/java/appeng/api/config/Upgrades.java index 51114ad61cc..da995a2d4a0 100644 --- a/src/main/java/appeng/api/config/Upgrades.java +++ b/src/main/java/appeng/api/config/Upgrades.java @@ -44,7 +44,7 @@ public enum Upgrades { ORE_FILTER(1), ADVANCED_BLOCKING(1), LOCK_CRAFTING(1), - FAKE_FRAFTING(1); + FAKE_CRAFTING(1); /** * @deprecated use {@link Upgrades#getTier()} diff --git a/src/main/java/appeng/client/gui/implementations/GuiInterface.java b/src/main/java/appeng/client/gui/implementations/GuiInterface.java index e72f1abbb31..353e680bd66 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiInterface.java +++ b/src/main/java/appeng/client/gui/implementations/GuiInterface.java @@ -137,9 +137,9 @@ protected void addButtons() { this.fakeCraftingMode = new GuiImgButton( this.guiLeft - 18, this.guiTop + offset, - Settings.FAKE_CRAFTING_MOED, + Settings.FAKE_CRAFTING_MODE, FakeCraftingMode.FAKE); - this.fakeCraftingMode.visible = this.bc.getInstalledUpgrades(Upgrades.FAKE_FRAFTING) > 0; + this.fakeCraftingMode.visible = this.bc.getInstalledUpgrades(Upgrades.FAKE_CRAFTING) > 0; this.buttonList.add(fakeCraftingMode); } @@ -266,7 +266,7 @@ protected void handleButtonVisibility() { this.lockCraftingMode.setVisibility(this.bc.getInstalledUpgrades(Upgrades.LOCK_CRAFTING) > 0); } if (this.fakeCraftingMode != null) { - this.fakeCraftingMode.setVisibility(this.bc.getInstalledUpgrades(Upgrades.FAKE_FRAFTING) > 0); + this.fakeCraftingMode.setVisibility(this.bc.getInstalledUpgrades(Upgrades.FAKE_CRAFTING) > 0); } } } diff --git a/src/main/java/appeng/client/gui/widgets/GuiImgButton.java b/src/main/java/appeng/client/gui/widgets/GuiImgButton.java index 125aa796157..456f2c14fe7 100644 --- a/src/main/java/appeng/client/gui/widgets/GuiImgButton.java +++ b/src/main/java/appeng/client/gui/widgets/GuiImgButton.java @@ -721,13 +721,13 @@ public GuiImgButton(final int x, final int y, final Enum idx, final Enum val) { ButtonToolTips.LockCraftingUntilResultReturned); this.registerApp( 16 * 13 + 4, - Settings.FAKE_CRAFTING_MOED, + Settings.FAKE_CRAFTING_MODE, FakeCraftingMode.FAKE, ButtonToolTips.FakeCraftingMode, ButtonToolTips.FakeCraftingOn); this.registerApp( 16 * 13 + 5, - Settings.FAKE_CRAFTING_MOED, + Settings.FAKE_CRAFTING_MODE, FakeCraftingMode.NONE, ButtonToolTips.FakeCraftingMode, ButtonToolTips.FakeCraftingOff); diff --git a/src/main/java/appeng/container/implementations/ContainerInterface.java b/src/main/java/appeng/container/implementations/ContainerInterface.java index 9be2b4949fb..51fbda3e1cf 100644 --- a/src/main/java/appeng/container/implementations/ContainerInterface.java +++ b/src/main/java/appeng/container/implementations/ContainerInterface.java @@ -171,7 +171,7 @@ protected void loadSettingsFromHost(final IConfigManager cm) { this.setPatternOptimization((YesNo) cm.getSetting(Settings.PATTERN_OPTIMIZATION)); this.setAdvancedBlockingMode((AdvancedBlockingMode) cm.getSetting(Settings.ADVANCED_BLOCKING_MODE)); this.setLockCraftingMode((LockCraftingMode) cm.getSetting(Settings.LOCK_CRAFTING_MODE)); - this.setFakeCraftingMode((FakeCraftingMode) cm.getSetting(Settings.FAKE_CRAFTING_MOED)); + this.setFakeCraftingMode((FakeCraftingMode) cm.getSetting(Settings.FAKE_CRAFTING_MODE)); } public void doublePatterns(int val) { diff --git a/src/main/java/appeng/core/Registration.java b/src/main/java/appeng/core/Registration.java index 8eae84d962d..b801f80d669 100644 --- a/src/main/java/appeng/core/Registration.java +++ b/src/main/java/appeng/core/Registration.java @@ -610,8 +610,8 @@ void postInit(final FMLPostInitializationEvent event) { Upgrades.PATTERN_CAPACITY.registerItem(parts.p2PTunnelMEInterface(), 3); Upgrades.ADVANCED_BLOCKING.registerItem(parts.iface(), 1); Upgrades.ADVANCED_BLOCKING.registerItem(blocks.iface(), 1); - Upgrades.FAKE_FRAFTING.registerItem(parts.iface(), 1); - Upgrades.FAKE_FRAFTING.registerItem(blocks.iface(), 1); + Upgrades.FAKE_CRAFTING.registerItem(parts.iface(), 1); + Upgrades.FAKE_CRAFTING.registerItem(blocks.iface(), 1); Upgrades.LOCK_CRAFTING.registerItem(parts.iface(), 1); Upgrades.LOCK_CRAFTING.registerItem(blocks.iface(), 1); Upgrades.LOCK_CRAFTING.registerItem(parts.p2PTunnelMEInterface(), 1); diff --git a/src/main/java/appeng/helpers/DualityInterface.java b/src/main/java/appeng/helpers/DualityInterface.java index 42878537fd6..3c13b8deb72 100644 --- a/src/main/java/appeng/helpers/DualityInterface.java +++ b/src/main/java/appeng/helpers/DualityInterface.java @@ -151,7 +151,7 @@ public DualityInterface(final AENetworkProxy networkProxy, final IInterfaceHost this.cm.registerSetting(Settings.ADVANCED_BLOCKING_MODE, AdvancedBlockingMode.DEFAULT); this.cm.registerSetting(Settings.LOCK_CRAFTING_MODE, LockCraftingMode.NONE); this.cm.registerSetting(Settings.PATTERN_OPTIMIZATION, YesNo.YES); - this.cm.registerSetting(Settings.FAKE_CRAFTING_MOED, FakeCraftingMode.FAKE); + this.cm.registerSetting(Settings.FAKE_CRAFTING_MODE, FakeCraftingMode.FAKE); this.iHost = ih; this.craftingTracker = new MultiCraftingTracker(this.iHost, 9); @@ -207,8 +207,8 @@ public void onChangeInventory(final IInventory inv, final int slot, final InvOpe if (this.getInstalledUpgrades(Upgrades.LOCK_CRAFTING) == 0) { cm.putSetting(Settings.LOCK_CRAFTING_MODE, LockCraftingMode.NONE); resetCraftingLock(); - } else if (this.getInstalledUpgrades(Upgrades.FAKE_FRAFTING) == 0) { - cm.putSetting(Settings.FAKE_CRAFTING_MOED, FakeCraftingMode.NONE); + } else if (this.getInstalledUpgrades(Upgrades.FAKE_CRAFTING) == 0) { + cm.putSetting(Settings.FAKE_CRAFTING_MODE, FakeCraftingMode.NONE); } } } @@ -1043,8 +1043,8 @@ private InsertionMode getInsertionMode() { } public boolean isFakeCraftingMode() { - return this.getInstalledUpgrades(Upgrades.FAKE_FRAFTING) != 0 - && cm.getSetting(Settings.FAKE_CRAFTING_MOED) == FakeCraftingMode.FAKE; + return this.getInstalledUpgrades(Upgrades.FAKE_CRAFTING) != 0 + && cm.getSetting(Settings.FAKE_CRAFTING_MODE) == FakeCraftingMode.FAKE; } private static boolean acceptsItems(final InventoryAdaptor ad, final InventoryCrafting table, diff --git a/src/main/java/appeng/items/materials/ItemMultiMaterial.java b/src/main/java/appeng/items/materials/ItemMultiMaterial.java index 8de86798d6d..7a98f9ac463 100644 --- a/src/main/java/appeng/items/materials/ItemMultiMaterial.java +++ b/src/main/java/appeng/items/materials/ItemMultiMaterial.java @@ -145,7 +145,7 @@ public Upgrades getType(final ItemStack itemstack) { case CardAdvancedBlocking -> Upgrades.ADVANCED_BLOCKING; case CardLockCrafting -> Upgrades.LOCK_CRAFTING; case CardSticky -> Upgrades.STICKY; - case CardFakeCrafting -> Upgrades.FAKE_FRAFTING; + case CardFakeCrafting -> Upgrades.FAKE_CRAFTING; default -> null; }; } diff --git a/src/main/java/appeng/me/cluster/implementations/CraftingCPUCluster.java b/src/main/java/appeng/me/cluster/implementations/CraftingCPUCluster.java index c8dbb0e6bd7..a37e7f694c2 100644 --- a/src/main/java/appeng/me/cluster/implementations/CraftingCPUCluster.java +++ b/src/main/java/appeng/me/cluster/implementations/CraftingCPUCluster.java @@ -854,15 +854,6 @@ private void executeCrafting(final IEnergyGrid eg, final CraftingGridCache cc) { } if (this.remainingOperations == 0) { - // if (m instanceof DualityInterface di && di.isFakeCraftingMode()) { - // final IAEItemStack is = this.waitingFor.findPrecise(this.finalOutput); - // long stackSize = is.getStackSize(); - // is.decStackSize(stackSize); - // this.markDirty(); - // this.postCraftingStatusChange(is); - // this.finalOutput.decStackSize(stackSize); - // this.updateCPU(); - // } return; } } diff --git a/src/main/java/appeng/parts/automation/UpgradeInventory.java b/src/main/java/appeng/parts/automation/UpgradeInventory.java index ef9c427fd61..6c9a88c01e1 100644 --- a/src/main/java/appeng/parts/automation/UpgradeInventory.java +++ b/src/main/java/appeng/parts/automation/UpgradeInventory.java @@ -90,7 +90,7 @@ public int getInstalledUpgrades(final Upgrades u) { case ADVANCED_BLOCKING -> this.advancedBlockingUpgrades; case LOCK_CRAFTING -> this.lockCraftingUpgrades; case STICKY -> this.stickyUpgrades; - case FAKE_FRAFTING -> this.fakeCraftingUpgrades; + case FAKE_CRAFTING -> this.fakeCraftingUpgrades; default -> 0; }; } @@ -120,7 +120,7 @@ private void updateUpgradeInfo() { case ADVANCED_BLOCKING -> this.advancedBlockingUpgrades++; case LOCK_CRAFTING -> this.lockCraftingUpgrades++; case STICKY -> this.stickyUpgrades++; - case FAKE_FRAFTING -> this.fakeCraftingUpgrades++; + case FAKE_CRAFTING -> this.fakeCraftingUpgrades++; default -> {} } } @@ -138,7 +138,7 @@ private void updateUpgradeInfo() { this.advancedBlockingUpgrades = Math .min(this.advancedBlockingUpgrades, this.getMaxInstalled(Upgrades.ADVANCED_BLOCKING)); this.lockCraftingUpgrades = Math.min(this.lockCraftingUpgrades, this.getMaxInstalled(Upgrades.LOCK_CRAFTING)); - this.fakeCraftingUpgrades = Math.min(this.fakeCraftingUpgrades, this.getMaxInstalled(Upgrades.FAKE_FRAFTING)); + this.fakeCraftingUpgrades = Math.min(this.fakeCraftingUpgrades, this.getMaxInstalled(Upgrades.FAKE_CRAFTING)); this.stickyUpgrades = Math.min(this.stickyUpgrades, this.getMaxInstalled(Upgrades.STICKY)); } From fbb2dd4c0e7d6731bda9a4a43058b06b17eb2d17 Mon Sep 17 00:00:00 2001 From: Martin Robertz Date: Mon, 23 Dec 2024 20:15:19 +0100 Subject: [PATCH 7/8] update stats png --- .../textures/guis/states.png | Bin 19129 -> 17754 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/main/resources/assets/appliedenergistics2/textures/guis/states.png b/src/main/resources/assets/appliedenergistics2/textures/guis/states.png index 0d4b377ba112253c36ae0609be9ef246a4137194..b564b8ff0d7522942a8352b013c68094bc07374c 100644 GIT binary patch literal 17754 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 literal 19129 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 Date: Mon, 23 Dec 2024 13:25:52 -0600 Subject: [PATCH 8/8] remove gui elements --- .../appeng/api/config/FakeCraftingMode.java | 13 ----------- src/main/java/appeng/api/config/Settings.java | 4 +--- .../gui/implementations/GuiInterface.java | 23 ------------------- .../client/gui/widgets/GuiImgButton.java | 13 ----------- .../implementations/ContainerInterface.java | 13 ----------- .../core/localization/ButtonToolTips.java | 3 --- .../java/appeng/helpers/DualityInterface.java | 7 +----- .../appliedenergistics2/lang/en_US.lang | 4 ---- .../appliedenergistics2/lang/zh_CN.lang | 4 ---- 9 files changed, 2 insertions(+), 82 deletions(-) delete mode 100644 src/main/java/appeng/api/config/FakeCraftingMode.java diff --git a/src/main/java/appeng/api/config/FakeCraftingMode.java b/src/main/java/appeng/api/config/FakeCraftingMode.java deleted file mode 100644 index 225da5d0e9e..00000000000 --- a/src/main/java/appeng/api/config/FakeCraftingMode.java +++ /dev/null @@ -1,13 +0,0 @@ -package appeng.api.config; - -/* - * Author : MCTBL Time : 2024-11-07 20:41:21 - */ - -public enum FakeCraftingMode { - - NONE, - - FAKE; - -} diff --git a/src/main/java/appeng/api/config/Settings.java b/src/main/java/appeng/api/config/Settings.java index 07d8f3d34ed..17c10249ace 100644 --- a/src/main/java/appeng/api/config/Settings.java +++ b/src/main/java/appeng/api/config/Settings.java @@ -84,9 +84,7 @@ public enum Settings { TERMINAL_FONT_SIZE(EnumSet.allOf(TerminalFontSize.class)), - INTERFACE_TERMINAL_SECTION_ORDER(EnumSet.allOf(StringOrder.class)), - - FAKE_CRAFTING_MODE(EnumSet.allOf(FakeCraftingMode.class)); + INTERFACE_TERMINAL_SECTION_ORDER(EnumSet.allOf(StringOrder.class)); private final EnumSet> values; diff --git a/src/main/java/appeng/client/gui/implementations/GuiInterface.java b/src/main/java/appeng/client/gui/implementations/GuiInterface.java index 353e680bd66..cdfe7d66838 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiInterface.java +++ b/src/main/java/appeng/client/gui/implementations/GuiInterface.java @@ -17,7 +17,6 @@ import org.lwjgl.input.Mouse; import appeng.api.config.AdvancedBlockingMode; -import appeng.api.config.FakeCraftingMode; import appeng.api.config.InsertionMode; import appeng.api.config.LockCraftingMode; import appeng.api.config.Settings; @@ -51,7 +50,6 @@ public class GuiInterface extends GuiUpgradeable { private GuiImgButton advancedBlockingMode; private GuiImgButton lockCraftingMode; - private GuiImgButton fakeCraftingMode; public GuiInterface(final InventoryPlayer inventoryPlayer, final IInterfaceHost te) { super(new ContainerInterface(inventoryPlayer, te)); @@ -131,16 +129,6 @@ protected void addButtons() { LockCraftingMode.NONE); this.lockCraftingMode.visible = this.bc.getInstalledUpgrades(Upgrades.LOCK_CRAFTING) > 0; this.buttonList.add(lockCraftingMode); - - offset += 18; - - this.fakeCraftingMode = new GuiImgButton( - this.guiLeft - 18, - this.guiTop + offset, - Settings.FAKE_CRAFTING_MODE, - FakeCraftingMode.FAKE); - this.fakeCraftingMode.visible = this.bc.getInstalledUpgrades(Upgrades.FAKE_CRAFTING) > 0; - this.buttonList.add(fakeCraftingMode); } @Override @@ -180,10 +168,6 @@ public void drawFG(final int offsetX, final int offsetY, final int mouseX, final this.lockCraftingMode.set(((ContainerInterface) this.cvb).getLockCraftingMode()); } - if (this.fakeCraftingMode != null) { - this.fakeCraftingMode.set(((ContainerInterface) this.cvb).getFakeCraftingMode()); - } - this.fontRendererObj.drawString( this.getGuiDisplayName(GuiText.Interface.getLocal()), 8, @@ -250,10 +234,6 @@ protected void actionPerformed(final GuiButton btn) { if (btn == this.lockCraftingMode) { NetworkHandler.instance.sendToServer(new PacketConfigButton(this.lockCraftingMode.getSetting(), backwards)); } - - if (btn == this.fakeCraftingMode) { - NetworkHandler.instance.sendToServer(new PacketConfigButton(this.fakeCraftingMode.getSetting(), backwards)); - } } @Override @@ -265,8 +245,5 @@ protected void handleButtonVisibility() { if (this.lockCraftingMode != null) { this.lockCraftingMode.setVisibility(this.bc.getInstalledUpgrades(Upgrades.LOCK_CRAFTING) > 0); } - if (this.fakeCraftingMode != null) { - this.fakeCraftingMode.setVisibility(this.bc.getInstalledUpgrades(Upgrades.FAKE_CRAFTING) > 0); - } } } diff --git a/src/main/java/appeng/client/gui/widgets/GuiImgButton.java b/src/main/java/appeng/client/gui/widgets/GuiImgButton.java index 0c38781fb0a..d17c9b6d66e 100644 --- a/src/main/java/appeng/client/gui/widgets/GuiImgButton.java +++ b/src/main/java/appeng/client/gui/widgets/GuiImgButton.java @@ -29,7 +29,6 @@ import appeng.api.config.CraftingMode; import appeng.api.config.CraftingSortOrder; import appeng.api.config.CraftingStatus; -import appeng.api.config.FakeCraftingMode; import appeng.api.config.FullnessMode; import appeng.api.config.FuzzyMode; import appeng.api.config.InsertionMode; @@ -731,18 +730,6 @@ public GuiImgButton(final int x, final int y, final Enum idx, final Enum val) { LockCraftingMode.LOCK_UNTIL_RESULT, ButtonToolTips.LockCraftingMode, ButtonToolTips.LockCraftingUntilResultReturned); - this.registerApp( - 16 * 13 + 4, - Settings.FAKE_CRAFTING_MODE, - FakeCraftingMode.FAKE, - ButtonToolTips.FakeCraftingMode, - ButtonToolTips.FakeCraftingOn); - this.registerApp( - 16 * 13 + 5, - Settings.FAKE_CRAFTING_MODE, - FakeCraftingMode.NONE, - ButtonToolTips.FakeCraftingMode, - ButtonToolTips.FakeCraftingOff); this.registerApp( 16 + 2, Settings.CRAFTING_MODE, diff --git a/src/main/java/appeng/container/implementations/ContainerInterface.java b/src/main/java/appeng/container/implementations/ContainerInterface.java index 51fbda3e1cf..7584714aace 100644 --- a/src/main/java/appeng/container/implementations/ContainerInterface.java +++ b/src/main/java/appeng/container/implementations/ContainerInterface.java @@ -18,7 +18,6 @@ import net.minecraft.tileentity.TileEntity; import appeng.api.config.AdvancedBlockingMode; -import appeng.api.config.FakeCraftingMode; import appeng.api.config.InsertionMode; import appeng.api.config.LockCraftingMode; import appeng.api.config.SecurityPermissions; @@ -65,9 +64,6 @@ public class ContainerInterface extends ContainerUpgradeable implements IOptiona @GuiSync(12) public LockCraftingMode lockCraftingMode = LockCraftingMode.NONE; - @GuiSync(16) - public FakeCraftingMode fakeCraftingMode = FakeCraftingMode.FAKE; - @GuiSync(8) public InsertionMode insertionMode = InsertionMode.DEFAULT; @@ -171,7 +167,6 @@ protected void loadSettingsFromHost(final IConfigManager cm) { this.setPatternOptimization((YesNo) cm.getSetting(Settings.PATTERN_OPTIMIZATION)); this.setAdvancedBlockingMode((AdvancedBlockingMode) cm.getSetting(Settings.ADVANCED_BLOCKING_MODE)); this.setLockCraftingMode((LockCraftingMode) cm.getSetting(Settings.LOCK_CRAFTING_MODE)); - this.setFakeCraftingMode((FakeCraftingMode) cm.getSetting(Settings.FAKE_CRAFTING_MODE)); } public void doublePatterns(int val) { @@ -259,14 +254,6 @@ private void setLockCraftingMode(LockCraftingMode mode) { this.lockCraftingMode = mode; } - public FakeCraftingMode getFakeCraftingMode() { - return this.fakeCraftingMode; - } - - public void setFakeCraftingMode(FakeCraftingMode mode) { - this.fakeCraftingMode = mode; - } - public int getPatternCapacityCardsInstalled() { if (Platform.isClient() && isEmpty) return -1; if (myDuality == null) return 0; diff --git a/src/main/java/appeng/core/localization/ButtonToolTips.java b/src/main/java/appeng/core/localization/ButtonToolTips.java index 3f5cf84b1cc..c2963ad0118 100644 --- a/src/main/java/appeng/core/localization/ButtonToolTips.java +++ b/src/main/java/appeng/core/localization/ButtonToolTips.java @@ -205,9 +205,6 @@ public enum ButtonToolTips { CraftingModeIgnoreMissing, CraftingModeIgnoreMissingDesc, ExtraOptions, - FakeCraftingMode, - FakeCraftingOn, - FakeCraftingOff, SwitchBytesInfo, SwitchBytesInfo_Item, diff --git a/src/main/java/appeng/helpers/DualityInterface.java b/src/main/java/appeng/helpers/DualityInterface.java index 3c13b8deb72..bc7ca4bd794 100644 --- a/src/main/java/appeng/helpers/DualityInterface.java +++ b/src/main/java/appeng/helpers/DualityInterface.java @@ -38,7 +38,6 @@ import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.config.AdvancedBlockingMode; -import appeng.api.config.FakeCraftingMode; import appeng.api.config.InsertionMode; import appeng.api.config.LockCraftingMode; import appeng.api.config.Settings; @@ -151,7 +150,6 @@ public DualityInterface(final AENetworkProxy networkProxy, final IInterfaceHost this.cm.registerSetting(Settings.ADVANCED_BLOCKING_MODE, AdvancedBlockingMode.DEFAULT); this.cm.registerSetting(Settings.LOCK_CRAFTING_MODE, LockCraftingMode.NONE); this.cm.registerSetting(Settings.PATTERN_OPTIMIZATION, YesNo.YES); - this.cm.registerSetting(Settings.FAKE_CRAFTING_MODE, FakeCraftingMode.FAKE); this.iHost = ih; this.craftingTracker = new MultiCraftingTracker(this.iHost, 9); @@ -207,8 +205,6 @@ public void onChangeInventory(final IInventory inv, final int slot, final InvOpe if (this.getInstalledUpgrades(Upgrades.LOCK_CRAFTING) == 0) { cm.putSetting(Settings.LOCK_CRAFTING_MODE, LockCraftingMode.NONE); resetCraftingLock(); - } else if (this.getInstalledUpgrades(Upgrades.FAKE_CRAFTING) == 0) { - cm.putSetting(Settings.FAKE_CRAFTING_MODE, FakeCraftingMode.NONE); } } } @@ -1043,8 +1039,7 @@ private InsertionMode getInsertionMode() { } public boolean isFakeCraftingMode() { - return this.getInstalledUpgrades(Upgrades.FAKE_CRAFTING) != 0 - && cm.getSetting(Settings.FAKE_CRAFTING_MODE) == FakeCraftingMode.FAKE; + return this.getInstalledUpgrades(Upgrades.FAKE_CRAFTING) != 0; } private static boolean acceptsItems(final InventoryAdaptor ad, final InventoryCrafting table, diff --git a/src/main/resources/assets/appliedenergistics2/lang/en_US.lang b/src/main/resources/assets/appliedenergistics2/lang/en_US.lang index fe0cfb57a91..46c8cb4a719 100644 --- a/src/main/resources/assets/appliedenergistics2/lang/en_US.lang +++ b/src/main/resources/assets/appliedenergistics2/lang/en_US.lang @@ -511,10 +511,6 @@ gui.tooltips.appliedenergistics2.CraftingModeStandardDesc=Only starts craft if a gui.tooltips.appliedenergistics2.CraftingModeIgnoreMissing=Ignore Missing Crafting Mode gui.tooltips.appliedenergistics2.CraftingModeIgnoreMissingDesc=Starts craft even if ingredients are missing from the ME System. -gui.tooltips.appliedenergistics2.FakeCraftingMode=Fake Crafting -gui.tooltips.appliedenergistics2.FakeCraftingOn=Fake Crafting Mode -gui.tooltips.appliedenergistics2.FakeCraftingOff=Standard Crafting Mode - gui.tooltips.appliedenergistics2.ExtraOptions=Extra Options gui.tooltips.appliedenergistics2.SwitchBytesInfo=Cell Info diff --git a/src/main/resources/assets/appliedenergistics2/lang/zh_CN.lang b/src/main/resources/assets/appliedenergistics2/lang/zh_CN.lang index 684a9a0b0ff..c48e2735603 100644 --- a/src/main/resources/assets/appliedenergistics2/lang/zh_CN.lang +++ b/src/main/resources/assets/appliedenergistics2/lang/zh_CN.lang @@ -507,10 +507,6 @@ gui.tooltips.appliedenergistics2.CraftingModeIgnoreMissingDesc=在ME系统内原 gui.tooltips.appliedenergistics2.ExtraOptions=额外选项 -gui.tooltips.appliedenergistics2.FakeCraftingMode=伪合成 -gui.tooltips.appliedenergistics2.FakeCraftingOn=伪合成开启 -gui.tooltips.appliedenergistics2.FakeCraftingOff=伪合成关闭 - gui.tooltips.appliedenergistics2.SwitchBytesInfo=存储信息 gui.tooltips.appliedenergistics2.SwitchBytesInfo_Item=物品 gui.tooltips.appliedenergistics2.SwitchBytesInfo_Fluid=流体