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()); 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()); getNetwork().merge(instance.getNetwork());
} }
@ -457,7 +457,6 @@ public class PartGear extends PartMechanical implements IMechanical, IMultiBlock
if (((PartGear) source).placementSide != placementSide) if (((PartGear) source).placementSide != placementSide)
{ {
TMultiPart part = tile().partMap(((PartGear) source).placementSide.ordinal()); TMultiPart part = tile().partMap(((PartGear) source).placementSide.ordinal());
if (part instanceof PartGear) if (part instanceof PartGear)

View file

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

View file

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

View file

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

View file

@ -79,7 +79,6 @@ public class BlockGrindingWheel extends BlockRotatable implements ITileEntityPro
// Move entity based on the direction of the block. // Move entity based on the direction of the block.
ForgeDirection dir = this.getDirection(world, x, y, z); ForgeDirection dir = this.getDirection(world, x, y, z);
dir = ForgeDirection.getOrientation(!(dir.ordinal() % 2 == 0) ? dir.ordinal() - 1 : dir.ordinal()).getOpposite(); dir = ForgeDirection.getOrientation(!(dir.ordinal() % 2 == 0) ? dir.ordinal() - 1 : dir.ordinal()).getOpposite();
dir = WorldUtility.invertZ(dir);
float speed = tile.getAngularVelocity() / 20; float speed = tile.getAngularVelocity() / 20;
entity.addVelocity(dir.offsetX * speed, Math.random() * speed, dir.offsetZ * speed); 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); glScalef(0.51f, 0.5f, 0.5f);
ForgeDirection dir = tile.getDirection(); ForgeDirection dir = tile.getDirection();
dir = ForgeDirection.getOrientation(!(dir.ordinal() % 2 == 0) ? dir.ordinal() - 1 : dir.ordinal()); dir = ForgeDirection.getOrientation(!(dir.ordinal() % 2 == 0) ? dir.ordinal() - 1 : dir.ordinal());
dir = WorldUtility.invertZ(dir);
RenderUtility.rotateBlockBasedOnDirection(dir); RenderUtility.rotateBlockBasedOnDirection(dir);
glRotatef((float) Math.toDegrees(tile.angle), 0, 0, 1); glRotatef((float) Math.toDegrees(tile.angle), 0, 0, 1);
RenderUtility.bind(Reference.BLOCK_TEXTURE_DIRECTORY + "planks_oak.png"); 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.api.recipe.RecipeResource;
import resonantinduction.core.Reference; import resonantinduction.core.Reference;
import resonantinduction.core.ResonantInduction; import resonantinduction.core.ResonantInduction;
import resonantinduction.mechanical.network.IMechanical;
import resonantinduction.mechanical.network.TileMechanical; import resonantinduction.mechanical.network.TileMechanical;
import universalelectricity.api.vector.Vector3; import universalelectricity.api.vector.Vector3;
import calclavia.lib.prefab.tile.IRotatable; 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; return getDirection().getRotation(ForgeDirection.UP) == from || getDirection().getRotation(ForgeDirection.DOWN) == from;
} }
@Override
public boolean inverseRotation(ForgeDirection dir, IMechanical with)
{
return !(dir.ordinal() % 2 == 0);
}
} }