Work on Rotary Condensentrator, fix IC2 energy integration (mostly)

This commit is contained in:
Aidan Brady 2013-11-27 18:17:44 -05:00
parent 22fe896bcd
commit 419a295096
19 changed files with 452 additions and 34 deletions

View file

@ -53,6 +53,7 @@ import mekanism.client.render.tileentity.RenderMechanicalPipe;
import mekanism.client.render.tileentity.RenderMetallurgicInfuser; import mekanism.client.render.tileentity.RenderMetallurgicInfuser;
import mekanism.client.render.tileentity.RenderObsidianTNT; import mekanism.client.render.tileentity.RenderObsidianTNT;
import mekanism.client.render.tileentity.RenderPressurizedTube; import mekanism.client.render.tileentity.RenderPressurizedTube;
import mekanism.client.render.tileentity.RenderRotaryCondensentrator;
import mekanism.client.render.tileentity.RenderUniversalCable; import mekanism.client.render.tileentity.RenderUniversalCable;
import mekanism.client.sound.Sound; import mekanism.client.sound.Sound;
import mekanism.client.sound.SoundHandler; import mekanism.client.sound.SoundHandler;
@ -91,6 +92,7 @@ import mekanism.common.tileentity.TileEntityObsidianTNT;
import mekanism.common.tileentity.TileEntityOsmiumCompressor; import mekanism.common.tileentity.TileEntityOsmiumCompressor;
import mekanism.common.tileentity.TileEntityPressurizedTube; import mekanism.common.tileentity.TileEntityPressurizedTube;
import mekanism.common.tileentity.TileEntityPurificationChamber; import mekanism.common.tileentity.TileEntityPurificationChamber;
import mekanism.common.tileentity.TileEntityRotaryCondensentrator;
import mekanism.common.tileentity.TileEntityTeleporter; import mekanism.common.tileentity.TileEntityTeleporter;
import mekanism.common.tileentity.TileEntityUniversalCable; import mekanism.common.tileentity.TileEntityUniversalCable;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
@ -251,6 +253,7 @@ public class ClientProxy extends CommonProxy
ClientRegistry.registerTileEntity(TileEntityLogisticalSorter.class, "LogisticalSorter", new RenderLogisticalSorter()); ClientRegistry.registerTileEntity(TileEntityLogisticalSorter.class, "LogisticalSorter", new RenderLogisticalSorter());
ClientRegistry.registerTileEntity(TileEntityBin.class, "Bin", new RenderBin()); ClientRegistry.registerTileEntity(TileEntityBin.class, "Bin", new RenderBin());
ClientRegistry.registerTileEntity(TileEntityDigitalMiner.class, "DigitalMiner", new RenderDigitalMiner()); ClientRegistry.registerTileEntity(TileEntityDigitalMiner.class, "DigitalMiner", new RenderDigitalMiner());
ClientRegistry.registerTileEntity(TileEntityRotaryCondensentrator.class, "RotaryCondensentrator", new RenderRotaryCondensentrator());
} }
@Override @Override
@ -299,6 +302,8 @@ public class ClientProxy extends CommonProxy
return new GuiCombiner(player.inventory, (TileEntityAdvancedElectricMachine)tileEntity); return new GuiCombiner(player.inventory, (TileEntityAdvancedElectricMachine)tileEntity);
case 6: case 6:
return new GuiCrusher(player.inventory, (TileEntityElectricMachine)tileEntity); return new GuiCrusher(player.inventory, (TileEntityElectricMachine)tileEntity);
case 7:
//return new GuiRotaryCondensentrator(player.inventory, (TileEntityRotaryCondensentrator)tileEntity); TODO
case 8: case 8:
return new GuiEnergyCube(player.inventory, (TileEntityEnergyCube)tileEntity); return new GuiEnergyCube(player.inventory, (TileEntityEnergyCube)tileEntity);
case 9: case 9:

View file

