Skip to content

Commit ae01da4

Browse files
committed
为canExtract和canReceive添加参数使其可以只向法定的IEnergyHandler发送/接收能源
1 parent 7334b10 commit ae01da4

7 files changed

Lines changed: 286 additions & 222 deletions

File tree

src/main/java/com/circulation/circulation_networks/api/IEnergyHandler.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,9 @@ static IEnergyHandler release(ItemStack stack) {
4949

5050
long canReceiveValue();
5151

52-
boolean canExtract();
52+
boolean canExtract(IEnergyHandler receiveHandler);
5353

54-
boolean canReceive();
54+
boolean canReceive(IEnergyHandler sendHandler);
5555

5656
default void recycle() {
5757
this.clear();
@@ -62,8 +62,8 @@ default void recycle() {
6262
}
6363

6464
default EnergyType getType() {
65-
boolean receive = canReceive();
66-
if (canExtract()) {
65+
boolean receive = canReceiveValue() > 0;
66+
if (canExtractValue() > 0) {
6767
return receive ? EnergyType.STORAGE : EnergyType.SEND;
6868
} else if (receive) {
6969
return EnergyType.RECEIVE;

src/main/java/com/circulation/circulation_networks/energy/handler/CEHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,12 @@ public long canReceiveValue() {
6565
}
6666

6767
@Override
68-
public boolean canExtract() {
68+
public boolean canExtract(IEnergyHandler receiveHandler) {
6969
return type != EnergyType.RECEIVE && canExtractValue() > 0;
7070
}
7171

7272
@Override
73-
public boolean canReceive() {
73+
public boolean canReceive(IEnergyHandler sendHandler) {
7474
return type != EnergyType.SEND && canReceiveValue() > 0;
7575
}
7676

src/main/java/com/circulation/circulation_networks/energy/handler/EUHandler.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,8 @@ public IEnergyHandler init(TileEntity tileEntity) {
5252
energyType = EnergyType.RECEIVE;
5353
receive = (IEnergySink) tile;
5454
}
55-
if (!canExtract() && !canReceive()) energyType = EnergyType.INVALID;
55+
if (!(send != null && send.getOfferedEnergy() > 0) && !(receive != null && receive.getDemandedEnergy() > 0))
56+
energyType = EnergyType.INVALID;
5657
return this;
5758
}
5859

@@ -110,12 +111,12 @@ public long canReceiveValue() {
110111
}
111112

112113
@Override
113-
public boolean canExtract() {
114+
public boolean canExtract(IEnergyHandler receiveHandler) {
114115
return send != null && send.getOfferedEnergy() > 0;
115116
}
116117

117118
@Override
118-
public boolean canReceive() {
119+
public boolean canReceive(IEnergyHandler sendHandler) {
119120
if (isItem) {
120121
return ElectricItem.manager.getMaxCharge(itemStack) > 0;
121122
} else {

src/main/java/com/circulation/circulation_networks/energy/handler/FEHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,12 +91,12 @@ public EnergyType getType() {
9191
}
9292

9393
@Override
94-
public boolean canExtract() {
94+
public boolean canExtract(IEnergyHandler receiveHandler) {
9595
return send != null;
9696
}
9797

9898
@Override
99-
public boolean canReceive() {
99+
public boolean canReceive(IEnergyHandler sendHandler) {
100100
return receive != null;
101101
}
102102
}

src/main/java/com/circulation/circulation_networks/energy/handler/MEKHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,13 +163,13 @@ public long canReceiveValue() {
163163
}
164164

165165
@Override
166-
public boolean canExtract() {
166+
public boolean canExtract(IEnergyHandler receiveHandler) {
167167
if (creative) return true;
168168
return send != null && send.getEnergy() >= 2.5;
169169
}
170170

171171
@Override
172-
public boolean canReceive() {
172+
public boolean canReceive(IEnergyHandler sendHandler) {
173173
if (isItem) return needEnergy > 0;
174174
else return receive != null && (receive.getMaxEnergy() - receive.getEnergy()) / 2.5 >= 0;
175175
}

0 commit comments

Comments
 (0)