Added rendering back, fixed lag issues with cables

This commit is contained in:
modmuss50 2015-06-28 19:02:31 +01:00
parent acb06afd1f
commit d53a2aeef1
13 changed files with 35 additions and 38 deletions

View file

@ -90,4 +90,5 @@ public class ModPartUtils {
}
return null;
}
}

View file

@ -104,11 +104,11 @@ public class FMPModPart extends TMultiPart implements TSlottedPart,
return cubes;
}
// @Override
// @SideOnly(Side.CLIENT)
// public void renderDynamic(Vector3 pos, float frame, int pass) {
// iModPart.renderDynamic(new Vecs3d(pos.x, pos.y, pos.z), frame);
// }
@Override
@SideOnly(Side.CLIENT)
public void renderDynamic(Vector3 pos, float frame, int pass) {
iModPart.renderDynamic(new Vecs3d(pos.x, pos.y, pos.z), frame);
}
@Override
public String getType() {
@ -178,14 +178,14 @@ public class FMPModPart extends TMultiPart implements TSlottedPart,
super.onRemoved();
}
// @Override
// public boolean renderStatic(Vector3 pos, int pass) {
// boolean render;
// RenderHelper.instance.setRenderCoords(getWorld(), (int) pos.x, (int) pos.y, (int) pos.z);
// render = iModPart.renderStatic(new Vecs3d((int) pos.x, (int) pos.y, (int) pos.z), RenderHelper.instance, pass);
// RenderHelper.instance.reset();
// return render;
// }
@Override
public boolean renderStatic(Vector3 pos, int pass) {
boolean render;
RenderHelper.instance.setRenderCoords(getWorld(), (int) pos.x, (int) pos.y, (int) pos.z);
render = iModPart.renderStatic(new Vecs3d((int) pos.x, (int) pos.y, (int) pos.z), RenderHelper.instance, pass);
RenderHelper.instance.reset();
return render;
}
@Override
public Iterable<ItemStack> getDrops() {
@ -199,4 +199,13 @@ public class FMPModPart extends TMultiPart implements TSlottedPart,
}
@Override
public void onPartChanged(TMultiPart part) {
super.onPartChanged(part);
if (iModPart.world == null || iModPart.location == null) {
iModPart.setWorld(world());
iModPart.setLocation(new Location(x(), y(), z()));
}
iModPart.nearByChange();
}
}

View file

@ -42,6 +42,7 @@ public class CablePart extends ModPart implements IEnergyConductor, INetworkTile
private boolean[] connections = new boolean[6];
public boolean addedToEnergyNet = false;
public ItemStack stack;
private boolean hasCheckedSinceStartup;
public int type = 0;//TODO save this to nbt and not use the constructor.
@ -93,12 +94,6 @@ public class CablePart extends ModPart implements IEnergyConductor, INetworkTile
@Override
public void addCollisionBoxesToList(List<Vecs3dCube> boxes, Entity entity) {
if (world != null || location != null) {
checkConnectedSides();
} else {
connectedSides = new HashMap<ForgeDirection, TileEntity>();
}
for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
if (connectedSides.containsKey(dir))
boxes.add(boundingBoxes[Functions.getIntDirFromDirection(dir)]);
@ -109,7 +104,6 @@ public class CablePart extends ModPart implements IEnergyConductor, INetworkTile
@Override
public List<Vecs3dCube> getSelectionBoxes() {
List<Vecs3dCube> vec3dCubeList = new ArrayList<Vecs3dCube>();
checkConnectedSides();
for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
if (connectedSides.containsKey(dir))
vec3dCubeList.add(boundingBoxes[Functions
@ -167,6 +161,13 @@ public class CablePart extends ModPart implements IEnergyConductor, INetworkTile
this.addedToEnergyNet = true;
nearByChange();
}
if(worldObj != null){
if(worldObj.getTotalWorldTime() % 40 == 0 || hasCheckedSinceStartup == false){
checkConnectedSides();
hasCheckedSinceStartup = true;
}
}
}
@Override
@ -182,7 +183,7 @@ public class CablePart extends ModPart implements IEnergyConductor, INetworkTile
this.addedToEnergyNet = true;
nearByChange();
}
checkConnectedSides();
}
@Override
@ -225,6 +226,9 @@ public class CablePart extends ModPart implements IEnergyConductor, INetworkTile
connectedSides.put(dir, te);
}
}
if(te != null){
te.getWorldObj().markBlockForUpdate(te.xCoord, te.yCoord, te.zCoord);
}
}
checkConnections(world, getX(), getY(), getZ());
getWorld().markBlockForUpdate(getX(), getY(), getZ());