diff --git a/src/main/java/appeng/me/GridNode.java b/src/main/java/appeng/me/GridNode.java index 958685b8f..6bd41ff28 100644 --- a/src/main/java/appeng/me/GridNode.java +++ b/src/main/java/appeng/me/GridNode.java @@ -633,10 +633,10 @@ public class GridNode implements IGridNode, IPathItem this.usedChannels = 0; } - final int idx = this.connections.indexOf( fast ); + final int idx = this.connections.indexOf( (IGridConnection) fast ); if( idx > 0 ) { - this.connections.remove( fast ); + this.connections.remove( (IGridConnection) fast ); this.connections.add( 0, (IGridConnection) fast ); } } diff --git a/src/main/java/appeng/me/cache/CraftingGridCache.java b/src/main/java/appeng/me/cache/CraftingGridCache.java index 30ecf13b0..dcf4a1b98 100644 --- a/src/main/java/appeng/me/cache/CraftingGridCache.java +++ b/src/main/java/appeng/me/cache/CraftingGridCache.java @@ -42,6 +42,10 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Multimap; +import it.unimi.dsi.fastutil.objects.Object2ObjectMap; +import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; +import it.unimi.dsi.fastutil.objects.ObjectRBTreeSet; +import it.unimi.dsi.fastutil.objects.ObjectSet; import net.minecraft.world.World; import appeng.api.AEApi; @@ -105,8 +109,8 @@ public class CraftingGridCache implements ICraftingGrid, ICraftingProviderHelper private final Set craftingProviders = new HashSet<>(); private final Map craftingWatchers = new HashMap<>(); private final IGrid grid; - private final Map> craftingMethods = new HashMap<>(); - private final Map> craftableItems = new HashMap<>(); + private final Object2ObjectMap> craftingMethods = new Object2ObjectOpenHashMap<>(); + private final Object2ObjectMap> craftableItems = new Object2ObjectOpenHashMap<>(); private final Set emitableItems = new HashSet<>(); private final Map craftingLinks = new HashMap<>(); private final Multimap interests = HashMultimap.create(); @@ -160,11 +164,11 @@ public class CraftingGridCache implements ICraftingGrid, ICraftingProviderHelper { if( machine instanceof ICraftingWatcherHost ) { - final ICraftingWatcher craftingWatcher = this.craftingWatchers.get( machine ); + final ICraftingWatcher craftingWatcher = this.craftingWatchers.get( gridNode ); if( craftingWatcher != null ) { craftingWatcher.reset(); - this.craftingWatchers.remove( machine ); + this.craftingWatchers.remove( gridNode ); } } @@ -270,7 +274,7 @@ public class CraftingGridCache implements ICraftingGrid, ICraftingProviderHelper return; } - final Map> oldItems = this.craftableItems; + final Object2ObjectMap> oldItems = this.craftableItems; // erase list. this.craftingMethods.clear(); @@ -287,7 +291,7 @@ public class CraftingGridCache implements ICraftingGrid, ICraftingProviderHelper provider.provideCrafting( this ); } - final Map> tmpCraft = new HashMap<>(); + final Object2ObjectMap> tmpCraft = new Object2ObjectOpenHashMap<>(); // new craftables! for( final ICraftingPatternDetails details : this.craftingMethods.keySet() ) @@ -298,11 +302,11 @@ public class CraftingGridCache implements ICraftingGrid, ICraftingProviderHelper out.reset(); out.setCraftable( true ); - Set methods = tmpCraft.get( out ); + ObjectSet methods = tmpCraft.get( out ); if( methods == null ) { - tmpCraft.put( out, methods = new TreeSet<>( COMPARATOR ) ); + tmpCraft.put( out, methods = new ObjectRBTreeSet<>( COMPARATOR ) ); } methods.add( details ); @@ -310,7 +314,7 @@ public class CraftingGridCache implements ICraftingGrid, ICraftingProviderHelper } // make them immutable - for( final Entry> e : tmpCraft.entrySet() ) + for( final Entry> e : tmpCraft.entrySet() ) { this.craftableItems.put( e.getKey(), ImmutableList.copyOf( e.getValue() ) ); } @@ -635,7 +639,11 @@ public class CraftingGridCache implements ICraftingGrid, ICraftingProviderHelper public boolean hasCpu( final ICraftingCPU cpu ) { - return this.craftingCPUClusters.contains( cpu ); + if (cpu instanceof CraftingCPUCluster) + { + return this.craftingCPUClusters.contains( (CraftingCPUCluster) cpu ); + } + return false; } public GenericInterestManager getInterestManager() diff --git a/src/main/java/appeng/me/cache/GridStorageCache.java b/src/main/java/appeng/me/cache/GridStorageCache.java index 6693b80b8..713e909b9 100644 --- a/src/main/java/appeng/me/cache/GridStorageCache.java +++ b/src/main/java/appeng/me/cache/GridStorageCache.java @@ -101,12 +101,12 @@ public class GridStorageCache implements IStorageGrid if( machine instanceof IStackWatcherHost ) { - final IStackWatcher myWatcher = this.watchers.get( machine ); + final IStackWatcher myWatcher = this.watchers.get( node ); if( myWatcher != null ) { myWatcher.reset(); - this.watchers.remove( machine ); + this.watchers.remove( node ); } } } diff --git a/src/main/java/appeng/me/cache/PathGridCache.java b/src/main/java/appeng/me/cache/PathGridCache.java index 0ee8faff0..2891d6cc8 100644 --- a/src/main/java/appeng/me/cache/PathGridCache.java +++ b/src/main/java/appeng/me/cache/PathGridCache.java @@ -314,7 +314,7 @@ public class PathGridCache implements IPathingGrid int depth = 0; for( final IGridNode nodes : this.requireChannels ) { - if( !this.semiOpen.contains( nodes ) ) + if( !this.semiOpen.contains( (IPathItem) nodes ) ) { final IGridBlock gb = nodes.getGridBlock(); final EnumSet flags = gb.getFlags(); diff --git a/src/main/java/appeng/util/ReadOnlyCollection.java b/src/main/java/appeng/util/ReadOnlyCollection.java index 9692e889d..5499a93a7 100644 --- a/src/main/java/appeng/util/ReadOnlyCollection.java +++ b/src/main/java/appeng/util/ReadOnlyCollection.java @@ -56,6 +56,6 @@ public class ReadOnlyCollection implements IReadOnlyCollection @Override public boolean contains( final Object node ) { - return this.c.contains( node ); + return this.c.contains( (T) node ); } }