Merge branch 'master' of https://github.com/aidancbrady/Mekanism
This commit is contained in:
commit
4b5c8498a3
4 changed files with 34 additions and 19 deletions
|
@ -138,9 +138,9 @@ public class TileEntityElectricChest extends TileEntityElectricBlock implements
|
||||||
@Override
|
@Override
|
||||||
public int[] getAccessibleSlotsFromSide(int side)
|
public int[] getAccessibleSlotsFromSide(int side)
|
||||||
{
|
{
|
||||||
if(side == 0)
|
if(side == 0 || !canAccess())
|
||||||
{
|
{
|
||||||
return new int[] {54};
|
return new int[] {55};
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
int[] ret = new int[55];
|
int[] ret = new int[55];
|
||||||
|
|
|
@ -96,7 +96,7 @@ public class TileEntityEnergyCube extends TileEntityElectricBlock implements IEn
|
||||||
|
|
||||||
for(ForgeDirection dir : ForgeDirection.values())
|
for(ForgeDirection dir : ForgeDirection.values())
|
||||||
{
|
{
|
||||||
if(dir != ForgeDirection.getOrientation(facing))
|
if(dir != getOutputtingSide())
|
||||||
{
|
{
|
||||||
set.add(dir);
|
set.add(dir);
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,7 @@ import mekanism.common.tileentity.TileEntityLogisticalTransporter;
|
||||||
import mekanism.common.transporter.TransporterPathfinder.Pathfinder.DestChecker;
|
import mekanism.common.transporter.TransporterPathfinder.Pathfinder.DestChecker;
|
||||||
import mekanism.common.transporter.TransporterStack.Path;
|
import mekanism.common.transporter.TransporterStack.Path;
|
||||||
import mekanism.common.util.TransporterUtils;
|
import mekanism.common.util.TransporterUtils;
|
||||||
|
import net.minecraft.inventory.IInventory;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.ForgeDirection;
|
import net.minecraftforge.common.ForgeDirection;
|
||||||
|
@ -69,7 +70,7 @@ public final class TransporterPathfinder
|
||||||
|
|
||||||
if(!found)
|
if(!found)
|
||||||
{
|
{
|
||||||
destinations.add(new Destination(currentPath, dist));
|
destinations.add(new Destination(currentPath, dist, true));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -104,9 +105,15 @@ public final class TransporterPathfinder
|
||||||
public List<Object3D> path = new ArrayList<Object3D>();
|
public List<Object3D> path = new ArrayList<Object3D>();
|
||||||
public double score;
|
public double score;
|
||||||
|
|
||||||
public Destination(ArrayList<Object3D> list, double d)
|
public Destination(ArrayList<Object3D> list, double d, boolean inv)
|
||||||
{
|
{
|
||||||
path = (List<Object3D>)list.clone();
|
path = (List<Object3D>)list.clone();
|
||||||
|
|
||||||
|
if(inv)
|
||||||
|
{
|
||||||
|
Collections.reverse(path);
|
||||||
|
}
|
||||||
|
|
||||||
score = d;
|
score = d;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -128,11 +135,11 @@ public final class TransporterPathfinder
|
||||||
@Override
|
@Override
|
||||||
public int compareTo(Destination dest)
|
public int compareTo(Destination dest)
|
||||||
{
|
{
|
||||||
if(dest.score < score)
|
if(score < dest.score)
|
||||||
{
|
{
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
else if(dest.score > score)
|
else if(score > dest.score)
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -174,13 +181,21 @@ public final class TransporterPathfinder
|
||||||
{
|
{
|
||||||
TileEntity tile = pointer.getFromSide(side).getTileEntity(worldObj);
|
TileEntity tile = pointer.getFromSide(side).getTileEntity(worldObj);
|
||||||
|
|
||||||
if(TransporterUtils.canInsert(tile, transportStack.color, transportStack.itemStack, side.ordinal(), false) && !(tile instanceof TileEntityLogisticalTransporter))
|
if(tile != null)
|
||||||
{
|
{
|
||||||
destsFound.add(Object3D.get(tile));
|
if(Object3D.get(tile).equals(transportStack.originalLocation))
|
||||||
}
|
{
|
||||||
else if(transportStack.canInsertToTransporter(tile) && !iterated.contains(Object3D.get(tile)))
|
continue;
|
||||||
{
|
}
|
||||||
loop(Object3D.get(tile));
|
|
||||||
|
if(TransporterUtils.canInsert(tile, transportStack.color, transportStack.itemStack, side.ordinal(), false))
|
||||||
|
{
|
||||||
|
destsFound.add(Object3D.get(tile));
|
||||||
|
}
|
||||||
|
else if(transportStack.canInsertToTransporter(tile) && !iterated.contains(Object3D.get(tile)))
|
||||||
|
{
|
||||||
|
loop(Object3D.get(tile));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -212,9 +227,9 @@ public final class TransporterPathfinder
|
||||||
{
|
{
|
||||||
Pathfinder p = new Pathfinder(checker, start.worldObj, obj, Object3D.get(start), stack);
|
Pathfinder p = new Pathfinder(checker, start.worldObj, obj, Object3D.get(start), stack);
|
||||||
|
|
||||||
if(p.getPath() != null && p.getPath().size() >= 2)
|
if(p.getPath().size() >= 2)
|
||||||
{
|
{
|
||||||
paths.add(new Destination(p.getPath(), p.finalScore));
|
paths.add(new Destination(p.getPath(), p.finalScore, false));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -341,7 +356,7 @@ public final class TransporterPathfinder
|
||||||
for(int i = 0; i < 6; i++)
|
for(int i = 0; i < 6; i++)
|
||||||
{
|
{
|
||||||
ForgeDirection direction = ForgeDirection.getOrientation(i);
|
ForgeDirection direction = ForgeDirection.getOrientation(i);
|
||||||
Object3D neighbor = finalNode.translate(direction.offsetX, direction.offsetY, direction.offsetZ);
|
Object3D neighbor = start.translate(direction.offsetX, direction.offsetY, direction.offsetZ);
|
||||||
|
|
||||||
if(!transportStack.canInsertToTransporter(neighbor.getTileEntity(worldObj)) && (!neighbor.equals(finalNode) || !destChecker.isValid(transportStack, i, neighbor.getTileEntity(worldObj))))
|
if(!transportStack.canInsertToTransporter(neighbor.getTileEntity(worldObj)) && (!neighbor.equals(finalNode) || !destChecker.isValid(transportStack, i, neighbor.getTileEntity(worldObj))))
|
||||||
{
|
{
|
||||||
|
@ -474,7 +489,7 @@ public final class TransporterPathfinder
|
||||||
Pathfinder p = new Pathfinder(checker, start.worldObj, stack.homeLocation, Object3D.get(start), stack);
|
Pathfinder p = new Pathfinder(checker, start.worldObj, stack.homeLocation, Object3D.get(start), stack);
|
||||||
List<Object3D> path = p.getPath();
|
List<Object3D> path = p.getPath();
|
||||||
|
|
||||||
if(path != null)
|
if(path.size() >= 2)
|
||||||
{
|
{
|
||||||
stack.pathType = Path.HOME;
|
stack.pathType = Path.HOME;
|
||||||
return path;
|
return path;
|
||||||
|
|
|
@ -98,7 +98,7 @@ public class TransporterStack
|
||||||
nbtTags.setInteger("progress", progress);
|
nbtTags.setInteger("progress", progress);
|
||||||
nbtTags.setCompoundTag("originalLocation", originalLocation.write(new NBTTagCompound()));
|
nbtTags.setCompoundTag("originalLocation", originalLocation.write(new NBTTagCompound()));
|
||||||
|
|
||||||
if(nbtTags.hasKey("homeLocation"))
|
if(homeLocation != null)
|
||||||
{
|
{
|
||||||
nbtTags.setCompoundTag("homeLocation", homeLocation.write(new NBTTagCompound()));
|
nbtTags.setCompoundTag("homeLocation", homeLocation.write(new NBTTagCompound()));
|
||||||
}
|
}
|
||||||
|
@ -117,7 +117,7 @@ public class TransporterStack
|
||||||
progress = nbtTags.getInteger("progress");
|
progress = nbtTags.getInteger("progress");
|
||||||
originalLocation = Object3D.read(nbtTags.getCompoundTag("originalLocation"));
|
originalLocation = Object3D.read(nbtTags.getCompoundTag("originalLocation"));
|
||||||
|
|
||||||
if(homeLocation != null)
|
if(nbtTags.hasKey("homeLocation"))
|
||||||
{
|
{
|
||||||
homeLocation = Object3D.read(nbtTags.getCompoundTag("homeLocation"));
|
homeLocation = Object3D.read(nbtTags.getCompoundTag("homeLocation"));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue