1
1
package net .pedroksl .advanced_ae .common .entities ;
2
2
3
3
import java .util .*;
4
- import java .util .concurrent .atomic .AtomicBoolean ;
5
4
6
5
import org .jetbrains .annotations .Nullable ;
7
6
@@ -289,27 +288,26 @@ public TickRateModulation tickingRequest(IGridNode iGridNode, int ticksSinceLast
289
288
290
289
if (this .hasCraftWork ()) {
291
290
this .setWorking (true );
292
- AtomicBoolean gridEnergy = new AtomicBoolean (false );
293
- final int speedFactor =
294
- switch (this .upgrades .getInstalledUpgrades (AEItems .SPEED_CARD )) {
295
- default -> 2 ; // 116 ticks
296
- case 1 -> 3 ; // 83 ticks
297
- case 2 -> 5 ; // 56 ticks
298
- case 3 -> 10 ; // 36 ticks
299
- case 4 -> 50 ; // 20 ticks
300
- };
301
291
getMainNode ().ifPresent (grid -> {
302
292
IEnergyService eg = grid .getEnergyService ();
303
293
IEnergySource src = this ;
304
294
295
+ final int speedFactor =
296
+ switch (this .upgrades .getInstalledUpgrades (AEItems .SPEED_CARD )) {
297
+ default -> 2 ; // 116 ticks
298
+ case 1 -> 3 ; // 83 ticks
299
+ case 2 -> 5 ; // 56 ticks
300
+ case 3 -> 10 ; // 36 ticks
301
+ case 4 -> 50 ; // 20 ticks
302
+ };
303
+
305
304
final int progressReq = MAX_PROCESSING_STEPS - this .getProcessingTime ();
306
305
final float powerRatio = progressReq < speedFactor ? (float ) progressReq / speedFactor : 1 ;
307
306
final int requiredTicks = Mth .ceil ((float ) MAX_PROCESSING_STEPS / speedFactor );
308
307
final int powerConsumption = Mth .floor (((float ) getTask ().getEnergy () / requiredTicks ) * powerRatio );
309
308
final double powerThreshold = powerConsumption - 0.01 ;
310
309
double powerReq = this .extractAEPower (powerConsumption , Actionable .SIMULATE , PowerMultiplier .CONFIG );
311
310
312
-
313
311
if (powerReq <= powerThreshold ) {
314
312
src = eg ;
315
313
powerReq = eg .extractAEPower (powerConsumption , Actionable .SIMULATE , PowerMultiplier .CONFIG );
@@ -318,36 +316,17 @@ public TickRateModulation tickingRequest(IGridNode iGridNode, int ticksSinceLast
318
316
if (powerReq > powerThreshold ) {
319
317
src .extractAEPower (powerConsumption , Actionable .MODULATE , PowerMultiplier .CONFIG );
320
318
this .setProcessingTime (this .getProcessingTime () + speedFactor );
321
- } else if (powerReq != 0 ){
319
+ } else if (powerReq != 0 ) {
322
320
var factor = Mth .floor (speedFactor / (powerConsumption - powerReq ));
323
321
if (factor > 1 ) {
324
- src .extractAEPower ((double ) (powerConsumption * factor ) / speedFactor , Actionable .MODULATE ,
322
+ src .extractAEPower (
323
+ (double ) (powerConsumption * factor ) / speedFactor ,
324
+ Actionable .MODULATE ,
325
325
PowerMultiplier .CONFIG );
326
326
this .setProcessingTime (this .getProcessingTime () + factor );
327
327
}
328
328
}
329
329
});
330
- if (!gridEnergy .get ()) {
331
- var storage = this .getEnergyStorage (null );
332
-
333
- final int progressReq = MAX_PROCESSING_STEPS - this .getProcessingTime ();
334
- final float powerRatio = progressReq < speedFactor ? (float ) progressReq / speedFactor : 1 ;
335
- final int requiredTicks = Mth .ceil ((float ) MAX_PROCESSING_STEPS / speedFactor );
336
- final int powerConsumption = Mth .floor (((float ) getTask ().getEnergy () / requiredTicks ) * powerRatio );
337
- final double powerThreshold = powerConsumption - 0.01 ;
338
- double powerReq = storage .extractEnergy (powerConsumption , Actionable .SIMULATE .isSimulate ());
339
-
340
- if (powerReq > powerThreshold ) {
341
- storage .extractEnergy (powerConsumption , Actionable .MODULATE .isSimulate ());
342
- this .setProcessingTime (this .getProcessingTime () + speedFactor );
343
- } else if (powerReq != 0 ) {
344
- var factor = Mth .floor (speedFactor / (powerConsumption - powerReq ));
345
- if (factor > 1 ) {
346
- storage .extractEnergy (powerConsumption * factor / speedFactor , Actionable .MODULATE .isSimulate ());
347
- this .setProcessingTime (this .getProcessingTime () + factor );
348
- }
349
- }
350
- }
351
330
352
331
if (this .getProcessingTime () >= this .getMaxProcessingTime ()) {
353
332
this .setProcessingTime (0 );
0 commit comments