Compare commits

..

4 Commits

Author SHA1 Message Date
yueh c345826641 Reset the lastUsedChannels on a gridstorage change 2015-07-06 09:59:45 +02:00
yueh 9c3ca0e3d7 Splitted channeldata into two ints
Previously it did encode the current and previous used channels into the
same as well as mask it with 0xFF. Which lead to an overflow every 256
gridnodes requiring a channel. This will not happen at > 2^31

Also removes the need to bitshift them for every access.

Fixes #1510
2015-06-16 18:11:46 +02:00
thatsIch 52d62b8202 Merge pull request #1591 from thatsIch/e-update-to-bc-7
Updates BC to 7.0.9 for rv2
2015-06-14 18:19:03 +02:00
thatsIch 741b5bee1f Updates BC to 7.0.9
Fixes disabling of BC integration
2015-06-13 22:53:57 +02:00
5 changed files with 25 additions and 18 deletions
+1 -1
View File
@@ -33,7 +33,7 @@ fmp_version=1.1.1.324
code_chicken_lib_version=1.1.3.127
code_chicken_core_version=1.0.4.35
nei_version=1.0.4.90
bc_version=6.4.6
bc_version=7.0.9
#########################################################
# Self Compiled APIs #
+7 -1
View File
@@ -45,10 +45,16 @@ repositories {
url = "http://maven.tterrag.com/"
}
maven {
maven {
name = "RX14 Proxy"
url = "http://mvn.rx14.co.uk/repo/"
}
ivy {
name "BuildCraft"
artifactPattern "http://www.mod-buildcraft.com/releases/BuildCraft/[revision]/[module]-[revision]-[classifier].[ext]"
}
// CurseForge DNS for TE is not available or I am just being unlucky, code part can stay since this is applicable to any other curseforge mod though
// ivy {
// name = "CoFHLib"
@@ -1,6 +1,6 @@
/*
* This file is part of Applied Energistics 2.
* Copyright (c) 2013 - 2014, AlgorithmX2, All rights reserved.
* Copyright (c) 2013 - 2015, AlgorithmX2, All rights reserved.
*
* Applied Energistics 2 is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
@@ -27,7 +27,7 @@ public enum IntegrationType
RC( IntegrationSide.BOTH, "Railcraft", "Railcraft" ),
BC( IntegrationSide.BOTH, "BuildCraft", "BuildCraft|Silicon" ),
BC( IntegrationSide.BOTH, "BuildCraft", "BuildCraft|Core" ),
RF( IntegrationSide.BOTH, "RedstoneFlux Power - Tiles", "CoFHAPI" ),
@@ -31,6 +31,7 @@ import net.minecraftforge.common.util.ForgeDirection;
import cpw.mods.fml.common.event.FMLInterModComms;
import buildcraft.BuildCraftCore;
import buildcraft.BuildCraftEnergy;
import buildcraft.BuildCraftTransport;
import buildcraft.api.blueprints.BuilderAPI;
@@ -181,9 +182,9 @@ public final class BC extends BaseModule implements IBC
public void registerPowerP2P()
{
IP2PTunnelRegistry reg = AEApi.instance().registries().p2pTunnel();
reg.addNewAttunement( new ItemStack( BuildCraftEnergy.engineBlock, 1, 0 ), TunnelType.RF_POWER );
reg.addNewAttunement( new ItemStack( BuildCraftEnergy.engineBlock, 1, 1 ), TunnelType.RF_POWER );
reg.addNewAttunement( new ItemStack( BuildCraftEnergy.engineBlock, 1, 2 ), TunnelType.RF_POWER );
reg.addNewAttunement( new ItemStack( BuildCraftCore.engineBlock, 1, 0 ), TunnelType.RF_POWER );
reg.addNewAttunement( new ItemStack( BuildCraftCore.engineBlock, 1, 1 ), TunnelType.RF_POWER );
reg.addNewAttunement( new ItemStack( BuildCraftCore.engineBlock, 1, 2 ), TunnelType.RF_POWER );
reg.addNewAttunement( new ItemStack( BuildCraftTransport.pipePowerCobblestone ), TunnelType.RF_POWER );
reg.addNewAttunement( new ItemStack( BuildCraftTransport.pipePowerDiamond ), TunnelType.RF_POWER );
reg.addNewAttunement( new ItemStack( BuildCraftTransport.pipePowerGold ), TunnelType.RF_POWER );
+11 -11
View File
@@ -71,7 +71,8 @@ public class GridNode implements IGridNode, IPathItem
private Object visitorIterationNumber = null;
// connection criteria
private int compressedData = 0;
private int channelData = 0;
private int usedChannels = 0;
private int lastUsedChannels = 0;
public GridNode( IGridBlock what )
{
@@ -90,7 +91,7 @@ public class GridNode implements IGridNode, IPathItem
public int usedChannels()
{
return this.channelData >> 8;
return this.lastUsedChannels;
}
public Class<? extends IGridHost> getMachineClass()
@@ -358,7 +359,7 @@ public class GridNode implements IGridNode, IPathItem
@Override
public boolean meetsChannelRequirements()
{
return ( !this.gridProxy.getFlags().contains( GridFlags.REQUIRE_CHANNEL ) || this.getUsedChannels() > 0 );
return( !this.gridProxy.getFlags().contains( GridFlags.REQUIRE_CHANNEL ) || this.getUsedChannels() > 0 );
}
@Override
@@ -384,7 +385,7 @@ public class GridNode implements IGridNode, IPathItem
public int getUsedChannels()
{
return this.channelData & 0xff;
return this.usedChannels;
}
public void FindConnections()
@@ -581,7 +582,8 @@ public class GridNode implements IGridNode, IPathItem
public void setGridStorage( GridStorage s )
{
this.myStorage = s;
this.channelData = 0;
this.usedChannels = 0;
this.lastUsedChannels = 0;
}
@Override
@@ -600,7 +602,7 @@ public class GridNode implements IGridNode, IPathItem
{
if( zeroOut )
{
this.channelData &= ~0xff;
this.usedChannels = 0;
}
int idx = this.connections.indexOf( fast );
@@ -631,7 +633,7 @@ public class GridNode implements IGridNode, IPathItem
@Override
public void incrementChannelCount( int usedChannels )
{
this.channelData += usedChannels;
this.usedChannels += usedChannels;
}
@Override
@@ -650,8 +652,7 @@ public class GridNode implements IGridNode, IPathItem
if( this.getLastUsedChannels() != this.getUsedChannels() )
{
this.channelData &= 0xff;
this.channelData |= this.channelData << 8;
this.lastUsedChannels = this.usedChannels;
if( this.getInternalGrid() != null )
{
@@ -662,7 +663,7 @@ public class GridNode implements IGridNode, IPathItem
public int getLastUsedChannels()
{
return ( this.channelData >> 8 ) & 0xff;
return lastUsedChannels;
}
private static class MachineSecurityBreak implements Callable<Void>
@@ -683,7 +684,6 @@ public class GridNode implements IGridNode, IPathItem
}
}
private static class ConnectionComparator implements Comparator<IGridConnection>
{
private final IGridNode gn;