Prioritise faster paths, by making cost inversely proportional to speed.
This commit is contained in:
parent
068e4b58a7
commit
36f0607d5e
5 changed files with 8 additions and 13 deletions
|
@ -29,5 +29,5 @@ public interface ILogisticalTransporter extends IGridTransmitter<IInventory, Inv
|
|||
|
||||
public boolean canReceiveFrom(TileEntity tileEntity, ForgeDirection side);
|
||||
|
||||
public int getCost();
|
||||
public double getCost();
|
||||
}
|
||||
|
|
|
@ -415,17 +415,14 @@ public final class TransporterPathfinder
|
|||
openSet.remove(currentNode);
|
||||
closedSet.add(currentNode);
|
||||
|
||||
for(int i = 0; i < 6; i++)
|
||||
for(ForgeDirection direction : ForgeDirection.VALID_DIRECTIONS)
|
||||
{
|
||||
ForgeDirection direction = ForgeDirection.getOrientation(i);
|
||||
Coord4D neighbor = currentNode.getFromSide(direction);
|
||||
|
||||
if(transportStack.canInsertToTransporter(neighbor.getTileEntity(worldObj), direction))
|
||||
{
|
||||
TileEntity tile = neighbor.getTileEntity(worldObj);
|
||||
double tentativeG = gScore.get(currentNode) + currentNode.distanceTo(neighbor);
|
||||
|
||||
tentativeG += ((ITransporterTile)tile).getTransmitter().getCost();
|
||||
double tentativeG = gScore.get(currentNode) + ((ITransporterTile)tile).getTransmitter().getCost();
|
||||
|
||||
if(closedSet.contains(neighbor))
|
||||
{
|
||||
|
@ -435,8 +432,6 @@ public final class TransporterPathfinder
|
|||
}
|
||||
}
|
||||
|
||||
TileEntity currTile = currentNode.getTileEntity(worldObj);
|
||||
|
||||
if(!openSet.contains(neighbor) || tentativeG < gScore.get(neighbor))
|
||||
{
|
||||
navMap.put(neighbor, currentNode);
|
||||
|
@ -445,7 +440,7 @@ public final class TransporterPathfinder
|
|||
openSet.add(neighbor);
|
||||
}
|
||||
}
|
||||
else if(neighbor.equals(finalNode) && destChecker.isValid(transportStack, i, neighbor.getTileEntity(worldObj)))
|
||||
else if(neighbor.equals(finalNode) && destChecker.isValid(transportStack, direction.ordinal(), neighbor.getTileEntity(worldObj)))
|
||||
{
|
||||
side = direction;
|
||||
results = reconstructPath(navMap, currentNode);
|
||||
|
|
|
@ -373,7 +373,7 @@ public class MultipartTransporter extends MultipartTransmitter<IInventory, Inven
|
|||
}
|
||||
|
||||
@Override
|
||||
public int getCost()
|
||||
public double getCost()
|
||||
{
|
||||
return getPart().getCost();
|
||||
}
|
||||
|
|
|
@ -444,8 +444,8 @@ public class PartLogisticalTransporter extends PartTransmitter<IInventory, Inven
|
|||
return (MultipartTransporter)transmitterDelegate;
|
||||
}
|
||||
|
||||
public int getCost()
|
||||
public double getCost()
|
||||
{
|
||||
return 1;
|
||||
return 5.D / tier.speed;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -38,7 +38,7 @@ public class PartRestrictiveTransporter extends PartLogisticalTransporter
|
|||
}
|
||||
|
||||
@Override
|
||||
public int getCost()
|
||||
public double getCost()
|
||||
{
|
||||
return 1000;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue