Skip to content

Commit

Permalink
refactor IMultiblockAbilityPart to reduce list instantiations
Browse files Browse the repository at this point in the history
  • Loading branch information
ghzdude committed Jul 26, 2024
1 parent 026f494 commit 3bdf62b
Show file tree
Hide file tree
Showing 31 changed files with 119 additions and 115 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import it.unimi.dsi.fastutil.objects.ObjectArrayList;
import org.jetbrains.annotations.NotNull;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

Expand Down Expand Up @@ -92,9 +93,10 @@ public void determineOrderedFluidOutputs() {
}
MetaTileEntityMultiblockPart part = fluidExportParts.get(exportIndex);
if (part.getPos().getY() == y) {
List<IFluidTank> hatchTanks = new ArrayList<>();
// noinspection unchecked
List<? extends IFluidTank> hatchTanks = ((IMultiblockAbilityPart<IFluidTank>) part)
.registerAbilities(MultiblockAbility.EXPORT_FLUIDS);
((IMultiblockAbilityPart<IFluidTank>) part)
.registerAbilities(MultiblockAbility.EXPORT_FLUIDS, hatchTanks);
orderedHandlerList.add(new FluidTankList(false, hatchTanks));
tankList.addAll(hatchTanks);
exportIndex++;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,5 @@ public interface IMultiblockAbilityPart<T> extends IMultiblockPart {
return Collections.singletonList(getAbility());
}

@NotNull
List<? extends T> registerAbilities(@NotNull MultiblockAbility<? extends T> key);
void registerAbilities(@NotNull MultiblockAbility<T> key, @NotNull List<T> abilities);
}
Original file line number Diff line number Diff line change
Expand Up @@ -359,7 +359,7 @@ public void checkStructurePattern() {

List abilityInstancesList = abilities.computeIfAbsent(ability,
k -> new ArrayList<>());
abilityInstancesList.addAll(abilityPart.registerAbilities(ability));
abilityPart.registerAbilities(ability, abilityInstancesList);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@
import org.jetbrains.annotations.Nullable;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

import static gregtech.api.capability.GregtechDataCodes.AMP_INDEX;
Expand Down Expand Up @@ -172,9 +171,10 @@ public MultiblockAbility<IPassthroughHatch> getAbility() {
}

@Override
public @NotNull List<? extends IPassthroughHatch> registerAbilities(
@NotNull MultiblockAbility<? extends IPassthroughHatch> multiblockAbility) {
return Collections.singletonList(this);
public void registerAbilities(
@NotNull MultiblockAbility<IPassthroughHatch> multiblockAbility,
@NotNull List<IPassthroughHatch> abilities) {
abilities.add(this);
}

@NotNull
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import java.util.Collections;
import java.util.List;

public class MetaTileEntityHull extends MetaTileEntityMultiblockPart
Expand Down Expand Up @@ -118,9 +117,10 @@ public MultiblockAbility<IPassthroughHatch> getAbility() {
}

@Override
public @NotNull List<? extends IPassthroughHatch> registerAbilities(
@NotNull MultiblockAbility<? extends IPassthroughHatch> multiblockAbility) {
return Collections.singletonList(this);
public void registerAbilities(
@NotNull MultiblockAbility<IPassthroughHatch> multiblockAbility,
@NotNull List<IPassthroughHatch> abilities) {
abilities.add(this);
}

@NotNull
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import java.util.Collections;
import java.util.List;

public class MetaTileEntityPumpHatch extends MetaTileEntityMultiblockPart
Expand Down Expand Up @@ -105,9 +104,10 @@ public ICubeRenderer getBaseTexture() {
}

@Override
public @NotNull List<? extends IFluidTank> registerAbilities(
@NotNull MultiblockAbility<? extends IFluidTank> multiblockAbility) {
return Collections.singletonList(exportFluids.getTankAt(0));
public void registerAbilities(
@NotNull MultiblockAbility<IFluidTank> multiblockAbility,
@NotNull List<IFluidTank> abilities) {
abilities.add(exportFluids.getTankAt(0));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import java.util.Collections;
import java.util.List;

public class MetaTileEntityTankValve extends MetaTileEntityMultiblockPart
Expand Down Expand Up @@ -130,9 +129,10 @@ public MultiblockAbility<IFluidHandler> getAbility() {
}

@Override
public @NotNull List<? extends IFluidHandler> registerAbilities(
@NotNull MultiblockAbility<? extends IFluidHandler> multiblockAbility) {
return Collections.singletonList(this.getImportFluids());
public void registerAbilities(
@NotNull MultiblockAbility<IFluidHandler> multiblockAbility,
@NotNull List<IFluidHandler> abilities) {
abilities.add(this.getImportFluids());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import java.util.Collections;
import java.util.List;

public class MetaTileEntityAutoMaintenanceHatch extends MetaTileEntityMultiblockPart implements
Expand Down Expand Up @@ -113,9 +112,10 @@ public MultiblockAbility<IMaintenanceHatch> getAbility() {
}

@Override
public @NotNull List<? extends IMaintenanceHatch> registerAbilities(
@NotNull MultiblockAbility<? extends IMaintenanceHatch> multiblockAbility) {
return Collections.singletonList(this);
public void registerAbilities(
@NotNull MultiblockAbility<IMaintenanceHatch> multiblockAbility,
@NotNull List<IMaintenanceHatch> abilities) {
abilities.add(this);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
import org.jetbrains.annotations.Nullable;

import java.util.Collection;
import java.util.Collections;
import java.util.List;

public class MetaTileEntityComputationHatch extends MetaTileEntityMultiblockPart implements
Expand Down Expand Up @@ -159,9 +158,10 @@ public MultiblockAbility<IOpticalComputationHatch> getAbility() {
}

@Override
public @NotNull List<? extends IOpticalComputationHatch> registerAbilities(
@NotNull MultiblockAbility<? extends IOpticalComputationHatch> multiblockAbility) {
return Collections.singletonList(this);
public void registerAbilities(
@NotNull MultiblockAbility<IOpticalComputationHatch> multiblockAbility,
@NotNull List<IOpticalComputationHatch> abilities) {
abilities.add(this);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -213,9 +213,10 @@ public MultiblockAbility<IDataAccessHatch> getAbility() {
}

@Override
public @NotNull List<? extends IDataAccessHatch> registerAbilities(
@NotNull MultiblockAbility<? extends IDataAccessHatch> multiblockAbility) {
return Collections.singletonList(this);
public void registerAbilities(
@NotNull MultiblockAbility<IDataAccessHatch> multiblockAbility,
@NotNull List<IDataAccessHatch> abilities) {
abilities.add(this);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import java.util.Collections;
import java.util.List;

public class MetaTileEntityEnergyHatch extends MetaTileEntityMultiblockPart
Expand Down Expand Up @@ -102,9 +101,10 @@ public MultiblockAbility<IEnergyContainer> getAbility() {
}

@Override
public @NotNull List<? extends IEnergyContainer> registerAbilities(
@NotNull MultiblockAbility<? extends IEnergyContainer> multiblockAbility) {
return Collections.singletonList(energyContainer);
public void registerAbilities(
@NotNull MultiblockAbility<IEnergyContainer> multiblockAbility,
@NotNull List<IEnergyContainer> abilities) {
abilities.add(energyContainer);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -258,13 +258,13 @@ public MultiblockAbility<IFluidTank> getAbility() {
}

@Override
public @NotNull List<? extends IFluidTank> registerAbilities(@NotNull MultiblockAbility<? extends IFluidTank> key) {
public void registerAbilities(@NotNull MultiblockAbility<IFluidTank> key,
@NotNull List<IFluidTank> abilities) {
if (key.equals(MultiblockAbility.EXPORT_FLUIDS)) {
return Collections.singletonList(this.fluidTank);
abilities.add(this.fluidTank);
} else if (key.equals(MultiblockAbility.IMPORT_FLUIDS)) {
return this.dualHandler.unwrap();
abilities.addAll(this.dualHandler.unwrap());
}
return Collections.emptyList();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -251,15 +251,14 @@ public void receiveCustomData(int dataId, PacketBuffer buf) {
}

@Override
public @NotNull List<? extends IItemHandlerModifiable> registerAbilities(
@NotNull MultiblockAbility<? extends IItemHandlerModifiable> key) {
List<IItemHandlerModifiable> abilityList = new ArrayList<>();
public void registerAbilities(
@NotNull MultiblockAbility<IItemHandlerModifiable> key,
@NotNull List<IItemHandlerModifiable> abilities) {
if (this.hasGhostCircuitInventory() && this.actualImportItems != null) {
abilityList.add(isExportHatch ? this.exportItems : this.actualImportItems);
abilities.add(isExportHatch ? this.exportItems : this.actualImportItems);
} else {
abilityList.add(isExportHatch ? this.exportItems : this.importItems);
abilities.add(isExportHatch ? this.exportItems : this.importItems);
}
return abilityList;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,9 +78,10 @@ public MultiblockAbility<ILaserContainer> getAbility() {
}

@Override
public @NotNull List<? extends ILaserContainer> registerAbilities(
@NotNull MultiblockAbility<? extends ILaserContainer> multiblockAbility) {
return Collections.singletonList(this.buffer);
public void registerAbilities(
@NotNull MultiblockAbility<ILaserContainer> multiblockAbility,
@NotNull List<ILaserContainer> abilities) {
abilities.add(this.buffer);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import java.util.Collections;
import java.util.List;

public class MetaTileEntityMachineHatch extends MetaTileEntityMultiblockNotifiablePart
Expand All @@ -53,9 +52,10 @@ public MultiblockAbility<IItemHandlerModifiable> getAbility() {
}

@Override
public @NotNull List<? extends IItemHandlerModifiable> registerAbilities(
@NotNull MultiblockAbility<? extends IItemHandlerModifiable> multiblockAbility) {
return Collections.singletonList(machineHandler);
public void registerAbilities(
@NotNull MultiblockAbility<IItemHandlerModifiable> multiblockAbility,
@NotNull List<IItemHandlerModifiable> abilities) {
abilities.add(machineHandler);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.function.Consumer;
Expand Down Expand Up @@ -499,9 +498,10 @@ public MultiblockAbility<IMaintenanceHatch> getAbility() {
}

@Override
public @NotNull List<? extends IMaintenanceHatch> registerAbilities(
@NotNull MultiblockAbility<? extends IMaintenanceHatch> multiblockAbility) {
return Collections.singletonList(this);
public void registerAbilities(
@NotNull MultiblockAbility<IMaintenanceHatch> multiblockAbility,
@NotNull List<IMaintenanceHatch> abilities) {
abilities.add(this);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import java.util.Collections;
import java.util.List;

public class MetaTileEntityMufflerHatch extends MetaTileEntityMultiblockPart implements
Expand Down Expand Up @@ -155,9 +154,10 @@ public MultiblockAbility<IMufflerHatch> getAbility() {
}

@Override
public @NotNull List<? extends IMufflerHatch> registerAbilities(
@NotNull MultiblockAbility<? extends IMufflerHatch> multiblockAbility) {
return Collections.singletonList(this);
public void registerAbilities(
@NotNull MultiblockAbility<IMufflerHatch> multiblockAbility,
@NotNull List<IMufflerHatch> abilities) {
abilities.add(this);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -186,9 +186,10 @@ public MultiblockAbility<IFluidTank> getAbility() {
}

@Override
public @NotNull List<? extends IFluidTank> registerAbilities(
@NotNull MultiblockAbility<? extends IFluidTank> multiblockAbility) {
return fluidTankList.getFluidTanks();
public void registerAbilities(
@NotNull MultiblockAbility<IFluidTank> multiblockAbility,
@NotNull List<IFluidTank> abilities) {
abilities.addAll(fluidTankList.getFluidTanks());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import java.util.Collections;
import java.util.List;

public class MetaTileEntityObjectHolder extends MetaTileEntityMultiblockNotifiablePart
Expand Down Expand Up @@ -86,9 +85,10 @@ public MultiblockAbility<IObjectHolder> getAbility() {
}

@Override
public @NotNull List<? extends IObjectHolder> registerAbilities(
@NotNull MultiblockAbility<? extends IObjectHolder> multiblockAbility) {
return Collections.singletonList(this);
public void registerAbilities(
@NotNull MultiblockAbility<IObjectHolder> multiblockAbility,
@NotNull List<IObjectHolder> abilities) {
abilities.add(this);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@
import org.jetbrains.annotations.Nullable;

import java.util.Collection;
import java.util.Collections;
import java.util.List;

public class MetaTileEntityOpticalDataHatch extends MetaTileEntityMultiblockNotifiablePart implements
Expand Down Expand Up @@ -136,9 +135,10 @@ public MultiblockAbility<IOpticalDataAccessHatch> getAbility() {
}

@Override
public @NotNull List<? extends IOpticalDataAccessHatch> registerAbilities(
@NotNull MultiblockAbility<? extends IOpticalDataAccessHatch> multiblockAbility) {
return Collections.singletonList(this);
public void registerAbilities(
@NotNull MultiblockAbility<IOpticalDataAccessHatch> multiblockAbility,
@NotNull List<IOpticalDataAccessHatch> abilities) {
abilities.add(this);
}

@Override
Expand Down
Loading

0 comments on commit 3bdf62b

Please sign in to comment.