Skip to content

Commit bcedfc3

Browse files
author
Circulate233
committed
fix bug
1 parent baf2652 commit bcedfc3

13 files changed

Lines changed: 77 additions & 90 deletions

File tree

accesstransformer.cfg

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
public appeng.me.cache.EnergyGridCache$GridPowerStorage #GridPowerStorage

build.gradle

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@ plugins {
1010
id 'java-library'
1111
id 'maven-publish'
1212
id 'org.jetbrains.gradle.plugin.idea-ext' version '1.1.9'
13-
id 'com.gtnewhorizons.retrofuturagradle' version '1.4.1'
13+
id 'com.gtnewhorizons.retrofuturagradle' version '2.0.2'
1414
id 'org.jetbrains.changelog' version '2.2.1'
15+
id("net.minecraftforge.accesstransformers") version "5.0.3"
1516
}
1617

1718
apply from: 'gradle/scripts/helpers.gradle'

dependencies.gradle

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,11 @@ dependencies {
1212
compileOnly(rfg.deobf("curse.maven:RedstoneFlux-270789:2920436"))
1313
runtimeOnly(rfg.deobf("curse.maven:Cucumber-1.12.2-1.1.3-272335:2645867"))
1414
compileOnly(rfg.deobf("curse.maven:CodeChickenLib-1.12.2-3.2.4.1-universal-242818:2779848"))
15-
implementation(rfg.deobf("curse.maven:ae2-extended-life-570458:6302098"))
15+
implementation(rfg.deobf("curse.maven:ae2-extended-life-570458:6302098")) {
16+
accessTransformers.configure(it) {
17+
config = project.file('accesstransformer.cfg')
18+
}
19+
}
1620
compileOnly(rfg.deobf("curse.maven:ae2fluidcraft-rework-unofficial-1404390:7403081"))
1721
implementation(rfg.deobf("curse.maven:ae2-fluid-crafting-rework-623955:5504001"))
1822
compileOnly(rfg.deobf("curse.maven:baubles-227083:2518667"))
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.0-bin.zip
44
networkTimeout=10000
55
zipStoreBase=GRADLE_USER_HOME
66
zipStorePath=wrapper/dists

repositories.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,5 @@ repositories {
6464
name = "Zeitheron Maven"
6565
url = "https://maven.zeith.org"
6666
}
67+
gradlePluginPortal()
6768
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package com.circulation.random_complement.common.interfaces;
2+
3+
public interface RCEnergyGridCache {
4+
5+
boolean r$hasCreativeEnergyCell();
6+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package com.circulation.random_complement.common.interfaces;
2+
3+
public interface RCGrid {
4+
5+
boolean r$hasCreativeEnergyCell();
6+
}

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

Lines changed: 0 additions & 16 deletions
This file was deleted.

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

Lines changed: 5 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -4,50 +4,24 @@
44
import appeng.api.config.PowerMultiplier;
55
import appeng.api.networking.IGrid;
66
import appeng.me.cache.EnergyGridCache;
7-
import appeng.tile.networking.TileCreativeEnergyCell;
87
import com.circulation.random_complement.RCConfig;
9-
import com.circulation.random_complement.common.interfaces.RCGridPowerStorage;
8+
import com.circulation.random_complement.common.interfaces.RCEnergyGridCache;
9+
import com.circulation.random_complement.common.interfaces.RCGrid;
1010
import org.spongepowered.asm.mixin.Final;
1111
import org.spongepowered.asm.mixin.Mixin;
1212
import org.spongepowered.asm.mixin.Shadow;
1313
import org.spongepowered.asm.mixin.Unique;
1414
import org.spongepowered.asm.mixin.injection.At;
1515
import org.spongepowered.asm.mixin.injection.Inject;
16-
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
1716
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
1817

19-
import java.lang.reflect.Field;
20-
2118
@Mixin(value = EnergyGridCache.class, remap = false)
22-
public abstract class MixinEnergyGridCache {
23-
24-
@Unique
25-
private static Field r$localStorage;
26-
27-
static {
28-
try {
29-
r$localStorage = EnergyGridCache.class.getDeclaredField("localStorage");
30-
} catch (NoSuchFieldException ignored) {
31-
32-
}
33-
}
19+
public abstract class MixinEnergyGridCache implements RCEnergyGridCache {
3420

3521
@Shadow
3622
@Final
3723
private IGrid myGrid;
3824

39-
@Inject(method = "<init>", at = @At("TAIL"))
40-
public void onInit(IGrid g, CallbackInfo ci) {
41-
if (r$localStorage != null) {
42-
try {
43-
RCGridPowerStorage rg = (RCGridPowerStorage) r$localStorage.get(this);
44-
rg.r$setGrid(g);
45-
} catch (IllegalAccessException ignored) {
46-
47-
}
48-
}
49-
}
50-
5125
@Inject(method = "isNetworkPowered", at = @At("HEAD"), cancellable = true)
5226
public void isNetworkPowered(CallbackInfoReturnable<Boolean> cir) {
5327
if (RCConfig.AE2.debugEnergy || r$hasCreativeEnergyCell()) {
@@ -56,9 +30,8 @@ public void isNetworkPowered(CallbackInfoReturnable<Boolean> cir) {
5630
}
5731

5832
@Unique
59-
private boolean r$hasCreativeEnergyCell() {
60-
final var m = ((AccessorGrid) this.myGrid).r$getMachines().get(TileCreativeEnergyCell.class);
61-
return m != null && !m.isEmpty();
33+
public boolean r$hasCreativeEnergyCell() {
34+
return ((RCGrid) this.myGrid).r$hasCreativeEnergyCell();
6235
}
6336

6437
@Inject(method = "extractAEPower", at = @At("HEAD"), cancellable = true)
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package com.circulation.random_complement.mixin.ae2;
2+
3+
import appeng.me.Grid;
4+
import appeng.me.GridNode;
5+
import appeng.tile.networking.TileCreativeEnergyCell;
6+
import com.circulation.random_complement.common.interfaces.RCGrid;
7+
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet;
8+
import it.unimi.dsi.fastutil.objects.ObjectSet;
9+
import org.spongepowered.asm.mixin.Mixin;
10+
import org.spongepowered.asm.mixin.Unique;
11+
import org.spongepowered.asm.mixin.injection.At;
12+
import org.spongepowered.asm.mixin.injection.Inject;
13+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
14+
15+
@Mixin(value = Grid.class,remap = false)
16+
public class MixinGrid implements RCGrid {
17+
18+
@Unique
19+
private ObjectSet<TileCreativeEnergyCell> rc$ce = new ObjectOpenHashSet<>();
20+
21+
@Inject(method = "add",at = @At("HEAD"))
22+
public void add(GridNode gridNode, CallbackInfo ci) {
23+
if (gridNode.getMachine() instanceof TileCreativeEnergyCell t) {
24+
rc$ce.add(t);
25+
}
26+
}
27+
28+
@Inject(method = "remove",at = @At("HEAD"))
29+
public void remove(GridNode gridNode, CallbackInfo ci) {
30+
if (gridNode.getMachine() instanceof TileCreativeEnergyCell t) {
31+
rc$ce.remove(t);
32+
}
33+
}
34+
35+
@Override
36+
public boolean r$hasCreativeEnergyCell() {
37+
return rc$ce.isEmpty();
38+
}
39+
}

0 commit comments

Comments
 (0)