Skip to content

Commit

Permalink
Merge branch 'master' into fix/same-network-multiple-extract-only-sto…
Browse files Browse the repository at this point in the history
…rage-bus
  • Loading branch information
serenibyss authored Dec 29, 2024
2 parents c963c97 + 649fdc7 commit a1a5c00
Show file tree
Hide file tree
Showing 13 changed files with 181 additions and 69 deletions.
13 changes: 7 additions & 6 deletions dependencies.gradle
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
// Add your dependencies here

dependencies {
implementation('com.github.GTNewHorizons:NotEnoughItems:2.7.4-GTNH:dev')
implementation('com.github.GTNewHorizons:NotEnoughItems:2.7.8-GTNH:dev')
implementation('curse.maven:cofh-core-69162:2388751')

compileOnlyApi('com.github.GTNewHorizons:Angelica:1.0.0-beta27:api')
compileOnlyApi('com.github.GTNewHorizons:Angelica:1.0.0-beta28:api')
compileOnly("com.github.GTNewHorizons:GTNHLib:0.6.0:dev") {transitive = false}
compileOnly('com.github.GTNewHorizons:ThaumicTinkerer:2.11.0:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:BuildCraft:7.1.39:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:ForestryMC:4.10.0:dev') {transitive = false} // required to compile CraftingV2Tests.java now
compileOnly('com.github.GTNewHorizons:ForgeMultipart:1.5.0:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:GT5-Unofficial:5.09.51.31:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:GT5-Unofficial:5.09.51.36:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:Jabba:1.5.0:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:inventory-tweaks:1.7.0:api') {transitive = false}
compileOnly('com.github.GTNewHorizons:OpenComputers:1.11.1-GTNH:api') {transitive = false}
compileOnly('com.github.GTNewHorizons:waila:1.8.2:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:Railcraft:9.15.15:api') {transitive = false}
compileOnly('com.github.GTNewHorizons:Railcraft:9.16.0:api') {transitive = false}
compileOnly('thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev') {transitive = false }
compileOnly('net.industrial-craft:industrialcraft-2:2.2.828-experimental:api')
compileOnly('curse.maven:minefactory-reloaded-66672:2366150')
Expand All @@ -34,14 +34,15 @@ dependencies {
functionalTestImplementation('org.junit.platform:junit-platform-engine')
functionalTestImplementation('org.junit.platform:junit-platform-launcher')
functionalTestImplementation('org.junit.platform:junit-platform-reporting')
functionalTestImplementation('com.github.GTNewHorizons:GT5-Unofficial:5.09.51.31:dev') {
functionalTestImplementation('com.github.GTNewHorizons:GT5-Unofficial:5.09.51.36:dev') {
exclude module: "Applied-Energistics-2-Unofficial"
exclude module: "Hodgepodge"
}

runtimeOnlyNonPublishable("com.github.GTNewHorizons:DuraDisplay:1.3.4:dev")
runtimeOnlyNonPublishable('com.github.GTNewHorizons:Baubles:1.0.4:dev')
runtimeOnlyNonPublishable('thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev')
runtimeOnlyNonPublishable('com.github.GTNewHorizons:ThaumicEnergistics:1.7.0-GTNH:dev') { transitive = false }
runtimeOnlyNonPublishable('com.github.GTNewHorizons:AE2FluidCraft-Rework:1.4.2-gtnh:dev') { transitive = false }
runtimeOnlyNonPublishable('com.github.GTNewHorizons:AE2FluidCraft-Rework:1.4.4-gtnh:dev') { transitive = false }
runtimeOnlyNonPublishable("com.github.GTNewHorizons:BloodMagic:1.6.9") { transitive = false }
}
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public void initGui() {
this.guiTop + 53,
Settings.ACTIONS,
ActionItems.MULTIPLY));

this.amountTextField.xPosition = this.guiLeft + 50;
this.amountTextField.setText(String.valueOf(DEFAULT_VALUE));
this.amountTextField.setSelectionPos(0);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,10 +78,10 @@ protected void actionPerformed(final GuiButton btn) {
"PatternTerminalEx.BeSubstitute",
this.beSubstitutionsEnabledBtn == btn ? SUBSITUTION_DISABLE : SUBSITUTION_ENABLE));
} else if (doubleBtn == btn) {
NetworkHandler.instance.sendToServer(
new PacketValueConfig(
"PatternTerminalEx.Double",
Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) ? "1" : "0"));
int val = Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) ? 1 : 0;
if (Mouse.isButtonDown(1)) val |= 0b10;
NetworkHandler.instance
.sendToServer(new PacketValueConfig("PatternTerminalEx.Double", String.valueOf(val)));
}
} catch (final IOException e) {
// TODO Auto-generated catch block
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,28 @@ public void onContainerClosed(final EntityPlayer player) {
}
}

public void sendUpdateFollowPacket(List<String> playersFollowingCurrentCraft) {
NBTTagCompound nbttc = new NBTTagCompound();
NBTTagList tagList = new NBTTagList();

if (playersFollowingCurrentCraft != null) {
for (String name : playersFollowingCurrentCraft) {
tagList.appendTag(new NBTTagString(name));
}
}
nbttc.setTag("playNameList", tagList);

for (final Object g : this.crafters) {
if (g instanceof EntityPlayerMP epmp) {
try {
NetworkHandler.instance.sendTo(new PacketCompressedNBT(nbttc), epmp);
} catch (final IOException e) {
// :P
}
}
}
}

@Override
public void detectAndSendChanges() {
if (Platform.isServer() && this.getMonitor() != null && !this.list.isEmpty()) {
Expand Down
7 changes: 0 additions & 7 deletions src/main/java/appeng/core/AEConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,6 @@ public final class AEConfig extends Configuration implements IConfigurableObject

public boolean debugLogTiming = false;
public boolean debugPathFinding = false;
public boolean p2pBackboneTransfer = false;
public boolean quantumBridgeBackboneTransfer = false;
public int wirelessTerminalBattery = 1600000;
public int entropyManipulatorBattery = 200000;
public int matterCannonBattery = 200000;
Expand Down Expand Up @@ -232,11 +230,6 @@ public AEConfig(final File configFile) {
this.debugLogTiming = this.get("debug", "LogTiming", this.debugLogTiming).getBoolean(this.debugLogTiming);
this.debugPathFinding = this.get("debug", "LogPathFinding", this.debugPathFinding)
.getBoolean(this.debugPathFinding);
this.p2pBackboneTransfer = this.get("debug", "EnableP2pBackboneTransfer", this.p2pBackboneTransfer)
.getBoolean(this.p2pBackboneTransfer);
this.quantumBridgeBackboneTransfer = this
.get("debug", "EnableQuantumBridgeBackboneTransfer", this.quantumBridgeBackboneTransfer)
.getBoolean(this.quantumBridgeBackboneTransfer);
this.craftingCalculatorVersion = this.get("debug", "CraftingCalculatorVersion", this.craftingCalculatorVersion)
.getInt(this.craftingCalculatorVersion);
this.craftingCalculatorVersion = Math.max(1, Math.min(this.craftingCalculatorVersion, 2));
Expand Down
3 changes: 2 additions & 1 deletion src/main/java/appeng/core/localization/PlayerMessages.java
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,8 @@ public enum PlayerMessages {
PriorityInvalidTarget,
PriorityReadout,
PriorityConfigured,
FinishCraftingRemind;
FinishCraftingRemind,
CraftingCantExtract;

public IChatComponent get() {
return new ChatComponentTranslation(this.getName());
Expand Down
41 changes: 41 additions & 0 deletions src/main/java/appeng/crafting/MECraftingInventory.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,23 @@

import javax.annotation.Nonnull;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.ChatComponentTranslation;
import net.minecraft.util.IChatComponent;
import net.minecraft.util.StatCollector;

import appeng.api.AEApi;
import appeng.api.config.Actionable;
import appeng.api.networking.security.BaseActionSource;
import appeng.api.networking.security.PlayerSource;
import appeng.api.storage.IMEInventory;
import appeng.api.storage.IMEMonitor;
import appeng.api.storage.StorageChannel;
import appeng.api.storage.data.IAEItemStack;
import appeng.api.storage.data.IItemList;
import appeng.core.AELog;
import appeng.core.localization.PlayerMessages;
import appeng.util.IterationCounter;

public class MECraftingInventory implements IMEInventory<IAEItemStack> {
Expand Down Expand Up @@ -260,6 +269,7 @@ public boolean commit(final BaseActionSource src) {

if (result == null || result.getStackSize() != extra.getStackSize()) {
failed = true;
handleCraftExtractFailure(extra, result, src);
break;
}
}
Expand Down Expand Up @@ -296,4 +306,35 @@ public void ignore(final IAEItemStack what) {
list.setStackSize(0);
}
}

private void handleCraftExtractFailure(final IAEItemStack expected, final IAEItemStack extracted,
final BaseActionSource src) {
if (!(src instanceof PlayerSource)) {
return;
}

try {
EntityPlayer player = ((PlayerSource) src).player;
if (player != null) {
if (expected != null && expected.getItem() != null) {
IChatComponent missingDisplayName;
String missingName = expected.getItemStack().getUnlocalizedName();
if (StatCollector.canTranslate(missingName + ".name") && StatCollector
.translateToLocal(missingName + ".name").equals(expected.getItemStack().getDisplayName()))
missingDisplayName = new ChatComponentTranslation(missingName + ".name");
else missingDisplayName = new ChatComponentText(expected.getItemStack().getDisplayName());

player.addChatMessage(
new ChatComponentTranslation(
PlayerMessages.CraftingCantExtract.getName(),
extracted.getStackSize(),
expected.getStackSize(),
missingName).appendText(" (").appendSibling(missingDisplayName).appendText(")"));
}

}
} catch (Exception ex) {
AELog.error(ex, "Could not notify player of crafting failure");
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@
import appeng.api.util.IInterfaceViewable;
import appeng.api.util.WorldCoord;
import appeng.container.ContainerNull;
import appeng.container.implementations.ContainerCraftingCPU;
import appeng.core.AELog;
import appeng.core.localization.GuiText;
import appeng.core.localization.PlayerMessages;
Expand Down Expand Up @@ -633,6 +634,7 @@ public void cancel() {
final ImmutableSet<IAEItemStack> items = ImmutableSet.copyOf(this.waitingFor);

this.waitingFor.resetStatus();
this.waitingForMissing.resetStatus();

for (final IAEItemStack is : items) {
this.postCraftingStatusChange(is);
Expand Down Expand Up @@ -947,6 +949,7 @@ public ICraftingLink submitJob(final IGrid g, final ICraftingJob job, final Base

try {
this.waitingFor.resetStatus();
this.waitingForMissing.resetStatus();
job.startCrafting(ci, this, src);

// Clear the follow list by default
Expand Down Expand Up @@ -1570,6 +1573,13 @@ public void togglePlayerFollowStatus(final String name) {
} else {
this.playersFollowingCurrentCraft.add(name);
}

final Iterator<Entry<IMEMonitorHandlerReceiver<IAEItemStack>, Object>> i = this.getListeners();
while (i.hasNext()) {
if (i.next().getKey() instanceof ContainerCraftingCPU cccpu) {
cccpu.sendUpdateFollowPacket(playersFollowingCurrentCraft);
}
}
}

@SuppressWarnings("unchecked")
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/appeng/parts/automation/PartFormationPlane.java
Original file line number Diff line number Diff line change
Expand Up @@ -542,6 +542,8 @@ public IAEItemStack injectItems(final IAEItemStack input, final Actionable type,
side.offsetY,
side.offsetZ);
maxStorage -= is.stackSize;
} else {
worked = false;
}
}
} else {
Expand Down
5 changes: 1 addition & 4 deletions src/main/java/appeng/parts/p2p/PartP2PTunnelME.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
import appeng.api.networking.ticking.TickingRequest;
import appeng.api.parts.IPartHost;
import appeng.api.util.AECableType;
import appeng.core.AEConfig;
import appeng.core.AELog;
import appeng.core.settings.TickRates;
import appeng.hooks.TickHandler;
Expand All @@ -46,9 +45,7 @@ public class PartP2PTunnelME extends PartP2PTunnelNormal<PartP2PTunnelME> implem
public PartP2PTunnelME(final ItemStack is) {
super(is);
this.getProxy().setFlags(GridFlags.REQUIRE_CHANNEL, GridFlags.COMPRESSED_CHANNEL);
if (AEConfig.instance.p2pBackboneTransfer) this.outerProxy
.setFlags(GridFlags.DENSE_CAPACITY, GridFlags.ULTRA_DENSE_CAPACITY, GridFlags.CANNOT_CARRY_COMPRESSED);
else this.outerProxy.setFlags(GridFlags.DENSE_CAPACITY, GridFlags.CANNOT_CARRY_COMPRESSED);
this.outerProxy.setFlags(GridFlags.DENSE_CAPACITY, GridFlags.CANNOT_CARRY_COMPRESSED);
}

@Override
Expand Down
4 changes: 1 addition & 3 deletions src/main/java/appeng/tile/qnb/TileQuantumBridge.java
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,7 @@ public class TileQuantumBridge extends AENetworkInvTile implements IAEMultiBlock

public TileQuantumBridge() {
this.getProxy().setValidSides(EnumSet.noneOf(ForgeDirection.class));
if (AEConfig.instance.quantumBridgeBackboneTransfer)
this.getProxy().setFlags(GridFlags.DENSE_CAPACITY, GridFlags.ULTRA_DENSE_CAPACITY);
else this.getProxy().setFlags(GridFlags.DENSE_CAPACITY);
this.getProxy().setFlags(GridFlags.DENSE_CAPACITY);
this.getProxy().setIdlePowerUsage(22);
this.internalInventory.setMaxStackSize(1);
}
Expand Down
Loading

0 comments on commit a1a5c00

Please sign in to comment.