@ -0,0 +1,229 @@
package mekanism.client.model;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT)
public class ModelRotaryCondensentrator extends ModelBase
{
ModelRenderer GasBottleLid1;
ModelRenderer GasBottleLid2;
ModelRenderer GasBottleDecor1;
ModelRenderer GasBottleDecor2;
ModelRenderer GasBottleDecor3;
ModelRenderer GasBottleDecor4;
ModelRenderer GasBottle1;
ModelRenderer GasBottle2;
ModelRenderer GasBottleBot1;
ModelRenderer GasBottleBot2;
ModelRenderer LiqBottleLid1;
ModelRenderer LiqBottleLid2;
ModelRenderer LiqBottleBot1;
ModelRenderer LiqBottleBot2;
ModelRenderer LiqBottle2;
ModelRenderer LiqBottle1;
ModelRenderer LiqBottleDecor1;
ModelRenderer LiqBottleDecor2;
ModelRenderer LiqBottleDecor3;
ModelRenderer LiqBottleDecor4;
ModelRenderer GasInput;
ModelRenderer MidSection1;
ModelRenderer MidSection2;
ModelRenderer LiquidOutput;
ModelRenderer MidSection3;
public ModelRotaryCondensentrator()
{
textureWidth = 128;
textureHeight = 128;
GasBottleLid1 = new ModelRenderer(this, 0, 40);
GasBottleLid1.addBox(0F, 0F, 0F, 6, 1, 6);
GasBottleLid1.setRotationPoint(-7F, 11F, 1F);
GasBottleLid1.setTextureSize(128, 128);
GasBottleLid1.mirror = true;
setRotation(GasBottleLid1, 0F, 0F, 0F);
GasBottleLid2 = new ModelRenderer(this, 0, 40);
GasBottleLid2.addBox(0F, 0F, 0F, 6, 1, 6);
GasBottleLid2.setRotationPoint(1F, 11F, 1F);
GasBottleLid2.setTextureSize(128, 128);
GasBottleLid2.mirror = true;
setRotation(GasBottleLid2, 0F, 0F, 0F);
GasBottleDecor1 = new ModelRenderer(this, 0, 33);
GasBottleDecor1.addBox(0F, 0F, 0F, 5, 1, 5);
GasBottleDecor1.setRotationPoint(1.5F, 21F, 1.5F);
GasBottleDecor1.setTextureSize(128, 128);
GasBottleDecor1.mirror = true;
setRotation(GasBottleDecor1, 0F, 0F, 0F);
GasBottleDecor2 = new ModelRenderer(this, 0, 33);
GasBottleDecor2.addBox(0F, 0F, 0F, 5, 1, 5);
GasBottleDecor2.setRotationPoint(1.5F, 13F, 1.5F);
GasBottleDecor2.setTextureSize(128, 128);
GasBottleDecor2.mirror = true;
setRotation(GasBottleDecor2, 0F, 0F, 0F);
GasBottleDecor3 = new ModelRenderer(this, 0, 33);
GasBottleDecor3.addBox(0F, 0F, 0F, 5, 1, 5);
GasBottleDecor3.setRotationPoint(-6.5F, 21F, 1.5F);
GasBottleDecor3.setTextureSize(128, 128);
GasBottleDecor3.mirror = true;
setRotation(GasBottleDecor3, 0F, 0F, 0F);
GasBottleDecor4 = new ModelRenderer(this, 0, 33);
GasBottleDecor4.addBox(0F, 0F, 0F, 5, 1, 5);
GasBottleDecor4.setRotationPoint(-6.5F, 13F, 1.5F);
GasBottleDecor4.setTextureSize(128, 128);
GasBottleDecor4.mirror = true;
setRotation(GasBottleDecor4, 0F, 0F, 0F);
GasBottle1 = new ModelRenderer(this, 0, 48);
GasBottle1.addBox(0F, 0F, 0F, 4, 11, 4);
GasBottle1.setRotationPoint(-6F, 12F, 2F);
GasBottle1.setTextureSize(128, 128);
GasBottle1.mirror = true;
setRotation(GasBottle1, 0F, 0F, 0F);
GasBottle2 = new ModelRenderer(this, 0, 48);
GasBottle2.addBox(0F, 0F, 0F, 4, 11, 4);
GasBottle2.setRotationPoint(2F, 12F, 2F);
GasBottle2.setTextureSize(128, 128);
GasBottle2.mirror = true;
setRotation(GasBottle2, 0F, 0F, 0F);
GasBottleBot1 = new ModelRenderer(this, 0, 40);
GasBottleBot1.addBox(0F, 0F, 0F, 6, 1, 6);
GasBottleBot1.setRotationPoint(-7F, 23F, 1F);
GasBottleBot1.setTextureSize(128, 128);
GasBottleBot1.mirror = true;
setRotation(GasBottleBot1, 0F, 0F, 0F);
GasBottleBot2 = new ModelRenderer(this, 0, 40);
GasBottleBot2.addBox(0F, 0F, 0F, 6, 1, 6);
GasBottleBot2.setRotationPoint(1F, 23F, 1F);
GasBottleBot2.setTextureSize(128, 128);
GasBottleBot2.mirror = true;
setRotation(GasBottleBot2, 0F, 0F, 0F);
LiqBottleLid1 = new ModelRenderer(this, 25, 40);
LiqBottleLid1.addBox(0F, 0F, 0F, 6, 1, 6);
LiqBottleLid1.setRotationPoint(-7F, 11F, -7F);
LiqBottleLid1.setTextureSize(128, 128);
LiqBottleLid1.mirror = true;
setRotation(LiqBottleLid1, 0F, 0F, 0F);
LiqBottleLid2 = new ModelRenderer(this, 25, 40);
LiqBottleLid2.addBox(0F, 0F, 0F, 6, 1, 6);
LiqBottleLid2.setRotationPoint(1F, 11F, -7F);
LiqBottleLid2.setTextureSize(128, 128);
LiqBottleLid2.mirror = true;
setRotation(LiqBottleLid2, 0F, 0F, 0F);
LiqBottleBot1 = new ModelRenderer(this, 25, 40);
LiqBottleBot1.addBox(0F, 0F, 0F, 6, 1, 6);
LiqBottleBot1.setRotationPoint(-7F, 23F, -7F);
LiqBottleBot1.setTextureSize(128, 128);
LiqBottleBot1.mirror = true;
setRotation(LiqBottleBot1, 0F, 0F, 0F);
LiqBottleBot2 = new ModelRenderer(this, 25, 40);
LiqBottleBot2.addBox(0F, 0F, 0F, 6, 1, 6);
LiqBottleBot2.setRotationPoint(1F, 23F, -7F);
LiqBottleBot2.setTextureSize(128, 128);
LiqBottleBot2.mirror = true;
setRotation(LiqBottleBot2, 0F, 0F, 0F);
LiqBottle2 = new ModelRenderer(this, 25, 48);
LiqBottle2.addBox(0F, 0F, 0F, 4, 11, 4);
LiqBottle2.setRotationPoint(2F, 12F, -6F);
LiqBottle2.setTextureSize(128, 128);
LiqBottle2.mirror = true;
setRotation(LiqBottle2, 0F, 0F, 0F);
LiqBottle1 = new ModelRenderer(this, 25, 48);
LiqBottle1.addBox(0F, 0F, 0F, 4, 11, 4);
LiqBottle1.setRotationPoint(-6F, 12F, -6F);
LiqBottle1.setTextureSize(128, 128);
LiqBottle1.mirror = true;
setRotation(LiqBottle1, 0F, 0F, 0F);
LiqBottleDecor1 = new ModelRenderer(this, 25, 33);
LiqBottleDecor1.addBox(0F, 0F, 0F, 5, 1, 5);
LiqBottleDecor1.setRotationPoint(1.5F, 21F, -6.5F);
LiqBottleDecor1.setTextureSize(128, 128);
LiqBottleDecor1.mirror = true;
setRotation(LiqBottleDecor1, 0F, 0F, 0F);
LiqBottleDecor2 = new ModelRenderer(this, 25, 33);
LiqBottleDecor2.addBox(0F, 0F, 0F, 5, 1, 5);
LiqBottleDecor2.setRotationPoint(1.5F, 13F, -6.5F);
LiqBottleDecor2.setTextureSize(128, 128);
LiqBottleDecor2.mirror = true;
setRotation(LiqBottleDecor2, 0F, 0F, 0F);
LiqBottleDecor3 = new ModelRenderer(this, 25, 33);
LiqBottleDecor3.addBox(0F, 0F, 0F, 5, 1, 5);
LiqBottleDecor3.setRotationPoint(-6.5F, 21F, -6.5F);
LiqBottleDecor3.setTextureSize(128, 128);
LiqBottleDecor3.mirror = true;
setRotation(LiqBottleDecor3, 0F, 0F, 0F);
LiqBottleDecor4 = new ModelRenderer(this, 25, 33);
LiqBottleDecor4.addBox(0F, 0F, 0F, 5, 1, 5);
LiqBottleDecor4.setRotationPoint(-6.5F, 13F, -6.5F);
LiqBottleDecor4.setTextureSize(128, 128);
LiqBottleDecor4.mirror = true;
setRotation(LiqBottleDecor4, 0F, 0F, 0F);
GasInput = new ModelRenderer(this, 0, 24);
GasInput.addBox(0F, 0F, 0F, 6, 6, 1);
GasInput.setRotationPoint(-3F, 13F, 7F);
GasInput.setTextureSize(128, 128);
GasInput.mirror = true;
setRotation(GasInput, 0F, 0F, 0F);
MidSection1 = new ModelRenderer(this, 15, 20);
MidSection1.addBox(0F, 0F, 0F, 4, 5, 6);
MidSection1.setRotationPoint(-2F, 18F, 1F);
MidSection1.setTextureSize(128, 128);
MidSection1.mirror = true;
setRotation(MidSection1, 0F, 0F, 0F);
MidSection2 = new ModelRenderer(this, 37, 0);
MidSection2.addBox(0F, 0F, 0F, 6, 7, 8);
MidSection2.setRotationPoint(-3F, 17F, -7F);
MidSection2.setTextureSize(128, 128);
MidSection2.mirror = true;
setRotation(MidSection2, 0F, 0F, 0F);
LiquidOutput = new ModelRenderer(this, 36, 22);
LiquidOutput.addBox(0F, 0F, 0F, 8, 8, 1);
LiquidOutput.setRotationPoint(-4F, 12F, -8F);
LiquidOutput.setTextureSize(128, 128);
LiquidOutput.mirror = true;
setRotation(LiquidOutput, 0F, 0F, 0F);
MidSection3 = new ModelRenderer(this, 0, 0);
MidSection3.addBox(0F, 0F, 0F, 4, 2, 14);
MidSection3.setRotationPoint(-2F, 15F, -7F);
MidSection3.setTextureSize(128, 128);
MidSection3.mirror = true;
setRotation(MidSection3, 0F, 0F, 0F);
}
public void render(float size)
{
GasBottleLid1.render(size);
GasBottleLid2.render(size);
GasBottleDecor1.render(size);
GasBottleDecor2.render(size);
GasBottleDecor3.render(size);
GasBottleDecor4.render(size);
GasBottle1.render(size);
GasBottle2.render(size);
GasBottleBot1.render(size);
GasBottleBot2.render(size);
LiqBottleLid1.render(size);
LiqBottleLid2.render(size);
LiqBottleBot1.render(size);
LiqBottleBot2.render(size);
LiqBottle2.render(size);
LiqBottle1.render(size);
LiqBottleDecor1.render(size);
LiqBottleDecor2.render(size);
LiqBottleDecor3.render(size);
LiqBottleDecor4.render(size);
GasInput.render(size);
MidSection1.render(size);
MidSection2.render(size);
LiquidOutput.render(size);
MidSection3.render(size);
}
private void setRotation(ModelRenderer model, float x, float y, float z)
{
model.rotateAngleX = x;
model.rotateAngleY = y;
model.rotateAngleZ = z;
}
}

