feat: use WAP interface instead of TileWireless

This commit is contained in:
Timo Ley 2022-12-03 23:18:40 +01:00
parent 8c0236bb29
commit 2a9af72cbe
5 changed files with 72 additions and 7 deletions

View File

@ -4,8 +4,6 @@ publishing {
mavenJava(MavenPublication) {
artifactId = project.archivesBaseName
from components.java
artifact devJar
artifact sourceJar
artifact javadocJar

View File

@ -0,0 +1,11 @@
package appeng.api.networking;
import java.util.Set;
import appeng.api.implementations.tiles.IWirelessAccessPoint;
public interface IWirelessCache extends IGridCache {
Set<IWirelessAccessPoint> getAccessPoints();
}

View File

@ -31,6 +31,7 @@ import appeng.api.features.IWirelessTermHandler;
import appeng.api.features.IWorldGen.WorldGenType;
import appeng.api.movable.IMovableRegistry;
import appeng.api.networking.IGridCacheRegistry;
import appeng.api.networking.IWirelessCache;
import appeng.api.networking.crafting.ICraftingGrid;
import appeng.api.networking.energy.IEnergyGrid;
import appeng.api.networking.pathing.IPathingGrid;
@ -528,6 +529,7 @@ public final class Registration {
gcr.registerGridCache(ISpatialCache.class, SpatialPylonCache.class);
gcr.registerGridCache(ISecurityGrid.class, SecurityCache.class);
gcr.registerGridCache(ICraftingGrid.class, CraftingGridCache.class);
gcr.registerGridCache(IWirelessCache.class, WirelessGridCache.class);
registries.externalStorage().addExternalStorageInterface(new AEExternalHandler());

View File

@ -18,6 +18,8 @@
package appeng.helpers;
import java.util.Set;
import appeng.api.AEApi;
import appeng.api.config.AccessRestriction;
import appeng.api.config.Actionable;
@ -29,7 +31,7 @@ import appeng.api.implementations.tiles.IWirelessAccessPoint;
import appeng.api.networking.IGrid;
import appeng.api.networking.IGridHost;
import appeng.api.networking.IGridNode;
import appeng.api.networking.IMachineSet;
import appeng.api.networking.IWirelessCache;
import appeng.api.networking.security.BaseActionSource;
import appeng.api.networking.security.IActionHost;
import appeng.api.networking.storage.IStorageGrid;
@ -43,7 +45,6 @@ import appeng.api.util.AECableType;
import appeng.api.util.DimensionalCoord;
import appeng.api.util.IConfigManager;
import appeng.container.interfaces.IInventorySlotAware;
import appeng.tile.networking.TileWireless;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
@ -285,12 +286,13 @@ public class WirelessTerminalGuiObject
return false;
}
final IMachineSet tw = this.targetGrid.getMachines(TileWireless.class);
//final IMachineSet tw = this.targetGrid.getMachines(TileWireless.class);
IWirelessCache cache = this.targetGrid.getCache(IWirelessCache.class);
final Set<IWirelessAccessPoint> tw = cache.getAccessPoints();
this.myWap = null;
for (final IGridNode n : tw) {
final IWirelessAccessPoint wap = (IWirelessAccessPoint) n.getMachine();
for (final IWirelessAccessPoint wap : tw) {
if (this.testWap(wap)) {
this.myWap = wap;
}

View File

@ -0,0 +1,52 @@
package appeng.me.cache;
import java.util.HashSet;
import java.util.Set;
import appeng.api.implementations.tiles.IWirelessAccessPoint;
import appeng.api.networking.IGrid;
import appeng.api.networking.IGridHost;
import appeng.api.networking.IGridNode;
import appeng.api.networking.IGridStorage;
import appeng.api.networking.IWirelessCache;
public class WirelessGridCache implements IWirelessCache {
Set<IWirelessAccessPoint> accessPoints = new HashSet<>();
public WirelessGridCache(final IGrid grid) {
}
@Override
public void onUpdateTick() {}
@Override
public void removeNode(IGridNode gridNode, IGridHost machine) {
if (machine instanceof IWirelessAccessPoint) {
accessPoints.remove(machine);
}
}
@Override
public void addNode(IGridNode gridNode, IGridHost machine) {
if (machine instanceof IWirelessAccessPoint) {
accessPoints.add((IWirelessAccessPoint) machine);
}
}
@Override
public void onSplit(IGridStorage destinationStorage) {}
@Override
public void onJoin(IGridStorage sourceStorage) {}
@Override
public void populateGridStorage(IGridStorage destinationStorage) {}
@Override
public Set<IWirelessAccessPoint> getAccessPoints() {
return new HashSet<>(accessPoints);
}
}