Skip to content

Commit c83e9c5

Browse files
committed
处理量子环的一些问题
1 parent 6513e71 commit c83e9c5

File tree

3 files changed

+24
-13
lines changed

3 files changed

+24
-13
lines changed

src/main/java/com/circulation/random_complement/common/interfaces/RCQuantumCluster.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ public interface RCQuantumCluster {
77

88
TileQuantumBridge getCenter();
99

10-
void r$setIdlePowerUsage(Object obj, double power);
10+
void r$setIdlePowerUsage(RCQuantumCluster qc, double power);
1111

1212
boolean r$noWork();
13-
}
13+
}

src/main/java/com/circulation/random_complement/mixin/ae2/MixinQuantumCluster.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -65,15 +65,18 @@ public void updateStatusD(boolean updateGrid, CallbackInfo ci) {
6565
r$setIdlePowerUsage(this.otherSide == 0L ? null : AEApi.instance().registries().locatable().getLocatableBy(this.otherSide), power);
6666
}
6767

68+
@Unique
69+
private void r$setIdlePowerUsage(Object o, double power) {
70+
if (o instanceof RCQuantumCluster qc) r$setIdlePowerUsage(qc, power);
71+
}
72+
6873
@Unique
6974
@Override
70-
public void r$setIdlePowerUsage(Object obj, double power) {
71-
if (obj instanceof RCQuantumCluster qc) {
72-
for (TileQuantumBridge q : qc.r$getRing()) {
73-
q.getProxy().setIdlePowerUsage(power);
74-
}
75-
if (qc.getCenter() != null) qc.getCenter().getProxy().setIdlePowerUsage(power);
75+
public void r$setIdlePowerUsage(RCQuantumCluster qc, double power) {
76+
for (TileQuantumBridge q : qc.r$getRing()) {
77+
q.getProxy().setIdlePowerUsage(power);
7678
}
79+
if (qc.getCenter() != null) qc.getCenter().getProxy().setIdlePowerUsage(power);
7780
}
7881

7982
}

src/main/java/com/circulation/random_complement/mixin/ae2/tile/MixinTileQuantumBridge.java

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,23 @@ public void isPoweredI(CallbackInfoReturnable<Boolean> cir) {
4242

4343
@Inject(method = "onChangeInventory", at = @At("HEAD"))
4444
public void onChangeInventoryI(IItemHandler inv, int slot, InvOperation mc, ItemStack removed, ItemStack added, CallbackInfo ci) {
45+
if (this.cluster == null) return;
4546
if (r$card == null) {
4647
r$card = AEApi.instance().definitions().materials().cardQuantumLink();
4748
}
48-
if (this.getProxy().getIdlePowerUsage() == 0) {
49-
if (r$card.isSameAs(added)) {
50-
((RCQuantumCluster) this.cluster).r$setIdlePowerUsage(this.cluster, 22);
49+
switch (mc) {
50+
case INSERT -> {
51+
if (r$card.isSameAs(added)) {
52+
var c = (RCQuantumCluster) this.cluster;
53+
c.r$setIdlePowerUsage(c, 22);
54+
}
55+
}
56+
case EXTRACT -> {
57+
if (r$card.isSameAs(removed)) {
58+
var c = (RCQuantumCluster) this.cluster;
59+
c.r$setIdlePowerUsage(c, 0);
60+
}
5161
}
52-
} else if (r$card.isSameAs(removed)) {
53-
((RCQuantumCluster) this.cluster).r$setIdlePowerUsage(this.cluster, 0);
5462
}
5563
}
5664
}

0 commit comments

Comments
 (0)