View file

@ -6,6 +6,7 @@ import mekanism.client.model.ModelDigitalMiner;
import mekanism.client.model.ModelElectricPump; import mekanism.client.model.ModelElectricPump;
import mekanism.client.model.ModelLogisticalSorter; import mekanism.client.model.ModelLogisticalSorter;
import mekanism.client.model.ModelMetallurgicInfuser; import mekanism.client.model.ModelMetallurgicInfuser;
import mekanism.client.model.ModelRotaryCondensentrator;
import mekanism.client.render.MekanismRenderer; import mekanism.client.render.MekanismRenderer;
import mekanism.common.block.BlockMachine.MachineType; import mekanism.common.block.BlockMachine.MachineType;
import mekanism.common.util.MekanismUtils; import mekanism.common.util.MekanismUtils;
@ -29,6 +30,7 @@ public class MachineRenderingHandler implements ISimpleBlockRenderingHandler
public ModelChargepad chargepad = new ModelChargepad(); public ModelChargepad chargepad = new ModelChargepad();
public ModelLogisticalSorter logisticalSorter = new ModelLogisticalSorter(); public ModelLogisticalSorter logisticalSorter = new ModelLogisticalSorter();
public ModelDigitalMiner digitalMiner = new ModelDigitalMiner(); public ModelDigitalMiner digitalMiner = new ModelDigitalMiner();
public ModelRotaryCondensentrator rotaryCondensentrator = new ModelRotaryCondensentrator();
@Override @Override
public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer) public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer)
@ -80,6 +82,14 @@ public class MachineRenderingHandler implements ISimpleBlockRenderingHandler
Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "DigitalMiner.png")); Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "DigitalMiner.png"));
digitalMiner.render(0.03125F, false); digitalMiner.render(0.03125F, false);
} }
else if(MachineType.get(block.blockID, metadata) == MachineType.ROTARY_CONDENSENTRATOR)
{
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
GL11.glRotatef(270F, 0.0F, -1.0F, 0.0F);
GL11.glTranslatef(0.0F, -1F, -0.05F);
Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "RotaryCondensentrator.png"));
rotaryCondensentrator.render(0.0625F);
}
else { else {
MekanismRenderer.renderItem(renderer, metadata, block); MekanismRenderer.renderItem(renderer, metadata, block);
} }

