Removed node system from conveyor belts for the time being
This commit is contained in:
parent
7211a85d97
commit
9d84de4761
5 changed files with 14 additions and 124 deletions
|
@ -1,14 +0,0 @@
|
|||
package resonantinduction.mechanical.belt;
|
||||
|
||||
import resonant.lib.grid.TickingGrid;
|
||||
|
||||
/** @author Darkguardsman */
|
||||
public class BeltNetwork extends TickingGrid<BeltNode>
|
||||
{
|
||||
|
||||
public BeltNetwork(BeltNode node)
|
||||
{
|
||||
super(node, BeltNode.class);
|
||||
}
|
||||
|
||||
}
|
|
@ -1,76 +0,0 @@
|
|||
package resonantinduction.mechanical.belt;
|
||||
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import resonantinduction.mechanical.belt.TileConveyorBelt.BeltType;
|
||||
import resonantinduction.mechanical.energy.grid.MechanicalNode;
|
||||
import universalelectricity.api.vector.Vector3;
|
||||
import universalelectricity.api.vector.VectorWorld;
|
||||
|
||||
/** @author Darkguardsman */
|
||||
public class BeltNode extends MechanicalNode
|
||||
{
|
||||
public BeltNode(TileConveyorBelt parent)
|
||||
{
|
||||
super(parent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void doRecache()
|
||||
{
|
||||
connections.clear();
|
||||
TileConveyorBelt belt = ((TileConveyorBelt) parent);
|
||||
|
||||
for (int side = 2; side < 6; side++)
|
||||
{
|
||||
ForgeDirection dir = ForgeDirection.getOrientation(side);
|
||||
VectorWorld pos = (VectorWorld) new VectorWorld(belt).translate(dir);
|
||||
TileEntity tile = pos.getTileEntity();
|
||||
|
||||
if (dir == belt.getDirection() || dir == belt.getDirection().getOpposite())
|
||||
{
|
||||
if (dir == belt.getDirection())
|
||||
{
|
||||
if (belt.getBeltType() == BeltType.SLANT_DOWN)
|
||||
{
|
||||
pos.translate(new Vector3(0, -1, 0));
|
||||
}
|
||||
else if (belt.getBeltType() == BeltType.SLANT_UP)
|
||||
{
|
||||
pos.translate(new Vector3(0, 1, 0));
|
||||
}
|
||||
}
|
||||
else if (dir == belt.getDirection().getOpposite())
|
||||
{
|
||||
if (belt.getBeltType() == BeltType.SLANT_DOWN)
|
||||
{
|
||||
pos.translate(new Vector3(0, 1, 0));
|
||||
}
|
||||
else if (belt.getBeltType() == BeltType.SLANT_UP)
|
||||
{
|
||||
pos.translate(new Vector3(0, -1, 0));
|
||||
}
|
||||
}
|
||||
|
||||
tile = pos.getTileEntity(belt.worldObj);
|
||||
|
||||
if (tile instanceof TileConveyorBelt)
|
||||
{
|
||||
connections.put(((TileConveyorBelt) tile).getNode(BeltNode.class, dir.getOpposite()), dir);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canConnect(ForgeDirection from, Object source)
|
||||
{
|
||||
return from != ((TileConveyorBelt) parent).getDirection() && from != ((TileConveyorBelt) parent).getDirection().getOpposite();
|
||||
}
|
||||
|
||||
@Override
|
||||
public BeltNetwork newGrid()
|
||||
{
|
||||
return new BeltNetwork(this);
|
||||
}
|
||||
}
|
|
@ -36,9 +36,9 @@ public class BlockConveyorBelt extends BlockTile
|
|||
@Override
|
||||
public void onBlockAdded(World world, int x, int y, int z)
|
||||
{
|
||||
TileEntity tile = world.getBlockTileEntity(x, y, z);
|
||||
if (tile instanceof TileConveyorBelt)
|
||||
((TileConveyorBelt) tile).node.reconstruct();
|
||||
//TileEntity tile = world.getBlockTileEntity(x, y, z);
|
||||
//if (tile instanceof TileConveyorBelt)
|
||||
// ((TileConveyorBelt) tile).node.reconstruct();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -273,7 +273,7 @@ public class BlockConveyorBelt extends BlockTile
|
|||
|
||||
if (!world.isBlockIndirectlyGettingPowered(x, y, z))
|
||||
{
|
||||
double maxSpeed = tile.getMoveVelocity() / 20;
|
||||
double maxSpeed = 1;
|
||||
|
||||
if (maxSpeed > 0)
|
||||
{
|
||||
|
|
|
@ -100,7 +100,7 @@ public class RenderConveyorBelt extends TileEntitySpecialRenderer implements ISi
|
|||
bindTexture(name);
|
||||
GL11.glRotatef(180, 0f, 1f, 0f);
|
||||
GL11.glTranslatef(0f, -0.68f, 0f);
|
||||
MODEL.render(0.0625f, (float) Math.toRadians(tileEntity.node.angle), false, false, false, false);
|
||||
MODEL.render(0.0625f, 0 /* TODO add rotation */, false, false, false, false);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -122,7 +122,7 @@ public class RenderConveyorBelt extends TileEntitySpecialRenderer implements ISi
|
|||
}
|
||||
ResourceLocation name = new ResourceLocation(Reference.DOMAIN, Reference.MODEL_PATH + "belt/frame" + frame + ".png");
|
||||
bindTexture(name);
|
||||
MODEL.render(0.0625F, (float) Math.toRadians(tileEntity.node.angle), false, false, false, true);
|
||||
MODEL.render(0.0625F, 0 /* TODO add rotation */, false, false, false, true);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ import cpw.mods.fml.common.network.PacketDispatcher;
|
|||
/** Conveyer belt TileEntity that allows entities of all kinds to be moved
|
||||
*
|
||||
* @author DarkGuardsman */
|
||||
public class TileConveyorBelt extends TileBase implements IEntityConveyor, IRotatable, INodeProvider, IPacketReceiverWithID
|
||||
public class TileConveyorBelt extends TileBase implements IEntityConveyor, IRotatable, IPacketReceiverWithID
|
||||
{
|
||||
public enum BeltType
|
||||
{
|
||||
|
@ -56,12 +56,9 @@ public class TileConveyorBelt extends TileBase implements IEntityConveyor, IRota
|
|||
|
||||
private boolean markRefresh = true;
|
||||
|
||||
public BeltNode node;
|
||||
|
||||
public TileConveyorBelt()
|
||||
{
|
||||
super(Material.iron);
|
||||
node = new BeltNode(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -80,23 +77,21 @@ public class TileConveyorBelt extends TileBase implements IEntityConveyor, IRota
|
|||
it.remove();
|
||||
}
|
||||
}
|
||||
this.node.torque = 1;
|
||||
this.node.angularVelocity = 1;
|
||||
|
||||
/* DO ANIMATION AND EFFECTS */
|
||||
if (this.worldObj.isRemote && (node.angularVelocity != 0))
|
||||
if (this.worldObj.isRemote)
|
||||
{
|
||||
if (this.ticks % 10 == 0 && this.worldObj.getBlockId(this.xCoord - 1, this.yCoord, this.zCoord) != Mechanical.blockConveyorBelt.blockID && this.worldObj.getBlockId(xCoord, yCoord, zCoord - 1) != Mechanical.blockConveyorBelt.blockID)
|
||||
{
|
||||
worldObj.playSound(this.xCoord, this.yCoord, this.zCoord, Reference.PREFIX + "conveyor", 0.5f, 0.5f + 0.15f * (float) getMoveVelocity(), true);
|
||||
worldObj.playSound(this.xCoord, this.yCoord, this.zCoord, Reference.PREFIX + "conveyor", 0.5f, 0.5f + 0.15f * 1, true);
|
||||
}
|
||||
|
||||
double beltPercentage = node.angle / (2 * Math.PI);
|
||||
this.animationFrame += 1;
|
||||
//this.animationFrame = (int) (beltPercentage * MAX_SLANT_FRAME);
|
||||
|
||||
// Sync the animation. Slant belts are slower.
|
||||
if (this.getBeltType() == BeltType.NORMAL || this.getBeltType() == BeltType.RAISED)
|
||||
{
|
||||
this.animationFrame = (int) (beltPercentage * MAX_FRAME);
|
||||
{
|
||||
if (this.animationFrame < 0)
|
||||
this.animationFrame = 0;
|
||||
if (this.animationFrame > MAX_FRAME)
|
||||
|
@ -104,7 +99,6 @@ public class TileConveyorBelt extends TileBase implements IEntityConveyor, IRota
|
|||
}
|
||||
else
|
||||
{
|
||||
this.animationFrame = (int) (beltPercentage * MAX_SLANT_FRAME);
|
||||
if (this.animationFrame < 0)
|
||||
this.animationFrame = 0;
|
||||
if (this.animationFrame > MAX_SLANT_FRAME)
|
||||
|
@ -121,14 +115,6 @@ public class TileConveyorBelt extends TileBase implements IEntityConveyor, IRota
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public <N extends INode> N getNode(Class<? super N> nodeType, ForgeDirection from)
|
||||
{
|
||||
if (nodeType.isAssignableFrom(node.getClass()))
|
||||
return (N) node;
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Packet getDescriptionPacket()
|
||||
{
|
||||
|
@ -141,7 +127,7 @@ public class TileConveyorBelt extends TileBase implements IEntityConveyor, IRota
|
|||
|
||||
public void sendRefreshPacket()
|
||||
{
|
||||
PacketDispatcher.sendPacketToAllPlayers(ResonantInduction.PACKET_TILE.getPacketWithID(PACKET_REFRESH, this, node.angle));
|
||||
//PacketDispatcher.sendPacketToAllPlayers(ResonantInduction.PACKET_TILE.getPacketWithID(PACKET_REFRESH, this, node.angle));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -156,7 +142,7 @@ public class TileConveyorBelt extends TileBase implements IEntityConveyor, IRota
|
|||
}
|
||||
else if (id == PACKET_REFRESH)
|
||||
{
|
||||
node.angle = data.readDouble();
|
||||
//node.angle = data.readDouble();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -206,11 +192,6 @@ public class TileConveyorBelt extends TileBase implements IEntityConveyor, IRota
|
|||
}
|
||||
}
|
||||
|
||||
public double getMoveVelocity()
|
||||
{
|
||||
return Math.abs(node.getAngularVelocity());
|
||||
}
|
||||
|
||||
public int getAnimationFrame()
|
||||
{
|
||||
return this.animationFrame;
|
||||
|
@ -228,7 +209,6 @@ public class TileConveyorBelt extends TileBase implements IEntityConveyor, IRota
|
|||
slantType = BeltType.NORMAL;
|
||||
}
|
||||
this.slantType = slantType;
|
||||
node.reconstruct();
|
||||
this.worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue