Skip to content

Commit fda61ab

Browse files
authored
Merge branch 'master' into feature/cross-dimensional-reshuffle
2 parents 0091af1 + 5db81a7 commit fda61ab

File tree

6 files changed

+99
-65
lines changed

6 files changed

+99
-65
lines changed

dependencies.gradle

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
// Add your dependencies here
22

33
dependencies {
4-
implementation('com.github.GTNewHorizons:NotEnoughItems:2.8.85-GTNH:dev')
5-
implementation("com.github.GTNewHorizons:GTNHLib:0.9.47:dev")
4+
implementation('com.github.GTNewHorizons:NotEnoughItems:2.8.87-GTNH:dev')
5+
implementation("com.github.GTNewHorizons:GTNHLib:0.9.48:dev")
66
implementation('curse.maven:cofh-core-69162:2388751')
77

88
compileOnlyApi('com.github.GTNewHorizons:Angelica:2.1.16:dev')
@@ -11,14 +11,14 @@ dependencies {
1111
compileOnly('com.github.GTNewHorizons:BuildCraft:7.1.57:dev') {transitive = false}
1212
compileOnly('com.github.GTNewHorizons:ForestryMC:4.11.12:dev') {transitive = false} // required to compile CraftingV2Tests.java now
1313
compileOnly('com.github.GTNewHorizons:ForgeMultipart:1.7.3:dev') {transitive = false}
14-
compileOnly('com.github.GTNewHorizons:GT5-Unofficial:5.09.52.400:dev') {transitive = false}
14+
compileOnly('com.github.GTNewHorizons:GT5-Unofficial:5.09.52.411:dev') {transitive = false}
1515
compileOnly('com.github.GTNewHorizons:Jabba:1.5.18:dev') {transitive = false}
1616
compileOnly('com.github.GTNewHorizons:inventory-tweaks:1.7.1:api') {transitive = false}
17-
compileOnly('com.github.GTNewHorizons:OpenComputers:1.12.22-GTNH:api') {transitive = false}
17+
compileOnly('com.github.GTNewHorizons:OpenComputers:1.12.28-GTNH:api') {transitive = false}
1818
compileOnly('com.github.GTNewHorizons:waila:1.19.22:dev') {transitive = false}
1919
compileOnly('com.github.GTNewHorizons:Railcraft:9.17.25:api') {transitive = false}
2020
compileOnly('thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev') {transitive = false }
21-
compileOnly("com.github.GTNewHorizons:Backhand:1.8.7:dev") { transitive = false }
21+
compileOnly("com.github.GTNewHorizons:Backhand:1.8.8:dev") { transitive = false }
2222
compileOnly('net.industrial-craft:industrialcraft-2:2.2.828-experimental:api')
2323
compileOnly('curse.maven:minefactory-reloaded-66672:2366150')
2424
compileOnly('pneumaticCraft:PneumaticCraft-1.7.10:1.12.7-152:api') {transitive = false}
@@ -28,8 +28,8 @@ dependencies {
2828
compileOnly('com.github.GTNewHorizons:EnderIO:2.10.22:dev') { transitive = false }
2929
compileOnly(rfg.deobf('curse.maven:mekanism-268560:2475797')) // https://www.curseforge.com/minecraft/mc-mods/mekanism/files/2475797
3030
compileOnly(rfg.deobf('maven.modrinth:immibis-microblocks:59.1.2')) // https://modrinth.com/mod/immibis-microblocks/version/59.1.2
31-
compileOnly('com.github.GTNewHorizons:AE2FluidCraft-Rework:1.5.68-gtnh:dev') { transitive = false }
32-
compileOnly('com.github.GTNewHorizons:ae2stuff:0.10.18-GTNH:dev') {
31+
compileOnly('com.github.GTNewHorizons:AE2FluidCraft-Rework:1.5.71-gtnh:dev') { transitive = false }
32+
compileOnly('com.github.GTNewHorizons:ae2stuff:0.10.19-GTNH:dev') {
3333
exclude module: "Applied-Energistics-2-Unofficial"
3434
}
3535

@@ -52,7 +52,7 @@ dependencies {
5252
functionalTestImplementation('org.junit.platform:junit-platform-engine')
5353
functionalTestImplementation('org.junit.platform:junit-platform-launcher')
5454
functionalTestImplementation('org.junit.platform:junit-platform-reporting')
55-
functionalTestImplementation('com.github.GTNewHorizons:GT5-Unofficial:5.09.52.400:dev') {
55+
functionalTestImplementation('com.github.GTNewHorizons:GT5-Unofficial:5.09.52.411:dev') {
5656
exclude module: "Applied-Energistics-2-Unofficial"
5757
exclude module: "Hodgepodge"
5858
}
@@ -62,8 +62,8 @@ dependencies {
6262
runtimeOnlyNonPublishable('thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev') {
6363
exclude module: "Baubles"
6464
}
65-
runtimeOnlyNonPublishable('com.github.GTNewHorizons:ThaumicEnergistics:1.7.39-GTNH:dev') { transitive = false }
66-
runtimeOnlyNonPublishable('com.github.GTNewHorizons:AE2FluidCraft-Rework:1.5.68-gtnh:dev') { transitive = false }
65+
runtimeOnlyNonPublishable('com.github.GTNewHorizons:ThaumicEnergistics:1.7.41-GTNH:dev') { transitive = false }
66+
runtimeOnlyNonPublishable('com.github.GTNewHorizons:AE2FluidCraft-Rework:1.5.71-gtnh:dev') { transitive = false }
6767
runtimeOnlyNonPublishable('com.github.GTNewHorizons:NotEnoughEnergistics:1.7.26:dev') {
6868
exclude module: "Applied-Energistics-2-Unofficial"
6969
exclude module: "waila"

src/main/java/appeng/api/parts/ILevelEmitter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import appeng.api.storage.IMEMonitorHandlerReceiver;
1111
import appeng.api.storage.data.IAEStack;
1212
import appeng.tile.inventory.IIAEStackInventory;
13-
import appeng.util.LevelEmitterTypeFilter;
13+
import appeng.util.AEStackTypeFilter;
1414

1515
public interface ILevelEmitter
1616
extends IEnergyWatcherHost, IStackWatcherHost, ICraftingWatcherHost, IMEMonitorHandlerReceiver<IAEStack<?>>,
@@ -20,8 +20,8 @@ public interface ILevelEmitter
2020

2121
long getReportingValue();
2222

23-
default LevelEmitterTypeFilter getTypeFilters() {
24-
return new LevelEmitterTypeFilter();
23+
default AEStackTypeFilter getTypeFilters() {
24+
return new AEStackTypeFilter();
2525
}
2626

2727
void onChangeTypeFilters();

src/main/java/appeng/client/gui/implementations/GuiLevelEmitter.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@
4646
import appeng.core.sync.packets.PacketValueConfig;
4747
import appeng.util.calculators.ArithHelper;
4848
import appeng.util.calculators.Calculator;
49-
import it.unimi.dsi.fastutil.objects.Reference2BooleanMap;
5049

5150
public class GuiLevelEmitter extends GuiUpgradeable {
5251

@@ -309,14 +308,12 @@ protected void actionPerformed(final GuiButton btn) {
309308

310309
if (btn instanceof final TypeToggleButton tbtn) {
311310
final IAEStackType<?> type = this.typeToggleButtons.get(tbtn);
312-
final Reference2BooleanMap<IAEStackType<?>> filters = this.container.getTypeFilters().getFilters();
313311
final boolean notCraftingMode = this.bc.getInstalledUpgrades(Upgrades.CRAFTING) == 0;
314312
if (!notCraftingMode || this.config.getAEStack() != null) {
315313
return;
316314
}
317315
if (type != null) {
318-
final boolean next = !filters.getBoolean(type);
319-
filters.put(type, next);
316+
final boolean next = this.container.getTypeFilters().toggle(type);
320317
tbtn.setEnabled(next);
321318

322319
try {
@@ -376,7 +373,6 @@ private static boolean acceptType(VirtualMEPhantomSlot slot, IAEStackType<?> typ
376373

377374
private void initTypeToggleButtons(final int x, final int yStart) {
378375
this.typeToggleButtons.clear();
379-
final Reference2BooleanMap<IAEStackType<?>> filters = this.container.getTypeFilters().getFilters();
380376

381377
int y = yStart;
382378
for (final IAEStackType<?> type : AEStackTypeRegistry.getSortedTypes()) {
@@ -385,7 +381,7 @@ private void initTypeToggleButtons(final int x, final int yStart) {
385381
if (texture == null || icon == null) continue;
386382

387383
final TypeToggleButton btn = new TypeToggleButton(x, y, texture, icon, type.getDisplayName());
388-
btn.setEnabled(filters.getBoolean(type));
384+
btn.setEnabled(this.container.getTypeFilters().isEnabled(type));
389385
this.typeToggleButtons.put(btn, type);
390386
this.buttonList.add(btn);
391387

@@ -394,9 +390,8 @@ private void initTypeToggleButtons(final int x, final int yStart) {
394390
}
395391

396392
public void onUpdateTypeFilters() {
397-
final Reference2BooleanMap<IAEStackType<?>> filters = this.container.getTypeFilters().getFilters();
398393
for (final Map.Entry<TypeToggleButton, IAEStackType<?>> entry : this.typeToggleButtons.entrySet()) {
399-
final boolean enabled = filters.getBoolean(entry.getValue());
394+
final boolean enabled = this.container.getTypeFilters().isEnabled(entry.getValue());
400395
entry.getKey().setEnabled(enabled);
401396
}
402397
}

src/main/java/appeng/container/implementations/ContainerLevelEmitter.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,11 @@
4040
import appeng.container.slot.SlotInaccessible;
4141
import appeng.container.slot.SlotRestrictedInput;
4242
import appeng.tile.inventory.AppEngInternalInventory;
43-
import appeng.util.LevelEmitterTypeFilter;
43+
import appeng.util.AEStackTypeFilter;
4444
import appeng.util.Platform;
4545
import cpw.mods.fml.relauncher.Side;
4646
import cpw.mods.fml.relauncher.SideOnly;
4747
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
48-
import it.unimi.dsi.fastutil.objects.Reference2BooleanMap;
4948

5049
public class ContainerLevelEmitter extends ContainerUpgradeable implements IVirtualSlotHolder, IContainerSubGui {
5150

@@ -64,13 +63,13 @@ public class ContainerLevelEmitter extends ContainerUpgradeable implements IVirt
6463
public YesNo cmType;
6564

6665
@GuiSync(10)
67-
public LevelEmitterTypeFilter typeFilters;
66+
public AEStackTypeFilter typeFilters;
6867
private final IAEStack<?>[] configClientSlot = new IAEStack[1];
6968

7069
public ContainerLevelEmitter(final InventoryPlayer ip, final ILevelEmitter te) {
7170
super(ip, te);
7271
this.lvlEmitter = te;
73-
this.typeFilters = new LevelEmitterTypeFilter(this.lvlEmitter.getTypeFilters());
72+
this.typeFilters = new AEStackTypeFilter(this.lvlEmitter.getTypeFilters());
7473

7574
// sub gui copy paste
7675
this.primaryGuiButtonIcon = new SlotInaccessible(new AppEngInternalInventory(null, 1), 0, 0, -9000);
@@ -199,7 +198,7 @@ private void setLevelMode(final LevelType lvType) {
199198
this.lvType = lvType;
200199
}
201200

202-
public LevelEmitterTypeFilter getTypeFilters() {
201+
public AEStackTypeFilter getTypeFilters() {
203202
return this.typeFilters;
204203
}
205204

@@ -217,10 +216,9 @@ public void toggleTypeFilter(String typeId, EntityPlayer player) {
217216
return;
218217
}
219218

220-
final Reference2BooleanMap<IAEStackType<?>> filterMap = this.lvlEmitter.getTypeFilters().getFilters();
221-
filterMap.put(type, !filterMap.getBoolean(type));
219+
this.lvlEmitter.getTypeFilters().toggle(type);
222220
// Create a new instance so that GuiSync can detect changes
223-
this.typeFilters = new LevelEmitterTypeFilter(this.lvlEmitter.getTypeFilters());
221+
this.typeFilters = new AEStackTypeFilter(this.lvlEmitter.getTypeFilters());
224222
this.lvlEmitter.onChangeTypeFilters();
225223
}
226224

src/main/java/appeng/parts/automation/PartLevelEmitter.java

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -74,13 +74,12 @@
7474
import appeng.helpers.Reflected;
7575
import appeng.me.GridAccessException;
7676
import appeng.tile.inventory.IAEStackInventory;
77-
import appeng.util.LevelEmitterTypeFilter;
77+
import appeng.util.AEStackTypeFilter;
7878
import appeng.util.Platform;
7979
import appeng.util.SettingsFrom;
8080
import appeng.util.item.AEFluidStackType;
8181
import cpw.mods.fml.relauncher.Side;
8282
import cpw.mods.fml.relauncher.SideOnly;
83-
import it.unimi.dsi.fastutil.objects.Reference2BooleanMap;
8483

8584
public class PartLevelEmitter extends PartUpgradeable implements ILevelEmitter {
8685

@@ -104,7 +103,7 @@ public class PartLevelEmitter extends PartUpgradeable implements ILevelEmitter {
104103
private int lastWorkingTick = 0;
105104
private boolean delayedUpdatesQueued = false;
106105

107-
private final LevelEmitterTypeFilter typeFilters = new LevelEmitterTypeFilter();
106+
private final AEStackTypeFilter typeFilters = new AEStackTypeFilter();
108107

109108
@Reflected
110109
public PartLevelEmitter(final ItemStack is) {
@@ -268,7 +267,7 @@ private void configureWatchers() {
268267
IMEMonitor<?> monitor = this.getProxy().getStorage().getMEMonitor(type);
269268
if (monitor == null) continue;
270269

271-
if (myStack != null || this.typeFilters.getFilters().getBoolean(type)) {
270+
if (myStack != null || this.typeFilters.isEnabled(type)) {
272271
monitor.addListener(this, this.getProxy().getGrid());
273272
} else {
274273
monitor.removeListener(this);
@@ -304,20 +303,17 @@ private void updateReportingValue(IMEMonitor monitor) {
304303
if (myStack == null || monitor == null) {
305304
this.lastReportedValue = 0;
306305
try {
307-
final Reference2BooleanMap<IAEStackType<?>> filters = this.typeFilters.getFilters();
308306
final var storage = getProxy().getStorage();
309307

310-
outer: for (var entry : filters.reference2BooleanEntrySet()) {
311-
if (entry.getBooleanValue()) {
312-
IMEMonitor<?> validMonitor = storage.getMEMonitor(entry.getKey());
313-
if (validMonitor == null) continue;
314-
315-
for (IAEStack<?> stack : validMonitor.getStorageList()) {
316-
this.lastReportedValue += stack.getStackSize();
317-
if (this.lastReportedValue < 0) {
318-
this.lastReportedValue = Long.MAX_VALUE;
319-
break outer;
320-
}
308+
outer: for (IAEStackType<?> enabledType : this.typeFilters.getEnabledTypes()) {
309+
IMEMonitor<?> validMonitor = storage.getMEMonitor(enabledType);
310+
if (validMonitor == null) continue;
311+
312+
for (IAEStack<?> stack : validMonitor.getStorageList()) {
313+
this.lastReportedValue += stack.getStackSize();
314+
if (this.lastReportedValue < 0) {
315+
this.lastReportedValue = Long.MAX_VALUE;
316+
break outer;
321317
}
322318
}
323319
}
@@ -759,11 +755,14 @@ public void readFromNBT(final NBTTagCompound data) {
759755
this.prevState = data.getBoolean("prevState");
760756
this.config.readFromNBT(data, "config");
761757

762-
final boolean hasTypeFilters = data.hasKey(LevelEmitterTypeFilter.NBT_FILTERS);
758+
final boolean hasTypeFilters = data.hasKey(AEStackTypeFilter.NBT_FILTERS);
763759
if (hasTypeFilters) {
764760
this.typeFilters.readFromNBT(data);
765761
} else if (data.hasKey("TYPE_FILTER")) {
766762
this.applyLegacyTypeFilter(data.getString("TYPE_FILTER"));
763+
} else {
764+
final IAEStackType<?> thisType = this.getUltraLegacyType();
765+
this.typeFilters.setOnlyEnabled(thisType);
767766
}
768767
}
769768

@@ -838,20 +837,21 @@ public IAEStackInventory getAEInventoryByName(StorageName name) {
838837
}
839838

840839
@Override
841-
public LevelEmitterTypeFilter getTypeFilters() {
840+
public AEStackTypeFilter getTypeFilters() {
842841
return this.typeFilters;
843842
}
844843

845844
private void applyLegacyTypeFilter(final String typeName) {
846-
final Reference2BooleanMap<IAEStackType<?>> filters = this.typeFilters.getFilters();
847-
for (IAEStackType<?> type : filters.keySet()) {
848-
if ("ALL".equals(typeName)) {
849-
filters.put(type, true);
850-
} else if ("ITEMS".equals(typeName)) {
851-
filters.put(type, type == ITEM_STACK_TYPE);
852-
} else if ("FLUIDS".equals(typeName)) {
853-
filters.put(type, type == AEFluidStackType.FLUID_STACK_TYPE);
854-
}
845+
if ("ALL".equals(typeName)) {
846+
this.typeFilters.setAllEnabled(true);
847+
} else if ("ITEMS".equals(typeName)) {
848+
this.typeFilters.setOnlyEnabled(ITEM_STACK_TYPE);
849+
} else if ("FLUIDS".equals(typeName)) {
850+
this.typeFilters.setOnlyEnabled(AEFluidStackType.FLUID_STACK_TYPE);
855851
}
856852
}
853+
854+
protected IAEStackType<?> getUltraLegacyType() {
855+
return ITEM_STACK_TYPE;
856+
}
857857
}

0 commit comments

Comments
 (0)