View file

@ -0,0 +1,44 @@
package mekanism.client.render.tileentity;
import org.lwjgl.opengl.GL11;
import mekanism.client.model.ModelRotaryCondensentrator;
import mekanism.common.tileentity.TileEntityRotaryCondensentrator;
import mekanism.common.util.MekanismUtils;
import mekanism.common.util.MekanismUtils.ResourceType;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.tileentity.TileEntity;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT)
public class RenderRotaryCondensentrator extends TileEntitySpecialRenderer
{
private ModelRotaryCondensentrator model = new ModelRotaryCondensentrator();
@Override
public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float partialTick)
{
renderAModelAt((TileEntityRotaryCondensentrator)tileEntity, x, y, z, partialTick);
}
private void renderAModelAt(TileEntityRotaryCondensentrator tileEntity, double x, double y, double z, float partialTick)
{
GL11.glPushMatrix();
GL11.glTranslatef((float)x + 0.5F, (float)y + 1.5F, (float)z + 0.5F);
bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "RotaryCondensentrator.png"));
switch(tileEntity.facing)
{
case 2: GL11.glRotatef(90, 0.0F, 1.0F, 0.0F); break;
case 3: GL11.glRotatef(270, 0.0F, 1.0F, 0.0F); break;
case 4: GL11.glRotatef(180, 0.0F, 1.0F, 0.0F); break;
case 5: GL11.glRotatef(0, 0.0F, 1.0F, 0.0F); break;
}
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
model.render(0.0625F);
GL11.glPopMatrix();
}
}

View file

