improve cable performance
This commit is contained in:
@@ -41,9 +41,9 @@ public class GuiController extends GuiContainer {
|
|||||||
int energy = controller.getEnergyStored(null);
|
int energy = controller.getEnergyStored(null);
|
||||||
int maxEnergy = controller.getMaxEnergyStored(null);
|
int maxEnergy = controller.getMaxEnergyStored(null);
|
||||||
|
|
||||||
int height = (int) ((float) energy / (float) maxEnergy * (float) barHeight);
|
int newBarHeight = (int) ((float) energy / (float) maxEnergy * (float) barHeight);
|
||||||
|
|
||||||
drawTexturedModalRect(barX, barY + barHeight - height, 178, 0, barWidth, height);
|
drawTexturedModalRect(barX, barY + barHeight - newBarHeight, 178, 0, barWidth, newBarHeight);
|
||||||
|
|
||||||
fontRendererObj.drawString("Controller", x + 7, y + 7, 4210752);
|
fontRendererObj.drawString("Controller", x + 7, y + 7, 4210752);
|
||||||
fontRendererObj.drawString("Inventory", x + 7, y + 96, 4210752);
|
fontRendererObj.drawString("Inventory", x + 7, y + 96, 4210752);
|
||||||
|
@@ -9,12 +9,11 @@ import storagecraft.render.model.CableModel;
|
|||||||
import storagecraft.tile.TileCable;
|
import storagecraft.tile.TileCable;
|
||||||
|
|
||||||
public class BlockCableRenderer extends TileEntitySpecialRenderer {
|
public class BlockCableRenderer extends TileEntitySpecialRenderer {
|
||||||
|
public static final CableModel CABLE_MODEL = new CableModel();
|
||||||
public static final ResourceLocation CABLE_RESOURCE = new ResourceLocation("storagecraft:textures/blocks/cable.png");
|
public static final ResourceLocation CABLE_RESOURCE = new ResourceLocation("storagecraft:textures/blocks/cable.png");
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float scale) {
|
public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float scale) {
|
||||||
CableModel model = new CableModel((TileCable) tile);
|
|
||||||
|
|
||||||
GL11.glPushMatrix();
|
GL11.glPushMatrix();
|
||||||
GL11.glTranslatef((float) x, (float) y, (float) z);
|
GL11.glTranslatef((float) x, (float) y, (float) z);
|
||||||
|
|
||||||
@@ -23,7 +22,7 @@ public class BlockCableRenderer extends TileEntitySpecialRenderer {
|
|||||||
|
|
||||||
Minecraft.getMinecraft().renderEngine.bindTexture(CABLE_RESOURCE);
|
Minecraft.getMinecraft().renderEngine.bindTexture(CABLE_RESOURCE);
|
||||||
|
|
||||||
model.render(null, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F);
|
CABLE_MODEL.render((TileCable) tile, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F);
|
||||||
|
|
||||||
GL11.glPopMatrix();
|
GL11.glPopMatrix();
|
||||||
}
|
}
|
||||||
|
@@ -2,13 +2,10 @@ package storagecraft.render.model;
|
|||||||
|
|
||||||
import net.minecraft.client.model.ModelBase;
|
import net.minecraft.client.model.ModelBase;
|
||||||
import net.minecraft.client.model.ModelRenderer;
|
import net.minecraft.client.model.ModelRenderer;
|
||||||
import net.minecraft.entity.Entity;
|
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
import storagecraft.tile.TileCable;
|
import storagecraft.tile.TileCable;
|
||||||
|
|
||||||
public class CableModel extends ModelBase {
|
public class CableModel extends ModelBase {
|
||||||
private TileCable cable;
|
|
||||||
|
|
||||||
private ModelRenderer core;
|
private ModelRenderer core;
|
||||||
private ModelRenderer up;
|
private ModelRenderer up;
|
||||||
private ModelRenderer down;
|
private ModelRenderer down;
|
||||||
@@ -17,9 +14,7 @@ public class CableModel extends ModelBase {
|
|||||||
private ModelRenderer south;
|
private ModelRenderer south;
|
||||||
private ModelRenderer west;
|
private ModelRenderer west;
|
||||||
|
|
||||||
public CableModel(TileCable cable) {
|
public CableModel() {
|
||||||
this.cable = cable;
|
|
||||||
|
|
||||||
core = new ModelRenderer(this, 0, 0);
|
core = new ModelRenderer(this, 0, 0);
|
||||||
core.addBox(6F, 6F, 6F, 4, 4, 4);
|
core.addBox(6F, 6F, 6F, 4, 4, 4);
|
||||||
core.setTextureSize(16, 16);
|
core.setTextureSize(16, 16);
|
||||||
@@ -49,8 +44,7 @@ public class CableModel extends ModelBase {
|
|||||||
west.setTextureSize(16, 16);
|
west.setTextureSize(16, 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public void render(TileCable cable, float f, float f1, float f2, float f3, float f4, float f5) {
|
||||||
public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) {
|
|
||||||
core.render(f5);
|
core.render(f5);
|
||||||
|
|
||||||
if (cable != null) {
|
if (cable != null) {
|
||||||
|
@@ -27,15 +27,17 @@ public class TileCable extends TileSC {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public List<IMachine> findMachines(TileController controller) {
|
public List<IMachine> findMachines(TileController controller) {
|
||||||
return findMachines(new ArrayList(), controller);
|
|
||||||
}
|
|
||||||
|
|
||||||
private List<IMachine> findMachines(List<Vec3> visited, TileController controller) {
|
|
||||||
List<IMachine> machines = new ArrayList<IMachine>();
|
List<IMachine> machines = new ArrayList<IMachine>();
|
||||||
|
|
||||||
|
findMachinesInternal(new ArrayList<Vec3>(), machines, controller);
|
||||||
|
|
||||||
|
return machines;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void findMachinesInternal(List<Vec3> visited, List<IMachine> machines, TileController controller) {
|
||||||
for (Vec3 visitedBlock : visited) {
|
for (Vec3 visitedBlock : visited) {
|
||||||
if (visitedBlock.xCoord == xCoord && visitedBlock.yCoord == yCoord && visitedBlock.zCoord == zCoord) {
|
if (visitedBlock.xCoord == xCoord && visitedBlock.yCoord == yCoord && visitedBlock.zCoord == zCoord) {
|
||||||
return machines;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -65,12 +67,10 @@ public class TileCable extends TileSC {
|
|||||||
|
|
||||||
visited.add(Vec3.createVectorHelper(x, y, z));
|
visited.add(Vec3.createVectorHelper(x, y, z));
|
||||||
} else if (tile instanceof TileCable) {
|
} else if (tile instanceof TileCable) {
|
||||||
machines.addAll(((TileCable) tile).findMachines(visited, controller));
|
((TileCable) tile).findMachinesInternal(visited, machines, controller);
|
||||||
} else if (tile instanceof TileController && (x != controller.xCoord || y != controller.yCoord || z != controller.zCoord)) {
|
} else if (tile instanceof TileController && (x != controller.xCoord || y != controller.yCoord || z != controller.zCoord)) {
|
||||||
worldObj.createExplosion(null, x, y, z, 4.5f, true);
|
worldObj.createExplosion(null, x, y, z, 4.5f, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return machines;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -59,9 +59,9 @@ public class TileController extends TileSC implements IEnergyHandler, INetworkTi
|
|||||||
for (IMachine machine : connectedMachines) {
|
for (IMachine machine : connectedMachines) {
|
||||||
energyUsage += machine.getEnergyUsage();
|
energyUsage += machine.getEnergyUsage();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
storage.extractEnergy(getEnergyUsage(), false);
|
storage.extractEnergy(energyUsage, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onDestroyed() {
|
public void onDestroyed() {
|
||||||
@@ -76,6 +76,10 @@ public class TileController extends TileSC implements IEnergyHandler, INetworkTi
|
|||||||
connectedMachines.clear();
|
connectedMachines.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<IMachine> getMachines() {
|
||||||
|
return connectedMachines;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void readFromNBT(NBTTagCompound nbt) {
|
public void readFromNBT(NBTTagCompound nbt) {
|
||||||
super.readFromNBT(nbt);
|
super.readFromNBT(nbt);
|
||||||
|
Reference in New Issue
Block a user