Skip to content

Commit

Permalink
rename OnCompleteListener and move cleaning of listeners to actual be…
Browse files Browse the repository at this point in the history
…ginning of craft
  • Loading branch information
koiNoCirculation committed Sep 5, 2024
1 parent a9e14bc commit 2be75ac
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
import appeng.api.storage.data.IAEItemStack;
import appeng.api.util.CraftCancelListener;
import appeng.api.util.CraftingStatusListener;
import appeng.api.util.OnCompleteListener;
import appeng.api.util.CraftCompleteListener;

public interface ICraftingCPU extends IBaseMonitor<IAEItemStack> {

Expand Down Expand Up @@ -81,9 +81,9 @@ default long getStartItemCount() {
}

/**
* @param onCompleteListener a callback that is called when task is complete
* @param craftCompleteListener a callback that is called when task is complete
*/
void addOnCompleteListener(OnCompleteListener<ItemStack, Long, Long> onCompleteListener);
void addOnCompleteListener(CraftCompleteListener<ItemStack, Long, Long> craftCompleteListener);

/**
* @param onCancelListener a callback that is called when task is canceled
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import java.io.Serializable;

@FunctionalInterface
public interface OnCompleteListener<A1, A2, A3> extends Serializable {
public interface CraftCompleteListener<A1, A2, A3> extends Serializable {

long serialVersionUID = 734594276097234589L;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import java.util.function.Consumer;
import java.util.stream.IntStream;

import appeng.api.util.CraftCompleteListener;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.inventory.InventoryCrafting;
Expand Down Expand Up @@ -88,7 +89,6 @@
import appeng.api.util.CraftingStatusListener;
import appeng.api.util.DimensionalCoord;
import appeng.api.util.IInterfaceViewable;
import appeng.api.util.OnCompleteListener;
import appeng.api.util.WorldCoord;
import appeng.container.ContainerNull;
import appeng.core.AELog;
Expand Down Expand Up @@ -150,7 +150,7 @@ public final class CraftingCPUCluster implements IAECluster, ICraftingCPU {
private long remainingItemCount;
private long numsOfOutput;

private List<OnCompleteListener<ItemStack, Long, Long>> defaultOnComplete = Arrays
private List<CraftCompleteListener<ItemStack, Long, Long>> defaultOnComplete = Arrays
.asList((finalOutput, numsOfOutput, elapsedTime) -> {
if (!this.playersFollowingCurrentCraft.isEmpty()) {
final String elapsedTimeText = DurationFormatUtils.formatDuration(
Expand All @@ -174,7 +174,7 @@ public final class CraftingCPUCluster implements IAECluster, ICraftingCPU {
}
});

private List<OnCompleteListener<ItemStack, Long, Long>> onCompleteListeners = initializeDefaultOnCompleteListener();
private List<CraftCompleteListener<ItemStack, Long, Long>> craftCompleteListeners = initializeDefaultOnCompleteListener();

private List<CraftingStatusListener<Integer>> craftingStatusListeners = new ArrayList<>();

Expand All @@ -199,13 +199,13 @@ public ICraftingLink getLastCraftingLink() {
return this.myLastLink;
}

private List<OnCompleteListener<ItemStack, Long, Long>> initializeDefaultOnCompleteListener() {
private List<CraftCompleteListener<ItemStack, Long, Long>> initializeDefaultOnCompleteListener() {
return new ArrayList<>(defaultOnComplete);
}

@Override
public void addOnCompleteListener(OnCompleteListener<ItemStack, Long, Long> onCompleteListener) {
this.onCompleteListeners.add(onCompleteListener);
public void addOnCompleteListener(CraftCompleteListener<ItemStack, Long, Long> craftCompleteListener) {
this.craftCompleteListeners.add(craftCompleteListener);
}

@Override
Expand Down Expand Up @@ -475,7 +475,7 @@ private void completeJob() {
AELog.crafting(LOG_MARK_AS_COMPLETE, logStack);
}

onCompleteListeners.forEach(f -> f.apply(this.finalOutput.getItemStack(), this.numsOfOutput, elapsedTime));
craftCompleteListeners.forEach(f -> f.apply(this.finalOutput.getItemStack(), this.numsOfOutput, elapsedTime));
this.usedStorage = 0;
this.remainingItemCount = 0;
this.startItemCount = 0;
Expand All @@ -484,7 +484,7 @@ private void completeJob() {
this.numsOfOutput = 0;
this.isComplete = true;
this.playersFollowingCurrentCraft.clear();
this.onCompleteListeners = initializeDefaultOnCompleteListener();
this.craftCompleteListeners = initializeDefaultOnCompleteListener();
}

private EntityPlayerMP getPlayerByName(String playerName) {
Expand Down Expand Up @@ -606,7 +606,7 @@ public void cancel() {

this.finalOutput = null;
this.updateCPU();
this.onCompleteListeners = initializeDefaultOnCompleteListener();
this.craftCompleteListeners = initializeDefaultOnCompleteListener();
for (Runnable onCancelListener : this.onCancelListeners) {
onCancelListener.run();
}
Expand Down Expand Up @@ -879,13 +879,7 @@ public ICraftingLink submitJob(final IGrid g, final ICraftingJob job, final Base
&& this.availableStorage >= this.usedStorage + job.getByteTotal()) {
return mergeJob(g, job, src);
}
for (Runnable onCancelListener : onCancelListeners) {
onCancelListener.run();
}
onCancelListeners.clear();
craftingStatusListeners.clear();
onCompleteListeners = initializeDefaultOnCompleteListener(); // clear all possible listeners
// when it comes to a new craft,


if (!this.tasks.isEmpty() || !this.waitingFor.isEmpty()) {
return null;
Expand All @@ -911,6 +905,13 @@ public ICraftingLink submitJob(final IGrid g, final ICraftingJob job, final Base
this.playersFollowingCurrentCraft.clear();

if (ci.commit(src)) {
for (Runnable onCancelListener : onCancelListeners) {
onCancelListener.run();
}
onCancelListeners.clear();
craftingStatusListeners.clear();
craftCompleteListeners = initializeDefaultOnCompleteListener(); // clear all possible listeners
// when it comes to a new craft,
if (job.getOutput() != null) {
this.finalOutput = job.getOutput();
this.waiting = false;
Expand Down Expand Up @@ -1214,7 +1215,7 @@ public void writeToNBT(final NBTTagCompound data) {
data.setLong("usedStorage", this.usedStorage);
data.setLong("numsOfOutput", this.numsOfOutput);
try {
data.setTag("onCompleteListeners", persistListeners(1, onCompleteListeners));
data.setTag("craftCompleteListeners", persistListeners(1, craftCompleteListeners));
data.setTag("onCancelListeners", persistListeners(0, onCancelListeners));
data.setTag("craftStatusListeners", persistListeners(0, craftingStatusListeners));
} catch (IOException e) {
Expand Down Expand Up @@ -1367,7 +1368,7 @@ public void readFromNBT(final NBTTagCompound data) {
DimensionalCoord.readAsListFromNBT(pro));
}
try {
unpersistListeners(1, onCompleteListeners, data.getCompoundTag("onCompleteListeners"));
unpersistListeners(1, craftCompleteListeners, data.getCompoundTag("craftCompleteListeners"));
unpersistListeners(0, onCancelListeners, data.getCompoundTag("onCancelListeners"));
unpersistListeners(0, craftingStatusListeners, data.getCompoundTag("craftStatusListeners"));
} catch (IOException | ClassNotFoundException e) {
Expand Down

0 comments on commit 2be75ac

Please sign in to comment.