@ -47,6 +47,7 @@ import mekanism.common.tileentity.TileEntityObsidianTNT;
import mekanism.common.tileentity.TileEntityOsmiumCompressor; import mekanism.common.tileentity.TileEntityOsmiumCompressor;
import mekanism.common.tileentity.TileEntityPressurizedTube; import mekanism.common.tileentity.TileEntityPressurizedTube;
import mekanism.common.tileentity.TileEntityPurificationChamber; import mekanism.common.tileentity.TileEntityPurificationChamber;
import mekanism.common.tileentity.TileEntityRotaryCondensentrator;
import mekanism.common.tileentity.TileEntityTeleporter; import mekanism.common.tileentity.TileEntityTeleporter;
import mekanism.common.tileentity.TileEntityUniversalCable; import mekanism.common.tileentity.TileEntityUniversalCable;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
@ -97,6 +98,7 @@ public class CommonProxy
GameRegistry.registerTileEntity(TileEntityBin.class, "Bin"); GameRegistry.registerTileEntity(TileEntityBin.class, "Bin");
GameRegistry.registerTileEntity(TileEntityDigitalMiner.class, "DigitalMiner"); GameRegistry.registerTileEntity(TileEntityDigitalMiner.class, "DigitalMiner");
GameRegistry.registerTileEntity(TileEntityObsidianTNT.class, "ObsidianTNT"); GameRegistry.registerTileEntity(TileEntityObsidianTNT.class, "ObsidianTNT");
GameRegistry.registerTileEntity(TileEntityRotaryCondensentrator.class, "RotaryCondensentrator");
} }
/** /**
@ -261,7 +263,7 @@ public class CommonProxy
case 6: case 6:
return new ContainerElectricMachine(player.inventory, (TileEntityElectricMachine)tileEntity); return new ContainerElectricMachine(player.inventory, (TileEntityElectricMachine)tileEntity);
case 7: case 7:
return new ContainerAdvancedElectricMachine(player.inventory, (TileEntityAdvancedElectricMachine)tileEntity); //return new ContainerRotaryCondensentrator(player.inventory, (TileEntityRotaryCondensentrator)tileEntity); TODO
case 8: case 8:
return new ContainerEnergyCube(player.inventory, (TileEntityEnergyCube)tileEntity); return new ContainerEnergyCube(player.inventory, (TileEntityEnergyCube)tileEntity);
case 9: case 9:

View file

@ -24,7 +24,6 @@ import net.minecraftforge.common.ForgeDirection;
import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.Event; import net.minecraftforge.event.Event;
import universalelectricity.core.block.IElectrical; import universalelectricity.core.block.IElectrical;
import universalelectricity.core.electricity.ElectricityDisplay;
import universalelectricity.core.electricity.ElectricityPack; import universalelectricity.core.electricity.ElectricityPack;
import buildcraft.api.power.IPowerReceptor; import buildcraft.api.power.IPowerReceptor;
import buildcraft.api.power.PowerHandler.PowerReceiver; import buildcraft.api.power.PowerHandler.PowerReceiver;
@ -131,7 +130,7 @@ public class EnergyNetwork extends DynamicNetwork<TileEntity, EnergyNetwork>
prevEnergy = energyToSend; prevEnergy = energyToSend;
sent = 0; sent = 0;
energyToSend = doEmit(energyToSend, ignored); energyToSend -= (energyToSend - doEmit(energyToSend, ignored));
sent = prevEnergy-energyToSend; sent = prevEnergy-energyToSend;
if(energyToSend > 0 && sent > 0) if(energyToSend > 0 && sent > 0)
@ -143,6 +142,9 @@ public class EnergyNetwork extends DynamicNetwork<TileEntity, EnergyNetwork>
return energyToSend; return energyToSend;
} }
/**
* @return rejects
*/
public synchronized double doEmit(double energyToSend, ArrayList<TileEntity> ignored) public synchronized double doEmit(double energyToSend, ArrayList<TileEntity> ignored)
{ {
double energyAvailable = energyToSend; double energyAvailable = energyToSend;
@ -180,7 +182,8 @@ public class EnergyNetwork extends DynamicNetwork<TileEntity, EnergyNetwork>
} }
else if(acceptor instanceof IEnergySink) else if(acceptor instanceof IEnergySink)
{ {
double toSend = Math.min(currentSending, (((IEnergySink)acceptor).getMaxSafeInput()*Mekanism.FROM_IC2)); double toSend = Math.min(currentSending, ((IEnergySink)acceptor).getMaxSafeInput()*Mekanism.FROM_IC2);
toSend = Math.min(toSend, ((IEnergySink)acceptor).demandedEnergyUnits()*Mekanism.FROM_IC2);
energyToSend -= (toSend - (((IEnergySink)acceptor).injectEnergyUnits(side.getOpposite(), toSend*Mekanism.TO_IC2)*Mekanism.FROM_IC2)); energyToSend -= (toSend - (((IEnergySink)acceptor).injectEnergyUnits(side.getOpposite(), toSend*Mekanism.TO_IC2)*Mekanism.FROM_IC2));
} }
else if(acceptor instanceof IPowerReceptor && MekanismUtils.useBuildcraft()) else if(acceptor instanceof IPowerReceptor && MekanismUtils.useBuildcraft())
@ -440,12 +443,12 @@ public class EnergyNetwork extends DynamicNetwork<TileEntity, EnergyNetwork>
@Override @Override
public String getNeeded() public String getNeeded()
{ {
return ElectricityDisplay.getDisplay((float)(getEnergyNeeded(new ArrayList<TileEntity>())*Mekanism.TO_UE), ElectricityDisplay.ElectricUnit.JOULES); return MekanismUtils.getEnergyDisplay(getEnergyNeeded(new ArrayList<TileEntity>()));
} }
@Override @Override
public String getFlow() public String getFlow()
{ {
return ElectricityDisplay.getDisplay((float)(getPower()*Mekanism.TO_UE), ElectricityDisplay.ElectricUnit.JOULES); return MekanismUtils.getEnergyDisplay(getPower());
} }
} }

