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
|
@Override
|
||||||
public void onBlockAdded(World world, int x, int y, int z)
|
public void onBlockAdded(World world, int x, int y, int z)
|
||||||
{
|
{
|
||||||
TileEntity tile = world.getBlockTileEntity(x, y, z);
|
//TileEntity tile = world.getBlockTileEntity(x, y, z);
|
||||||
if (tile instanceof TileConveyorBelt)
|
//if (tile instanceof TileConveyorBelt)
|
||||||
((TileConveyorBelt) tile).node.reconstruct();
|
// ((TileConveyorBelt) tile).node.reconstruct();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -273,7 +273,7 @@ public class BlockConveyorBelt extends BlockTile
|
||||||
|
|
||||||
if (!world.isBlockIndirectlyGettingPowered(x, y, z))
|
if (!world.isBlockIndirectlyGettingPowered(x, y, z))
|
||||||
{
|
{
|
||||||
double maxSpeed = tile.getMoveVelocity() / 20;
|
double maxSpeed = 1;
|
||||||
|
|
||||||
if (maxSpeed > 0)
|
if (maxSpeed > 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -100,7 +100,7 @@ public class RenderConveyorBelt extends TileEntitySpecialRenderer implements ISi
|
||||||
bindTexture(name);
|
bindTexture(name);
|
||||||
GL11.glRotatef(180, 0f, 1f, 0f);
|
GL11.glRotatef(180, 0f, 1f, 0f);
|
||||||
GL11.glTranslatef(0f, -0.68f, 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
|
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");
|
ResourceLocation name = new ResourceLocation(Reference.DOMAIN, Reference.MODEL_PATH + "belt/frame" + frame + ".png");
|
||||||
bindTexture(name);
|
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
|
/** Conveyer belt TileEntity that allows entities of all kinds to be moved
|
||||||
*
|
*
|
||||||
* @author DarkGuardsman */
|
* @author DarkGuardsman */
|
||||||
public class TileConveyorBelt extends TileBase implements IEntityConveyor, IRotatable, INodeProvider, IPacketReceiverWithID
|
public class TileConveyorBelt extends TileBase implements IEntityConveyor, IRotatable, IPacketReceiverWithID
|
||||||
{
|
{
|
||||||
public enum BeltType
|
public enum BeltType
|
||||||
{
|
{
|
||||||
|
@ -56,12 +56,9 @@ public class TileConveyorBelt extends TileBase implements IEntityConveyor, IRota
|
||||||
|
|
||||||
private boolean markRefresh = true;
|
private boolean markRefresh = true;
|
||||||
|
|
||||||
public BeltNode node;
|
|
||||||
|
|
||||||
public TileConveyorBelt()
|
public TileConveyorBelt()
|
||||||
{
|
{
|
||||||
super(Material.iron);
|
super(Material.iron);
|
||||||
node = new BeltNode(this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -80,23 +77,21 @@ public class TileConveyorBelt extends TileBase implements IEntityConveyor, IRota
|
||||||
it.remove();
|
it.remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.node.torque = 1;
|
|
||||||
this.node.angularVelocity = 1;
|
|
||||||
|
|
||||||
/* DO ANIMATION AND EFFECTS */
|
/* 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)
|
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.
|
// Sync the animation. Slant belts are slower.
|
||||||
if (this.getBeltType() == BeltType.NORMAL || this.getBeltType() == BeltType.RAISED)
|
if (this.getBeltType() == BeltType.NORMAL || this.getBeltType() == BeltType.RAISED)
|
||||||
{
|
{
|
||||||
this.animationFrame = (int) (beltPercentage * MAX_FRAME);
|
|
||||||
if (this.animationFrame < 0)
|
if (this.animationFrame < 0)
|
||||||
this.animationFrame = 0;
|
this.animationFrame = 0;
|
||||||
if (this.animationFrame > MAX_FRAME)
|
if (this.animationFrame > MAX_FRAME)
|
||||||
|
@ -104,7 +99,6 @@ public class TileConveyorBelt extends TileBase implements IEntityConveyor, IRota
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
this.animationFrame = (int) (beltPercentage * MAX_SLANT_FRAME);
|
|
||||||
if (this.animationFrame < 0)
|
if (this.animationFrame < 0)
|
||||||
this.animationFrame = 0;
|
this.animationFrame = 0;
|
||||||
if (this.animationFrame > MAX_SLANT_FRAME)
|
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
|
@Override
|
||||||
public Packet getDescriptionPacket()
|
public Packet getDescriptionPacket()
|
||||||
{
|
{
|
||||||
|
@ -141,7 +127,7 @@ public class TileConveyorBelt extends TileBase implements IEntityConveyor, IRota
|
||||||
|
|
||||||
public void sendRefreshPacket()
|
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
|
@Override
|
||||||
|
@ -156,7 +142,7 @@ public class TileConveyorBelt extends TileBase implements IEntityConveyor, IRota
|
||||||
}
|
}
|
||||||
else if (id == PACKET_REFRESH)
|
else if (id == PACKET_REFRESH)
|
||||||
{
|
{
|
||||||
node.angle = data.readDouble();
|
//node.angle = data.readDouble();
|
||||||
return true;
|
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()
|
public int getAnimationFrame()
|
||||||
{
|
{
|
||||||
return this.animationFrame;
|
return this.animationFrame;
|
||||||
|
@ -228,7 +209,6 @@ public class TileConveyorBelt extends TileBase implements IEntityConveyor, IRota
|
||||||
slantType = BeltType.NORMAL;
|
slantType = BeltType.NORMAL;
|
||||||
}
|
}
|
||||||
this.slantType = slantType;
|
this.slantType = slantType;
|
||||||
node.reconstruct();
|
|
||||||
this.worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
|
this.worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue