Fixed some grinding wheel rotation direction

This commit is contained in:
Calclavia 2014-02-08 13:12:37 +08:00
parent 9d0fbdb272
commit a08f665dd1
7 changed files with 13 additions and 6 deletions

View file

@ -181,9 +181,9 @@ public class PartGear extends PartMechanical implements IMechanical, IMultiBlock
{
IMechanical instance = ((IMechanical) tileBehind).getInstance(placementSide.getOpposite());
if (instance != null && instance != this && instance.canConnect(placementSide.getOpposite(), this))
if (instance != null && instance != this && !(instance instanceof PartGearShaft) && instance.canConnect(placementSide.getOpposite(), this))
{
connections[placementSide.getOpposite().ordinal()] = instance;
connections[placementSide.ordinal()] = instance;
getNetwork().merge(instance.getNetwork());
}
@ -457,7 +457,6 @@ public class PartGear extends PartMechanical implements IMechanical, IMultiBlock
if (((PartGear) source).placementSide != placementSide)
{
TMultiPart part = tile().partMap(((PartGear) source).placementSide.ordinal());
if (part instanceof PartGear)

View file

@ -7,6 +7,7 @@ import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import net.minecraftforge.common.ForgeDirection;
import resonantinduction.mechanical.process.TileGrinderWheel;
import universalelectricity.api.net.IUpdate;
import universalelectricity.core.net.Network;
import universalelectricity.core.net.NetworkTickHandler;
@ -77,6 +78,7 @@ public class MechanicalNetwork extends Network<IMechanicalNetwork, IMechanical>
if (adjacentMech != null && adjacent != mechanical)
{
float ratio = adjacentMech.getRatio(dir.getOpposite(), mechanical) / mechanical.getRatio(dir, adjacentMech);
long torque = mechanical.getTorque();

View file

@ -64,6 +64,7 @@ public abstract class PartMechanical extends JCuboidPart implements JNormalOcclu
i++;
System.out.println("Connected with: " + i + ":" + getNetwork());
//efresh();
}

View file

@ -180,7 +180,7 @@ public abstract class TileMechanical extends TileAdvanced implements IMechanical
@Override
public boolean inverseRotation(ForgeDirection dir, IMechanical with)
{
return false;
return true;
}
@Override

View file

@ -79,7 +79,6 @@ public class BlockGrindingWheel extends BlockRotatable implements ITileEntityPro
// Move entity based on the direction of the block.
ForgeDirection dir = this.getDirection(world, x, y, z);
dir = ForgeDirection.getOrientation(!(dir.ordinal() % 2 == 0) ? dir.ordinal() - 1 : dir.ordinal()).getOpposite();
dir = WorldUtility.invertZ(dir);
float speed = tile.getAngularVelocity() / 20;
entity.addVelocity(dir.offsetX * speed, Math.random() * speed, dir.offsetZ * speed);
}

View file

@ -36,7 +36,6 @@ public class RenderGrinderWheel extends TileEntitySpecialRenderer
glScalef(0.51f, 0.5f, 0.5f);
ForgeDirection dir = tile.getDirection();
dir = ForgeDirection.getOrientation(!(dir.ordinal() % 2 == 0) ? dir.ordinal() - 1 : dir.ordinal());
dir = WorldUtility.invertZ(dir);
RenderUtility.rotateBlockBasedOnDirection(dir);
glRotatef((float) Math.toDegrees(tile.angle), 0, 0, 1);
RenderUtility.bind(Reference.BLOCK_TEXTURE_DIRECTORY + "planks_oak.png");

View file

@ -12,6 +12,7 @@ import resonantinduction.api.recipe.MachineRecipes.RecipeType;
import resonantinduction.api.recipe.RecipeResource;
import resonantinduction.core.Reference;
import resonantinduction.core.ResonantInduction;
import resonantinduction.mechanical.network.IMechanical;
import resonantinduction.mechanical.network.TileMechanical;
import universalelectricity.api.vector.Vector3;
import calclavia.lib.prefab.tile.IRotatable;
@ -176,4 +177,10 @@ public class TileGrinderWheel extends TileMechanical implements IRotatable
return getDirection().getRotation(ForgeDirection.UP) == from || getDirection().getRotation(ForgeDirection.DOWN) == from;
}
@Override
public boolean inverseRotation(ForgeDirection dir, IMechanical with)
{
return !(dir.ordinal() % 2 == 0);
}
}