View file

@ -435,6 +435,10 @@ public class Mekanism
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(Transmitter, 1, 4), new Object[] { CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(Transmitter, 1, 4), new Object[] {
"RRR", "SBS", "RRR", Character.valueOf('R'), Item.redstone, Character.valueOf('S'), "ingotSteel", Character.valueOf('B'), Block.fenceIron "RRR", "SBS", "RRR", Character.valueOf('R'), Item.redstone, Character.valueOf('S'), "ingotSteel", Character.valueOf('B'), Block.fenceIron
})); }));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MachineBlock2, 1, 0), new Object[] {
"GCG", "tET", "GIG", Character.valueOf('G'), Block.glass, Character.valueOf('C'), "circuitBasic", Character.valueOf('t'), MekanismUtils.getEmptyGasTank(), Character.valueOf('E'), EnergyTablet.getUnchargedItem(),
Character.valueOf('T'), new ItemStack(BasicBlock, 1, 9), Character.valueOf('I'), new ItemStack(BasicBlock, 1, 8)
}));
for(RecipeType type : RecipeType.values()) for(RecipeType type : RecipeType.values())
{ {

View file

@ -21,7 +21,6 @@ import mekanism.common.ItemAttacher;
import mekanism.common.Mekanism; import mekanism.common.Mekanism;
import mekanism.common.PacketHandler; import mekanism.common.PacketHandler;
import mekanism.common.PacketHandler.Transmission; import mekanism.common.PacketHandler.Transmission;
import mekanism.common.Tier.FactoryTier;
import mekanism.common.miner.MinerFilter; import mekanism.common.miner.MinerFilter;
import mekanism.common.network.PacketElectricChest; import mekanism.common.network.PacketElectricChest;
import mekanism.common.network.PacketElectricChest.ElectricChestPacketType; import mekanism.common.network.PacketElectricChest.ElectricChestPacketType;
@ -45,6 +44,7 @@ import mekanism.common.tileentity.TileEntityLogisticalSorter;
import mekanism.common.tileentity.TileEntityMetallurgicInfuser; import mekanism.common.tileentity.TileEntityMetallurgicInfuser;
import mekanism.common.tileentity.TileEntityOsmiumCompressor; import mekanism.common.tileentity.TileEntityOsmiumCompressor;
import mekanism.common.tileentity.TileEntityPurificationChamber; import mekanism.common.tileentity.TileEntityPurificationChamber;
import mekanism.common.tileentity.TileEntityRotaryCondensentrator;
import mekanism.common.tileentity.TileEntityTeleporter; import mekanism.common.tileentity.TileEntityTeleporter;
import mekanism.common.transporter.TransporterFilter; import mekanism.common.transporter.TransporterFilter;
import mekanism.common.util.MekanismUtils; import mekanism.common.util.MekanismUtils;
@ -1010,7 +1010,8 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds
ELECTRIC_PUMP(Mekanism.machineBlockID, 12, "ElectricPump", 17, 10000, TileEntityElectricPump.class, true), ELECTRIC_PUMP(Mekanism.machineBlockID, 12, "ElectricPump", 17, 10000, TileEntityElectricPump.class, true),
ELECTRIC_CHEST(Mekanism.machineBlockID, 13, "ElectricChest", -1, 12000, TileEntityElectricChest.class, true), ELECTRIC_CHEST(Mekanism.machineBlockID, 13, "ElectricChest", -1, 12000, TileEntityElectricChest.class, true),
CHARGEPAD(Mekanism.machineBlockID, 14, "Chargepad", -1, 10000, TileEntityChargepad.class, true), CHARGEPAD(Mekanism.machineBlockID, 14, "Chargepad", -1, 10000, TileEntityChargepad.class, true),
LOGISTICAL_SORTER(Mekanism.machineBlockID, 15, "LogisticalSorter", -1, 0, TileEntityLogisticalSorter.class, true); LOGISTICAL_SORTER(Mekanism.machineBlockID, 15, "LogisticalSorter", -1, 0, TileEntityLogisticalSorter.class, true),
ROTARY_CONDENSENTRATOR(Mekanism.machineBlock2ID, 0, "RotaryCondensentrator", 7, 20000, TileEntityRotaryCondensentrator.class, true);
public int typeId; public int typeId;
public int meta; public int meta;

View file

@ -0,0 +1,126 @@
package mekanism.common.inventory.container;
import mekanism.common.inventory.slot.SlotOutput;
import mekanism.common.inventory.slot.SlotStorageTank;
import mekanism.common.tileentity.TileEntityRotaryCondensentrator;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidContainerRegistry;
public class ContainerRotaryCondensentrator extends Container
{
private TileEntityRotaryCondensentrator tileEntity;
public ContainerRotaryCondensentrator(InventoryPlayer inventory, TileEntityRotaryCondensentrator tentity)
{
tileEntity = tentity;
addSlotToContainer(new SlotStorageTank(tentity, null, true, 0, 8, 8));
addSlotToContainer(new SlotStorageTank(tentity, null, true, 1, 8, 40));
addSlotToContainer(new Slot(tentity, 0, 146, 20));
addSlotToContainer(new SlotOutput(tentity, 1, 146, 51));
int slotX;
for(slotX = 0; slotX < 3; ++slotX)
{
for(int slotY = 0; slotY < 9; ++slotY)
{
addSlotToContainer(new Slot(inventory, slotY + slotX * 9 + 9, 8 + slotY * 18, 84 + slotX * 18));
}
}
for(slotX = 0; slotX < 9; ++slotX)
{
addSlotToContainer(new Slot(inventory, slotX, 8 + slotX * 18, 142));
}
tileEntity.playersUsing.add(inventory.player);
tileEntity.openChest();
}
@Override
public void onContainerClosed(EntityPlayer entityplayer)
{
super.onContainerClosed(entityplayer);
tileEntity.playersUsing.remove(entityplayer);
tileEntity.closeChest();
}
@Override
public boolean canInteractWith(EntityPlayer entityplayer)
{
return tileEntity.isUseableByPlayer(entityplayer);
}
@Override
public ItemStack transferStackInSlot(EntityPlayer player, int slotID)
{
ItemStack stack = null;
Slot currentSlot = (Slot)inventorySlots.get(slotID);
if(currentSlot != null && currentSlot.getHasStack())
{
ItemStack slotStack = currentSlot.getStack();
stack = slotStack.copy();
if(FluidContainerRegistry.isEmptyContainer(slotStack) || FluidContainerRegistry.isFilledContainer(slotStack))
{
if(slotID != 0 && slotID != 1)
{
if(!mergeItemStack(slotStack, 0, 1, false))
{
return null;
}
}
else {
if(!mergeItemStack(slotStack, 2, inventorySlots.size(), true))
{
return null;
}
}
}
else {
if(slotID >= 2 && slotID <= 8)
{
if(!mergeItemStack(slotStack, 29, inventorySlots.size(), false))
{
return null;
}
}
else if(slotID > 28)
{
if(!mergeItemStack(slotStack, 2, 28, false))
{
return null;
}
}
else {
if(!mergeItemStack(slotStack, 2, inventorySlots.size(), true))
{
return null;
}
}
}
if(slotStack.stackSize == 0)
{
currentSlot.putStack((ItemStack)null);
}
else {
currentSlot.onSlotChanged();
}
if(slotStack.stackSize == stack.stackSize)
{
return null;
}
currentSlot.onPickupFromSlot(player, slotStack);
}
return stack;
}
}

View file

@ -100,9 +100,9 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, IItem
@Override @Override
public String getUnlocalizedName(ItemStack itemstack) public String getUnlocalizedName(ItemStack itemstack)
{ {
if(MachineType.get(itemstack.itemID, itemstack.getItemDamage()) != null) if(MachineType.get(itemstack) != null)
{ {
return getUnlocalizedName() + "." + MachineType.get(itemstack.itemID, itemstack.getItemDamage()).name; return getUnlocalizedName() + "." + MachineType.get(itemstack).name;
} }
return "null"; return "null";

View file

@ -3,7 +3,6 @@ package mekanism.common.tileentity;
import ic2.api.energy.event.EnergyTileLoadEvent; import ic2.api.energy.event.EnergyTileLoadEvent;
import ic2.api.energy.event.EnergyTileUnloadEvent; import ic2.api.energy.event.EnergyTileUnloadEvent;
import ic2.api.energy.tile.IEnergySink; import ic2.api.energy.tile.IEnergySink;
import ic2.api.energy.tile.IEnergySource;
import ic2.api.energy.tile.IEnergyTile; import ic2.api.energy.tile.IEnergyTile;
import ic2.api.tile.IEnergyStorage; import ic2.api.tile.IEnergyStorage;
import ic2.api.tile.IWrenchable; import ic2.api.tile.IWrenchable;
@ -34,7 +33,7 @@ import cofh.api.energy.IEnergyHandler;
import com.google.common.io.ByteArrayDataInput; import com.google.common.io.ByteArrayDataInput;
public abstract class TileEntityElectricBlock extends TileEntityContainerBlock implements IWrenchable, ITileNetwork, IPowerReceptor, IEnergyTile, IElectrical, IElectricalStorage, IConnector, IStrictEnergyStorage, IEnergyHandler, IEnergySink, IEnergySource, IEnergyStorage, IStrictEnergyAcceptor, ICableOutputter public abstract class TileEntityElectricBlock extends TileEntityContainerBlock implements IWrenchable, ITileNetwork, IPowerReceptor, IEnergyTile, IElectrical, IElectricalStorage, IConnector, IStrictEnergyStorage, IEnergyHandler, IEnergySink, IEnergyStorage, IStrictEnergyAcceptor, ICableOutputter
{ {
/** How much energy is stored in this block. */ /** How much energy is stored in this block. */
public double electricityStored; public double electricityStored;
@ -343,7 +342,7 @@ public abstract class TileEntityElectricBlock extends TileEntityContainerBlock i
@Override @Override
public int getMaxSafeInput() public int getMaxSafeInput()
{ {
return 2048; return Integer.MAX_VALUE;
} }
@Override @Override
@ -401,36 +400,18 @@ public abstract class TileEntityElectricBlock extends TileEntityContainerBlock i
return (getMaxEnergy() - getEnergy())*Mekanism.TO_IC2; return (getMaxEnergy() - getEnergy())*Mekanism.TO_IC2;
} }
@Override
public double getOfferedEnergy()
{
return Math.min(getEnergy()*Mekanism.TO_IC2, getOutput());
}
@Override @Override
public boolean canReceiveEnergy(ForgeDirection side) public boolean canReceiveEnergy(ForgeDirection side)
{ {
return side != getOutputtingSide(); return side != getOutputtingSide();
} }
@Override
public boolean emitsEnergyTo(TileEntity receiver, ForgeDirection direction)
{
return direction == getOutputtingSide() && !(receiver instanceof TileEntityUniversalCable);
}
@Override @Override
public double getOutputEnergyUnitsPerTick() public double getOutputEnergyUnitsPerTick()
{ {
return getMaxOutput()*Mekanism.TO_IC2; return getMaxOutput()*Mekanism.TO_IC2;
} }
@Override
public void drawEnergy(double amount)
{
setEnergy(getEnergy()-amount*Mekanism.FROM_IC2);
}
@Override @Override
public double injectEnergyUnits(ForgeDirection direction, double i) public double injectEnergyUnits(ForgeDirection direction, double i)
{ {

View file

@ -1,6 +1,13 @@
package mekanism.common.tileentity; package mekanism.common.tileentity;
import mekanism.common.block.BlockMachine.MachineType;
import net.minecraft.item.ItemStack;
public class TileEntityRotaryCondensentrator extends TileEntityElectricBlock public class TileEntityRotaryCondensentrator extends TileEntityElectricBlock
{ {
public TileEntityRotaryCondensentrator()
{
super("RotaryCondensentrator", MachineType.ROTARY_CONDENSENTRATOR.baseEnergy);
inventory = new ItemStack[5];
}
} }

View file

@ -108,6 +108,9 @@ public class TileEntityUniversalCable extends TileEntityTransmitter<EnergyNetwor
if(!worldObj.isRemote) if(!worldObj.isRemote)
{ {
TransmitterNetworkRegistry.getInstance().pruneEmptyNetworks(); TransmitterNetworkRegistry.getInstance().pruneEmptyNetworks();
Mekanism.ic2Registered.remove(Object3D.get(this));
MinecraftForge.EVENT_BUS.post(new EnergyTileUnloadEvent(this));
} }
super.invalidate(); super.invalidate();
@ -279,13 +282,13 @@ public class TileEntityUniversalCable extends TileEntityTransmitter<EnergyNetwor
{ {
ArrayList list = new ArrayList(); ArrayList list = new ArrayList();
list.add(Object3D.get(this).getFromSide(direction).getTileEntity(worldObj)); list.add(Object3D.get(this).getFromSide(direction).getTileEntity(worldObj));
return i - (getTransmitterNetwork().emit(i*Mekanism.FROM_IC2, list)*Mekanism.TO_IC2); return getTransmitterNetwork().emit(i*Mekanism.FROM_IC2, list)*Mekanism.TO_IC2;
} }
@Override @Override
public int getMaxSafeInput() public int getMaxSafeInput()
{ {
return 2048; return Integer.MAX_VALUE;
} }
@Override @Override

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View file

@ -57,6 +57,9 @@ tile.MachineBlock.Chargepad.name=Chargepad
tile.MachineBlock.LogisticalSorter.name=Logistical Sorter tile.MachineBlock.LogisticalSorter.name=Logistical Sorter
tile.MachineBlock.DigitalMiner.name=Digital Miner tile.MachineBlock.DigitalMiner.name=Digital Miner
//Machine Block 2 (second ID iteration)
tile.MachineBlock2.RotaryCondensentrator.name=Rotary Condensentrator
//Ore Block //Ore Block
tile.OreBlock.OsmiumOre.name=Osmium Ore tile.OreBlock.OsmiumOre.name=Osmium Ore

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB