*Fixed electricity handling.
*Touched up on GUIs.
*Added complete OreDict support.
*Javadoc touch ups.
*Started on Hydro Generator.
*Other minor bugfixes.
This commit is contained in:
Aidan Brady 2012-12-03 10:10:48 -05:00
parent 95eb7d24fb
commit d8559e5f4d
39 changed files with 271 additions and 123 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4 KiB

After

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4 KiB

After

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4 KiB

After

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

View file

@ -16,7 +16,7 @@ import net.minecraft.src.*;
import net.minecraftforge.common.ForgeDirection;
/**
* Block class for handling multiple ore block IDs.
* Block class for handling multiple energy cube block IDs.
* 0: Power Unit
* 1: Advanced Power Unit
* 2: Ultimate Power Unit

View file

@ -1,7 +1,5 @@
package mekanism.common;
import ic2.api.IElectricItem;
import universalelectricity.core.implement.IItemElectric;
import mekanism.api.*;
import net.minecraft.src.*;

View file

@ -149,16 +149,4 @@ public class ItemElectricBow extends ItemEnergized
return state;
}
@Override
public double getMaxJoules(Object... data)
{
return 12000;
}
@Override
public double getVoltage()
{
return 60;
}
}

View file

@ -143,6 +143,11 @@ public class Mekanism
public static int ANIMATED_TEXTURE_INDEX = 240;
public static double TO_IC2 = .1;
public static double TO_BC = .01;
public static double FROM_IC2 = 10;
public static double FROM_BC = 100;
/**
* Adds all in-game crafting and smelting recipes.
*/
@ -255,10 +260,11 @@ public class Mekanism
//Furnace Recipes
FurnaceRecipes.smelting().addSmelting(oreBlockID, 0, new ItemStack(Ingot, 1, 1), 1.0F);
FurnaceRecipes.smelting().addSmelting(Dust.shiftedIndex, 2, new ItemStack(Ingot, 1, 1), 1.0F);
FurnaceRecipes.smelting().addSmelting(Dust.shiftedIndex, 0, new ItemStack(Item.ingotIron), 1.0F);
FurnaceRecipes.smelting().addSmelting(Dust.shiftedIndex, 1, new ItemStack(Item.ingotGold), 1.0F);
//Enrichment Chamber Recipes
RecipeHandler.addEnrichmentChamberRecipe(new ItemStack(Dust, 1, 4), new ItemStack(Item.diamond));
RecipeHandler.addEnrichmentChamberRecipe(new ItemStack(OreBlock, 1, 0), new ItemStack(Dust, 2, 2));
RecipeHandler.addEnrichmentChamberRecipe(new ItemStack(Block.oreRedstone), new ItemStack(Item.redstone, 2));
RecipeHandler.addEnrichmentChamberRecipe(new ItemStack(Block.obsidian), new ItemStack(Dust, 1, 3));
RecipeHandler.addEnrichmentChamberRecipe(new ItemStack(Block.oreIron), new ItemStack(Dust, 2, 0));
@ -267,24 +273,15 @@ public class Mekanism
//Platinum Compressor Recipes
RecipeHandler.addPlatinumCompressorRecipe(new ItemStack(Item.redstone), new ItemStack(Ingot, 1, 2));
RecipeHandler.addPlatinumCompressorRecipe(new ItemStack(Item.lightStoneDust), new ItemStack(Ingot, 1, 3));
RecipeHandler.addPlatinumCompressorRecipe(new ItemStack(Dust, 1, 3), new ItemStack(Ingot, 1, 0));
//Combiner Recipes
RecipeHandler.addCombinerRecipe(new ItemStack(Item.redstone, 4), new ItemStack(Block.oreRedstone));
RecipeHandler.addCombinerRecipe(new ItemStack(Item.redstone), new ItemStack(Ingot, 1, 2));
RecipeHandler.addCombinerRecipe(new ItemStack(Dust, 2, 2), new ItemStack(OreBlock, 1, 0));
RecipeHandler.addCombinerRecipe(new ItemStack(Item.diamond), new ItemStack(Block.oreDiamond));
RecipeHandler.addCombinerRecipe(new ItemStack(Item.dyePowder, 4, 4), new ItemStack(Block.oreLapis));
RecipeHandler.addCombinerRecipe(new ItemStack(Dust, 1, 3), new ItemStack(Block.obsidian));
RecipeHandler.addCombinerRecipe(new ItemStack(Dust, 2, 0), new ItemStack(Block.oreIron));
RecipeHandler.addCombinerRecipe(new ItemStack(Dust, 2, 1), new ItemStack(Block.oreGold));
//Crusher Recipes
RecipeHandler.addCrusherRecipe(new ItemStack(Item.diamond), new ItemStack(Dust, 1, 4));
RecipeHandler.addCrusherRecipe(new ItemStack(Ingot, 1, 2), new ItemStack(Item.redstone));
RecipeHandler.addCrusherRecipe(new ItemStack(Ingot, 1, 1), new ItemStack(Dust, 1, 2));
RecipeHandler.addCrusherRecipe(new ItemStack(Ingot, 1, 3), new ItemStack(Item.lightStoneDust));
RecipeHandler.addCrusherRecipe(new ItemStack(Ingot, 1, 0), new ItemStack(Dust, 1, 3));
RecipeHandler.addCrusherRecipe(new ItemStack(Item.ingotIron), new ItemStack(Dust, 1, 0));
RecipeHandler.addCrusherRecipe(new ItemStack(Item.ingotGold), new ItemStack(Dust, 1, 1));
@ -357,6 +354,9 @@ public class Mekanism
LanguageRegistry.instance().addStringLocalization("item.platinumIngot.name", "Platinum Ingot");
LanguageRegistry.instance().addStringLocalization("item.redstoneIngot.name", "Redstone Ingot");
LanguageRegistry.instance().addStringLocalization("item.glowstoneIngot.name", "Glowstone Ingot");
//Localization for Mekanism creative tab
LanguageRegistry.instance().addStringLocalization("itemGroup.tabMekanism", "Mekanism");
}
/**
@ -456,19 +456,131 @@ public class Mekanism
{
Ic2Recipes.addMaceratorRecipe(new ItemStack(Block.obsidian), new ItemStack(Dust, 1, 3));
}
ItemStack dustIron = hooks.IC2IronDust.copy();
dustIron.stackSize = 2;
ItemStack dustGold = hooks.IC2GoldDust.copy();
dustGold.stackSize = 2;
RecipeHandler.addCombinerRecipe(dustIron, new ItemStack(Block.oreIron));
RecipeHandler.addCombinerRecipe(dustGold, new ItemStack(Block.oreGold));
RecipeHandler.addCrusherRecipe(new ItemStack(Item.coal), hooks.IC2CoalDust);
for(ItemStack ore : OreDictionary.getOres("oreCopper"))
{
RecipeHandler.addEnrichmentChamberRecipe(ore, MekanismUtils.getStackWithSize(hooks.IC2CopperDust, 2));
}
for(ItemStack ore : OreDictionary.getOres("oreTin"))
{
RecipeHandler.addEnrichmentChamberRecipe(ore, MekanismUtils.getStackWithSize(hooks.IC2TinDust, 2));
}
}
if(hooks.RailcraftLoaded)
for(ItemStack ore : OreDictionary.getOres("orePlatinum"))
{
RecipeHandler.addPlatinumCompressorRecipe(hooks.RailcraftObsidianDust, new ItemStack(Ingot, 1, 0));
RecipeHandler.addCombinerRecipe(hooks.RailcraftObsidianDust, new ItemStack(Block.obsidian));
RecipeHandler.addEnrichmentChamberRecipe(ore, new ItemStack(Dust, 2, 2));
}
try {
for(ItemStack ore : OreDictionary.getOres("oreLead"))
{
RecipeHandler.addEnrichmentChamberRecipe(ore, OreDictionary.getOres("dustLead").get(0));
}
for(ItemStack ore : OreDictionary.getOres("ingotLead"))
{
RecipeHandler.addCrusherRecipe(ore, OreDictionary.getOres("dustLead").get(0));
}
} catch(ArrayIndexOutOfBoundsException e) {}
try {
for(ItemStack ore : OreDictionary.getOres("oreSilver"))
{
RecipeHandler.addEnrichmentChamberRecipe(ore, OreDictionary.getOres("dustSilver").get(0));
}
for(ItemStack ore : OreDictionary.getOres("ingotSilver"))
{
RecipeHandler.addCrusherRecipe(ore, OreDictionary.getOres("dustSilver").get(0));
}
} catch(ArrayIndexOutOfBoundsException e) {}
for(ItemStack ore : OreDictionary.getOres("ingotObsidian"))
{
RecipeHandler.addCrusherRecipe(ore, new ItemStack(Dust, 1, 3));
}
for(ItemStack ore : OreDictionary.getOres("ingotPlatinum"))
{
RecipeHandler.addCrusherRecipe(ore, new ItemStack(Dust, 1, 2));
}
for(ItemStack ore : OreDictionary.getOres("ingotRedstone"))
{
RecipeHandler.addCrusherRecipe(ore, new ItemStack(Item.redstone));
}
for(ItemStack ore : OreDictionary.getOres("ingotGlowstone"))
{
RecipeHandler.addCrusherRecipe(ore, new ItemStack(Item.lightStoneDust));
}
try {
for(ItemStack ore : OreDictionary.getOres("ingotCopper"))
{
RecipeHandler.addCrusherRecipe(ore, OreDictionary.getOres("dustCopper").get(0));
}
} catch(ArrayIndexOutOfBoundsException e) {}
try {
for(ItemStack ore : OreDictionary.getOres("ingotTin"))
{
RecipeHandler.addCrusherRecipe(ore, OreDictionary.getOres("dustTin").get(0));
}
} catch(ArrayIndexOutOfBoundsException e) {}
for(ItemStack ore : OreDictionary.getOres("dustIron"))
{
RecipeHandler.addCombinerRecipe(MekanismUtils.getStackWithSize(ore, 2), new ItemStack(Block.oreIron));
}
for(ItemStack ore : OreDictionary.getOres("dustGold"))
{
RecipeHandler.addCombinerRecipe(MekanismUtils.getStackWithSize(ore, 2), new ItemStack(Block.oreGold));
}
for(ItemStack ore : OreDictionary.getOres("dustObsidian"))
{
RecipeHandler.addCombinerRecipe(ore, new ItemStack(Block.obsidian));
RecipeHandler.addPlatinumCompressorRecipe(ore, new ItemStack(Ingot, 1, 0));
}
for(ItemStack ore : OreDictionary.getOres("dustPlatinum"))
{
RecipeHandler.addCombinerRecipe(MekanismUtils.getStackWithSize(ore, 2), new ItemStack(OreBlock, 1, 0));
}
try {
for(ItemStack ore : OreDictionary.getOres("dustCopper"))
{
RecipeHandler.addCombinerRecipe(MekanismUtils.getStackWithSize(ore, 2), OreDictionary.getOres("oreCopper").get(0));
}
} catch(ArrayIndexOutOfBoundsException e) {}
try {
for(ItemStack ore : OreDictionary.getOres("dustTin"))
{
RecipeHandler.addCombinerRecipe(MekanismUtils.getStackWithSize(ore, 2), OreDictionary.getOres("oreTin").get(0));
}
} catch(ArrayIndexOutOfBoundsException e) {}
try {
for(ItemStack ore : OreDictionary.getOres("dustLead"))
{
RecipeHandler.addCombinerRecipe(MekanismUtils.getStackWithSize(ore, 2), OreDictionary.getOres("oreLead").get(0));
}
} catch(ArrayIndexOutOfBoundsException e) {}
try {
for(ItemStack ore : OreDictionary.getOres("dustSilver"))
{
RecipeHandler.addCombinerRecipe(MekanismUtils.getStackWithSize(ore, 2), OreDictionary.getOres("oreSilver").get(0));
}
} catch(ArrayIndexOutOfBoundsException e) {}
}
/**
@ -543,8 +655,6 @@ public class Mekanism
MinecraftForge.EVENT_BUS.register(this);
LanguageRegistry.instance().addStringLocalization("itemGroup.tabMekanism", "Mekanism");
//Attempt to load server commands
try {
registerServerCommands();

View file

@ -26,6 +26,9 @@ public final class MekanismHooks
public ItemStack IC2IronDust;
public ItemStack IC2GoldDust;
public ItemStack IC2CopperDust;
public ItemStack IC2TinDust;
public ItemStack IC2CoalDust;
public ItemStack RailcraftObsidianDust;
@ -53,8 +56,16 @@ public final class MekanismHooks
{
IC2IronDust = getIC2Item("ironDust");
IC2GoldDust = getIC2Item("goldDust");
IC2CopperDust = getIC2Item("copperDust");
IC2TinDust = getIC2Item("tinDust");
IC2CoalDust = getIC2Item("coalDust");
Ic2Recipes.addMaceratorRecipe(new ItemStack(Mekanism.OreBlock, 1, 0), new ItemStack(Mekanism.Dust, 2, 2));
Ic2Recipes.addMaceratorRecipe(new ItemStack(Mekanism.Ingot, 1, 1), new ItemStack(Mekanism.Dust, 1, 2));
Ic2Recipes.addMaceratorRecipe(new ItemStack(Mekanism.Ingot, 1, 0), new ItemStack(Mekanism.Dust, 1, 3));
Ic2Recipes.addMaceratorRecipe(new ItemStack(Mekanism.Ingot, 1, 2), new ItemStack(Item.redstone));
Ic2Recipes.addMaceratorRecipe(new ItemStack(Mekanism.Ingot, 1, 3), new ItemStack(Item.lightStoneDust));
Ic2Recipes.addMatterAmplifier(Mekanism.EnrichedAlloy, 100000);
System.out.println("[Mekanism] Hooked into IC2 successfully.");

View file

@ -7,7 +7,6 @@ import java.util.List;
import mekanism.api.IMachineUpgrade;
import universalelectricity.core.UniversalElectricity;
import universalelectricity.core.implement.IItemElectric;
import buildcraft.api.power.IPowerProvider;
@ -101,7 +100,7 @@ public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicM
IElectricItem item = (IElectricItem)inventory[3].getItem();
if(item.canProvideEnergy())
{
double gain = ElectricItem.discharge(inventory[3], (int)((MAX_ELECTRICITY - electricityStored)*UniversalElectricity.TO_IC2_RATIO), 3, false, false)*UniversalElectricity.IC2_RATIO;
double gain = ElectricItem.discharge(inventory[3], (int)((MAX_ELECTRICITY - electricityStored)*Mekanism.TO_IC2), 3, false, false)*Mekanism.FROM_IC2;
setJoules(electricityStored + gain);
}
}

View file

@ -1,9 +1,9 @@
package mekanism.common;
import universalelectricity.core.UniversalElectricity;
import universalelectricity.core.electricity.ElectricInfo;
import universalelectricity.core.implement.IElectricityReceiver;
import universalelectricity.core.implement.IJouleStorage;
import buildcraft.api.power.IPowerProvider;
import buildcraft.api.power.IPowerReceptor;
import buildcraft.api.power.PowerFramework;
@ -14,6 +14,7 @@ import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.Side;
import cpw.mods.fml.common.asm.SideOnly;
import dan200.computer.api.IComputerAccess;
import dan200.computer.api.IPeripheral;
@ -21,8 +22,10 @@ import ic2.api.Direction;
import ic2.api.EnergyNet;
import ic2.api.IEnergySink;
import ic2.api.IWrenchable;
import mekanism.api.IElectricMachine;
import mekanism.client.Sound;
import net.minecraft.src.*;
import net.minecraftforge.common.ForgeDirection;
import net.minecraftforge.common.ISidedInventory;
@ -169,19 +172,21 @@ public abstract class TileEntityBasicMachine extends TileEntityElectricBlock imp
@Override
public int injectEnergy(Direction direction, int i)
{
double givenEnergy = i*Mekanism.FROM_IC2;
double rejects = 0;
double neededEnergy = MAX_ELECTRICITY-electricityStored;
if(i <= neededEnergy)
double neededEnergy = currentMaxElectricity-electricityStored;
if(givenEnergy <= neededEnergy)
{
electricityStored += i;
electricityStored += givenEnergy;
}
else if(i > neededEnergy)
else if(givenEnergy > neededEnergy)
{
electricityStored += neededEnergy;
rejects = i-neededEnergy;
rejects = givenEnergy-neededEnergy;
}
return (int)(rejects*UniversalElectricity.TO_IC2_RATIO);
return (int)(rejects*Mekanism.TO_IC2);
}
@Override
@ -213,13 +218,13 @@ public abstract class TileEntityBasicMachine extends TileEntityElectricBlock imp
@Override
public double getMaxJoules(Object... data)
{
return currentMaxElectricity*UniversalElectricity.IC2_RATIO;
return currentMaxElectricity;
}
@Override
public double getJoules(Object... data)
{
return electricityStored*UniversalElectricity.IC2_RATIO;
return electricityStored;
}
@Override

View file

@ -5,8 +5,6 @@ import java.io.DataOutputStream;
import java.io.IOException;
import java.util.List;
import universalelectricity.core.UniversalElectricity;
import universalelectricity.core.implement.IItemElectric;
import buildcraft.api.power.IPowerProvider;
@ -79,7 +77,7 @@ public abstract class TileEntityElectricMachine extends TileEntityBasicMachine
IElectricItem item = (IElectricItem)inventory[1].getItem();
if(item.canProvideEnergy())
{
double gain = ElectricItem.discharge(inventory[1], (int)((MAX_ELECTRICITY - electricityStored)*UniversalElectricity.TO_IC2_RATIO), 3, false, false)*UniversalElectricity.IC2_RATIO;
double gain = ElectricItem.discharge(inventory[1], (int)((MAX_ELECTRICITY - electricityStored)*Mekanism.TO_IC2), 3, false, false)*Mekanism.FROM_IC2;
setJoules(electricityStored + gain);
}
}

View file

@ -4,7 +4,6 @@ import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import universalelectricity.core.UniversalElectricity;
import universalelectricity.core.electricity.ElectricInfo;
import universalelectricity.core.electricity.ElectricityManager;
import universalelectricity.core.implement.IConductor;
@ -70,7 +69,7 @@ public class TileEntityEnergyCube extends TileEntityElectricBlock implements IEn
if(PowerFramework.currentFramework != null)
{
powerProvider = PowerFramework.currentFramework.createPowerProvider();
powerProvider.configure(0, 2, 2000, 1, (int)(tier.MAX_ELECTRICITY*UniversalElectricity.TO_BC_RATIO));
powerProvider.configure(0, 2, 2000, 1, (int)(tier.MAX_ELECTRICITY*Mekanism.TO_BC));
}
}
@ -117,7 +116,7 @@ public class TileEntityEnergyCube extends TileEntityElectricBlock implements IEn
}
else if(inventory[0].getItem() instanceof IElectricItem)
{
double sent = ElectricItem.charge(inventory[0], (int)(electricityStored*UniversalElectricity.TO_IC2_RATIO), 3, false, false)*UniversalElectricity.IC2_RATIO;
double sent = ElectricItem.charge(inventory[0], (int)(electricityStored*Mekanism.TO_IC2), 3, false, false)*Mekanism.FROM_IC2;
setJoules(electricityStored - sent);
}
}
@ -150,7 +149,7 @@ public class TileEntityEnergyCube extends TileEntityElectricBlock implements IEn
IElectricItem item = (IElectricItem)inventory[1].getItem();
if(item.canProvideEnergy())
{
double gain = ElectricItem.discharge(inventory[1], (int)((tier.MAX_ELECTRICITY - electricityStored)*UniversalElectricity.TO_IC2_RATIO), 3, false, false)*UniversalElectricity.IC2_RATIO;
double gain = ElectricItem.discharge(inventory[1], (int)((tier.MAX_ELECTRICITY - electricityStored)*Mekanism.TO_IC2), 3, false, false)*Mekanism.FROM_IC2;
setJoules(electricityStored + gain);
}
}
@ -174,7 +173,7 @@ public class TileEntityEnergyCube extends TileEntityElectricBlock implements IEn
{
if(electricityStored >= output)
{
setJoules(electricityStored - (output - EnergyNet.getForWorld(worldObj).emitEnergyFrom(this, output))*UniversalElectricity.IC2_RATIO);
setJoules(electricityStored - (output*Mekanism.TO_IC2 - EnergyNet.getForWorld(worldObj).emitEnergyFrom(this, (int)(output*Mekanism.TO_IC2)))*Mekanism.FROM_IC2);
}
}
@ -183,20 +182,22 @@ public class TileEntityEnergyCube extends TileEntityElectricBlock implements IEn
if(isPowerReceptor(tileEntity))
{
IPowerReceptor receptor = (IPowerReceptor)tileEntity;
double electricityNeeded = Math.min(receptor.getPowerProvider().getMinEnergyReceived(), receptor.getPowerProvider().getMaxEnergyReceived())*UniversalElectricity.BC3_RATIO;
double electricityNeeded = Math.min(receptor.getPowerProvider().getMinEnergyReceived(), receptor.getPowerProvider().getMaxEnergyReceived())*Mekanism.FROM_BC;
float transferEnergy = (float)Math.max(Math.min(Math.min(electricityNeeded, electricityStored), 80000), 0);
receptor.getPowerProvider().receiveEnergy((float)(transferEnergy*UniversalElectricity.TO_BC_RATIO), ForgeDirection.getOrientation(facing).getOpposite());
receptor.getPowerProvider().receiveEnergy((float)(transferEnergy*Mekanism.FROM_BC), ForgeDirection.getOrientation(facing).getOpposite());
setJoules(electricityStored - (int)transferEnergy);
}
else if(tileEntity instanceof TileEntityConductor)
else if(tileEntity instanceof IConductor)
{
double joulesNeeded = ElectricityManager.instance.getElectricityRequired(((IConductor) tileEntity).getNetwork());
double transferAmps = Math.max(Math.min(Math.min(ElectricInfo.getAmps(joulesNeeded, getVoltage()), ElectricInfo.getAmps(electricityStored*UniversalElectricity.IC2_RATIO, getVoltage())), 80), 0);
double joulesNeeded = ElectricityManager.instance.getElectricityRequired(((IConductor)tileEntity).getNetwork());
double transferAmps = Math.max(Math.min(Math.min(ElectricInfo.getAmps(joulesNeeded, getVoltage()), ElectricInfo.getAmps(electricityStored, getVoltage())), 80), 0);
if (!worldObj.isRemote)
{
ElectricityManager.instance.produceElectricity(this, (IConductor)tileEntity, transferAmps, getVoltage());
}
setJoules(electricityStored - (int)(ElectricInfo.getJoules(transferAmps, getVoltage())*UniversalElectricity.TO_IC2_RATIO));
setJoules(electricityStored - ElectricInfo.getJoules(transferAmps, getVoltage()));
}
}
}
@ -211,13 +212,13 @@ public class TileEntityEnergyCube extends TileEntityElectricBlock implements IEn
@Override
public int getStored()
{
return (int)(electricityStored*UniversalElectricity.IC2_RATIO);
return (int)(electricityStored*Mekanism.FROM_IC2);
}
@Override
public int getCapacity()
{
return (int)(tier.MAX_ELECTRICITY*UniversalElectricity.IC2_RATIO);
return (int)(tier.MAX_ELECTRICITY*Mekanism.FROM_IC2);
}
@Override
@ -235,19 +236,21 @@ public class TileEntityEnergyCube extends TileEntityElectricBlock implements IEn
@Override
public int injectEnergy(Direction direction, int i)
{
double givenEnergy = i*Mekanism.FROM_IC2;
double rejects = 0;
double neededEnergy = tier.MAX_ELECTRICITY-electricityStored;
if(i <= neededEnergy)
if(givenEnergy <= neededEnergy)
{
electricityStored += i;
electricityStored += givenEnergy;
}
else if(i > neededEnergy)
else if(givenEnergy > neededEnergy)
{
electricityStored += neededEnergy;
rejects = i-neededEnergy;
rejects = givenEnergy-neededEnergy;
}
return (int)(rejects*UniversalElectricity.TO_IC2_RATIO);
return (int)(rejects*Mekanism.TO_IC2);
}
@Override

View file

@ -5,10 +5,12 @@ import universalelectricity.core.vector.Vector3;
import com.google.common.io.ByteArrayDataInput;
import net.minecraftforge.common.ForgeDirection;
import mekanism.api.EnumGas;
import mekanism.api.IGasAcceptor;
import mekanism.api.IGasStorage;
import mekanism.api.IStorageTank;
import net.minecraft.src.*;
public class TileEntityGasTank extends TileEntityContainerBlock implements IGasStorage, IGasAcceptor

View file

@ -26,6 +26,7 @@ import net.minecraftforge.common.ForgeDirection;
* 3: Hydrogen Generator
* 4: Bio-Generator
* 5: Advanced Solar Generator
* 6: Hydro Generator
* @author AidanBrady
*
*/

View file

@ -0,0 +1,5 @@
package mekanism.generators.common;
public class ContainerHydroGenerator {
}

View file

@ -11,6 +11,7 @@ import net.minecraft.src.*;
* 3: Hydrogen Generator
* 4: Bio-Generator
* 5: Advanced Solar Generator
* 6: Hydro Generator
* @author AidanBrady
*
*/
@ -53,9 +54,9 @@ public class ItemBlockGenerator extends ItemBlock
canPlace = true;
}
for(int xPos=-1;xPos<=2;xPos++)
for(int xPos=-1;xPos<=1;xPos++)
{
for(int zPos=-1;zPos<=2;zPos++)
for(int zPos=-1;zPos<=1;zPos++)
{
if(world.getBlockId(x+xPos, y+2, z+zPos) != 0)
canPlace = false;
@ -96,6 +97,9 @@ public class ItemBlockGenerator extends ItemBlock
case 5:
name = "AdvancedSolarGenerator";
break;
case 6:
name = "HydroGenerator";
break;
default:
name = "Unknown";
break;

View file

@ -18,9 +18,9 @@ public class TileEntityAdvancedSolarGenerator extends TileEntitySolarGenerator i
{
Mekanism.NullRender.makeFakeBlock(worldObj, new Vector3(xCoord, yCoord+1, zCoord), new Vector3(xCoord, yCoord, zCoord));
for(int x=-1;x<2;x++)
for(int x=-1;x<=1;x++)
{
for(int z=-1;z<2;z++)
for(int z=-1;z<=1;z++)
{
Mekanism.NullRender.makeFakeBlock(worldObj, new Vector3(xCoord+x, yCoord+2, zCoord+z), position);
}
@ -32,9 +32,9 @@ public class TileEntityAdvancedSolarGenerator extends TileEntitySolarGenerator i
{
worldObj.setBlock(xCoord, yCoord+1, zCoord, 0);
for(int x=-1;x<2;x++)
for(int x=-1;x<=1;x++)
{
for(int z=-1;z<2;z++)
for(int z=-1;z<=1;z++)
{
worldObj.setBlock(xCoord+x, yCoord+2, zCoord+z, 0);
}

View file

@ -2,17 +2,20 @@ package mekanism.generators.common;
import ic2.api.ElectricItem;
import ic2.api.IElectricItem;
import universalelectricity.core.UniversalElectricity;
import universalelectricity.core.electricity.ElectricInfo;
import universalelectricity.core.implement.IItemElectric;
import com.google.common.io.ByteArrayDataInput;
import dan200.computer.api.IComputerAccess;
import mekanism.common.LiquidSlot;
import mekanism.common.Mekanism;
import mekanism.common.PacketHandler;
import net.minecraft.src.*;
import net.minecraftforge.common.ForgeDirection;
import net.minecraftforge.liquids.ILiquidTank;
import net.minecraftforge.liquids.ITankContainer;
@ -69,7 +72,7 @@ public class TileEntityBioGenerator extends TileEntityGenerator implements ITank
}
else if(inventory[1].getItem() instanceof IElectricItem)
{
double sent = ElectricItem.charge(inventory[1], (int)(electricityStored*UniversalElectricity.TO_IC2_RATIO), 3, false, false)*UniversalElectricity.IC2_RATIO;
double sent = ElectricItem.charge(inventory[1], (int)(electricityStored*Mekanism.TO_IC2), 3, false, false)*Mekanism.FROM_IC2;
setJoules(electricityStored - sent);
}
}

View file

@ -4,7 +4,7 @@ import ic2.api.Direction;
import ic2.api.ElectricItem;
import ic2.api.IElectricItem;
import ic2.api.IEnergySink;
import universalelectricity.core.UniversalElectricity;
import universalelectricity.core.electricity.ElectricInfo;
import universalelectricity.core.implement.IElectricityReceiver;
import universalelectricity.core.implement.IItemElectric;
@ -21,6 +21,7 @@ import mekanism.api.IGasStorage;
import mekanism.api.IStorageTank;
import mekanism.api.ITileNetwork;
import mekanism.common.LiquidSlot;
import mekanism.common.Mekanism;
import mekanism.common.PacketHandler;
import mekanism.common.TileEntityElectricBlock;
import net.minecraft.src.*;
@ -97,7 +98,7 @@ public class TileEntityElectrolyticSeparator extends TileEntityElectricBlock imp
IElectricItem item = (IElectricItem)inventory[3].getItem();
if(item.canProvideEnergy())
{
double gain = ElectricItem.discharge(inventory[3], (int)((MAX_ELECTRICITY - electricityStored)*UniversalElectricity.TO_IC2_RATIO), 3, false, false)*UniversalElectricity.IC2_RATIO;
double gain = ElectricItem.discharge(inventory[3], (int)((MAX_ELECTRICITY - electricityStored)*Mekanism.TO_IC2), 3, false, false)*Mekanism.FROM_IC2;
setJoules(electricityStored + gain);
}
}
@ -327,19 +328,19 @@ public class TileEntityElectrolyticSeparator extends TileEntityElectricBlock imp
@Override
public double getMaxJoules(Object... data)
{
return MAX_ELECTRICITY*UniversalElectricity.IC2_RATIO;
return MAX_ELECTRICITY*Mekanism.FROM_IC2;
}
@Override
public double getJoules(Object... data)
{
return electricityStored*UniversalElectricity.IC2_RATIO;
return electricityStored*Mekanism.FROM_IC2;
}
@Override
public void setJoules(double joules, Object... data)
{
setEnergy((int)(joules*UniversalElectricity.TO_IC2_RATIO));
setEnergy((int)(joules*Mekanism.TO_IC2));
}
@Override
@ -363,7 +364,7 @@ public class TileEntityElectrolyticSeparator extends TileEntityElectricBlock imp
@Override
public double wattRequest()
{
return electricityStored < MAX_ELECTRICITY ? ElectricInfo.getWatts((16)*UniversalElectricity.IC2_RATIO) : 0;
return electricityStored < MAX_ELECTRICITY ? ElectricInfo.getWatts((16)*Mekanism.FROM_IC2) : 0;
}
@Override
@ -405,7 +406,7 @@ public class TileEntityElectrolyticSeparator extends TileEntityElectricBlock imp
rejects = i-neededEnergy;
}
return (int)(rejects*UniversalElectricity.TO_IC2_RATIO);
return (int)(rejects*Mekanism.TO_IC2);
}
@Override

View file

@ -16,7 +16,7 @@ import ic2.api.EnergyNet;
import ic2.api.IElectricItem;
import ic2.api.IEnergySource;
import ic2.api.IEnergyStorage;
import universalelectricity.core.UniversalElectricity;
import universalelectricity.core.electricity.ElectricInfo;
import universalelectricity.core.electricity.ElectricityManager;
import universalelectricity.core.implement.IConductor;
@ -24,8 +24,10 @@ import universalelectricity.core.implement.IElectricityProducer;
import universalelectricity.core.implement.IJouleStorage;
import universalelectricity.core.vector.Vector3;
import universalelectricity.prefab.tile.TileEntityConductor;
import mekanism.common.Mekanism;
import mekanism.common.TileEntityElectricBlock;
import net.minecraft.src.*;
import net.minecraftforge.common.ForgeDirection;
@ -59,7 +61,7 @@ public abstract class TileEntityGenerator extends TileEntityElectricBlock implem
if(PowerFramework.currentFramework != null)
{
powerProvider = PowerFramework.currentFramework.createPowerProvider();
powerProvider.configure(0, 2, 2000, 1, (int)(MAX_ELECTRICITY*UniversalElectricity.TO_BC_RATIO));
powerProvider.configure(0, 2, 2000, 1, (int)(MAX_ELECTRICITY*Mekanism.TO_BC));
}
}
@ -74,7 +76,7 @@ public abstract class TileEntityGenerator extends TileEntityElectricBlock implem
{
if(electricityStored >= output)
{
setJoules(electricityStored - (output - EnergyNet.getForWorld(worldObj).emitEnergyFrom(this, output))*UniversalElectricity.IC2_RATIO);
setJoules(electricityStored - (output*Mekanism.TO_IC2 - EnergyNet.getForWorld(worldObj).emitEnergyFrom(this, (int)(output*Mekanism.TO_IC2)))*Mekanism.FROM_IC2);
}
}
@ -83,20 +85,22 @@ public abstract class TileEntityGenerator extends TileEntityElectricBlock implem
if(isPowerReceptor(tileEntity))
{
IPowerReceptor receptor = (IPowerReceptor)tileEntity;
double electricityNeeded = Math.min(receptor.getPowerProvider().getMinEnergyReceived(), receptor.getPowerProvider().getMaxEnergyReceived())*UniversalElectricity.BC3_RATIO;
double electricityNeeded = Math.min(receptor.getPowerProvider().getMinEnergyReceived(), receptor.getPowerProvider().getMaxEnergyReceived())*Mekanism.FROM_BC;
float transferEnergy = (float)Math.max(Math.min(Math.min(electricityNeeded, electricityStored), 80000), 0);
receptor.getPowerProvider().receiveEnergy((float)(transferEnergy*UniversalElectricity.TO_BC_RATIO), ForgeDirection.getOrientation(facing).getOpposite());
receptor.getPowerProvider().receiveEnergy((float)(transferEnergy*Mekanism.TO_BC), ForgeDirection.getOrientation(facing).getOpposite());
setJoules(electricityStored - (int)transferEnergy);
}
else if(tileEntity instanceof TileEntityConductor)
else if(tileEntity instanceof IConductor)
{
double joulesNeeded = ElectricityManager.instance.getElectricityRequired(((IConductor) tileEntity).getNetwork());
double transferAmps = Math.max(Math.min(Math.min(ElectricInfo.getAmps(joulesNeeded, getVoltage()), ElectricInfo.getAmps(electricityStored*UniversalElectricity.IC2_RATIO, getVoltage())), 80), 0);
double joulesNeeded = ElectricityManager.instance.getElectricityRequired(((IConductor)tileEntity).getNetwork());
double transferAmps = Math.max(Math.min(Math.min(ElectricInfo.getAmps(joulesNeeded, getVoltage()), ElectricInfo.getAmps(electricityStored, getVoltage())), 80), 0);
if (!worldObj.isRemote)
{
ElectricityManager.instance.produceElectricity(this, (IConductor)tileEntity, transferAmps, getVoltage());
}
setJoules(electricityStored - (int)(ElectricInfo.getJoules(transferAmps, getVoltage())*UniversalElectricity.TO_IC2_RATIO));
setJoules(electricityStored - ElectricInfo.getJoules(transferAmps, getVoltage()));
}
}
}
@ -210,13 +214,13 @@ public abstract class TileEntityGenerator extends TileEntityElectricBlock implem
@Override
public double getMaxJoules(Object... data)
{
return MAX_ELECTRICITY*UniversalElectricity.IC2_RATIO;
return MAX_ELECTRICITY*Mekanism.FROM_IC2;
}
@Override
public double getJoules(Object... data)
{
return electricityStored*UniversalElectricity.IC2_RATIO;
return electricityStored*Mekanism.FROM_IC2;
}
@Override
@ -234,13 +238,13 @@ public abstract class TileEntityGenerator extends TileEntityElectricBlock implem
@Override
public int getStored()
{
return (int)(electricityStored*UniversalElectricity.IC2_RATIO);
return (int)(electricityStored*Mekanism.FROM_IC2);
}
@Override
public int getCapacity()
{
return (int)(MAX_ELECTRICITY*UniversalElectricity.IC2_RATIO);
return (int)(MAX_ELECTRICITY*Mekanism.FROM_IC2);
}
@Override

View file

@ -4,9 +4,10 @@ import java.io.DataOutputStream;
import ic2.api.ElectricItem;
import ic2.api.IElectricItem;
import universalelectricity.core.UniversalElectricity;
import universalelectricity.core.electricity.ElectricInfo;
import universalelectricity.core.implement.IItemElectric;
import buildcraft.api.power.PowerFramework;
import com.google.common.io.ByteArrayDataInput;
@ -16,6 +17,7 @@ import dan200.computer.api.IComputerAccess;
import mekanism.common.LiquidSlot;
import mekanism.common.Mekanism;
import mekanism.common.PacketHandler;
import net.minecraft.src.*;
import net.minecraftforge.common.ForgeDirection;
import net.minecraftforge.liquids.ILiquidTank;
@ -73,7 +75,7 @@ public class TileEntityHeatGenerator extends TileEntityGenerator implements ITan
}
else if(inventory[1].getItem() instanceof IElectricItem)
{
double sent = ElectricItem.charge(inventory[1], (int)(electricityStored*UniversalElectricity.TO_IC2_RATIO), 3, false, false)*UniversalElectricity.IC2_RATIO;
double sent = ElectricItem.charge(inventory[1], (int)(electricityStored*Mekanism.TO_IC2), 3, false, false)*Mekanism.FROM_IC2;
setJoules(electricityStored - sent);
}
}

View file

@ -0,0 +1,11 @@
/*package mekanism.generators.common;
import net.minecraft.src.*;
public class TileEntityHydroGenerator extends TileEntityGenerator
{
public TileEntityHydroGenerator()
{
super("Hydro Generator", 120000, 256);
}
}*/

View file

@ -111,7 +111,7 @@ public class TileEntityHydrogenGenerator extends TileEntityGenerator implements
}
hydrogenStored--;
setJoules(electricityStored + 2000);
setJoules(electricityStored + 1600);
}
else {
if(!worldObj.isRemote)
@ -144,7 +144,7 @@ public class TileEntityHydrogenGenerator extends TileEntityGenerator implements
@Override
public boolean canOperate()
{
return electricityStored < MAX_ELECTRICITY && hydrogenStored > 0;
return electricityStored < MAX_ELECTRICITY && hydrogenStored-10 > 0;
}
/**

View file

@ -2,15 +2,18 @@ package mekanism.generators.common;
import ic2.api.ElectricItem;
import ic2.api.IElectricItem;
import universalelectricity.core.UniversalElectricity;
import universalelectricity.core.electricity.ElectricInfo;
import universalelectricity.core.implement.IItemElectric;
import com.google.common.io.ByteArrayDataInput;
import dan200.computer.api.IComputerAccess;
import mekanism.common.Mekanism;
import mekanism.common.PacketHandler;
import mekanism.generators.common.BlockGenerator.GeneratorType;
import net.minecraft.src.*;
public class TileEntitySolarGenerator extends TileEntityGenerator
@ -80,7 +83,7 @@ public class TileEntitySolarGenerator extends TileEntityGenerator
}
else if(inventory[0].getItem() instanceof IElectricItem)
{
double sent = ElectricItem.charge(inventory[0], (int)(electricityStored*UniversalElectricity.TO_IC2_RATIO), 3, false, false)*UniversalElectricity.IC2_RATIO;
double sent = ElectricItem.charge(inventory[0], (int)(electricityStored*Mekanism.TO_IC2), 3, false, false)*Mekanism.FROM_IC2;
setJoules(electricityStored - sent);
}
}

View file

@ -90,8 +90,6 @@ public class ClientProxy extends CommonProxy
@Override
public void loadUtilities()
{
System.out.println("[Mekanism] Beginning utility initiative...");
if(FMLClientHandler.instance().getClient().gameSettings.snooperEnabled)
{
new ThreadSendData();

View file

@ -27,17 +27,17 @@ public class GuiEnergyCube extends GuiContainer
protected void drawGuiContainerForegroundLayer(int par1, int par2)
{
String capacityInfo = ElectricInfo.getDisplayShort(tileEntity.electricityStored, ElectricUnit.JOULES) + "/" + ElectricInfo.getDisplayShort(tileEntity.tier.MAX_ELECTRICITY, ElectricUnit.JOULES);
String outputInfo = "Out: " + tileEntity.output + "w";
String outputInfo = "Voltage: " + tileEntity.getVoltage() + "v";
fontRenderer.drawString(tileEntity.tier.name + " Energy Cube", 43, 6, 0x404040);
fontRenderer.drawString(capacityInfo, 45, 40, 0x404040);
fontRenderer.drawString(outputInfo, 45, 49, 0x404040);
fontRenderer.drawString(StatCollector.translateToLocal("container.inventory"), 8, ySize - 96 + 2, 0x404040);
fontRenderer.drawString(capacityInfo, 45, 40, 0x00CD00);
fontRenderer.drawString(outputInfo, 45, 49, 0x00CD00);
fontRenderer.drawString(StatCollector.translateToLocal("container.inventory"), 8, ySize - 96 + 2, 0x00CD00);
}
@Override
protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3)
{
int texture = mc.renderEngine.getTexture("/resources/mekanism/gui/GuiPowerUnit.png");
int texture = mc.renderEngine.getTexture("/resources/mekanism/gui/GuiEnergyCube.png");
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
mc.renderEngine.bindTexture(texture);

View file

@ -31,16 +31,18 @@ public class BlockRenderingHandler implements ISimpleBlockRenderingHandler
if(metadata == 4)
{
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
GL11.glTranslated(0.0F, -1.1F, 0.0F);
GL11.glRotatef(90F, 0.0F, -1.0F, 0.0F);
GL11.glTranslated(0.0F, -1.0F, 0.0F);
GL11.glBindTexture(3553, FMLClientHandler.instance().getClient().renderEngine.getTexture("/resources/mekanism/render/BioGenerator.png"));
bioGenerator.render(0.0625F);
}
else if(metadata == 5)
{
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F);
GL11.glTranslatef(0.0F, 0.3F, 0.0F);
GL11.glBindTexture(3553, FMLClientHandler.instance().getClient().renderEngine.getTexture("/resources/mekanism/render/AdvancedSolarGenerator.png"));
solarGenerator.render(0.0F, 0.024F);
solarGenerator.render(0.0F, 0.022F);
}
else {
ForgeHooksClient.bindTexture(block.getTextureFile(), 0);

View file

@ -28,9 +28,9 @@ public class GuiBioGenerator extends GuiContainer
{
fontRenderer.drawString(tileEntity.fullName, 45, 6, 0x404040);
fontRenderer.drawString("Inventory", 8, (ySize - 96) + 2, 0x404040);
fontRenderer.drawString(ElectricInfo.getDisplayShort(tileEntity.electricityStored, ElectricUnit.JOULES), 51, 26, 0x404040);
fontRenderer.drawString("BioFuel: " + tileEntity.bioFuelSlot.liquidStored, 51, 35, 0x404040);
fontRenderer.drawString("Out: " + tileEntity.output + "w", 51, 44, 0x404040);
fontRenderer.drawString(ElectricInfo.getDisplayShort(tileEntity.electricityStored, ElectricUnit.JOULES), 51, 26, 0x00CD00);
fontRenderer.drawString("BioFuel: " + tileEntity.bioFuelSlot.liquidStored, 51, 35, 0x00CD00);
fontRenderer.drawString(tileEntity.getVoltage() + "v", 51, 44, 0x00CD00);
}
@Override

View file

@ -28,9 +28,9 @@ public class GuiHeatGenerator extends GuiContainer
{
fontRenderer.drawString(tileEntity.fullName, 45, 6, 0x404040);
fontRenderer.drawString("Inventory", 8, (ySize - 96) + 2, 0x404040);
fontRenderer.drawString(ElectricInfo.getDisplayShort(tileEntity.electricityStored, ElectricUnit.JOULES), 51, 26, 0x404040);
fontRenderer.drawString("Fuel: " + tileEntity.fuelSlot.liquidStored, 51, 35, 0x404040);
fontRenderer.drawString("Out: " + tileEntity.output + "w", 51, 44, 0x404040);
fontRenderer.drawString(ElectricInfo.getDisplayShort(tileEntity.electricityStored, ElectricUnit.JOULES), 51, 26, 0x00CD00);
fontRenderer.drawString("Fuel: " + tileEntity.fuelSlot.liquidStored, 51, 35, 0x00CD00);
fontRenderer.drawString(tileEntity.getVoltage() + "v", 51, 44, 0x00CD00);
}
@Override

View file

@ -28,9 +28,9 @@ public class GuiHydrogenGenerator extends GuiContainer
{
fontRenderer.drawString(tileEntity.fullName, 45, 6, 0x404040);
fontRenderer.drawString("Inventory", 8, (ySize - 96) + 2, 0x404040);
fontRenderer.drawString(ElectricInfo.getDisplayShort(tileEntity.electricityStored, ElectricUnit.JOULES), 51, 26, 0x404040);
fontRenderer.drawString("H: " + tileEntity.hydrogenStored, 51, 35, 0x404040);
fontRenderer.drawString("Out: " + tileEntity.output + "w", 51, 44, 0x404040);
fontRenderer.drawString(ElectricInfo.getDisplayShort(tileEntity.electricityStored, ElectricUnit.JOULES), 51, 26, 0x00CD00);
fontRenderer.drawString("H: " + tileEntity.hydrogenStored, 51, 35, 0x00CD00);
fontRenderer.drawString(tileEntity.getVoltage() + "v", 51, 44, 0x00CD00);
}
@Override

View file

@ -30,9 +30,9 @@ public class GuiSolarGenerator extends GuiContainer
{
fontRenderer.drawString(tileEntity.fullName, tileEntity.fullName != "Advanced Solar Generator" ? 45 : 30, 6, 0x404040);
fontRenderer.drawString("Inventory", 8, (ySize - 96) + 2, 0x404040);
fontRenderer.drawString(ElectricInfo.getDisplayShort(tileEntity.electricityStored, ElectricUnit.JOULES), 51, 26, 0x404040);
fontRenderer.drawString("Sun: " + tileEntity.seesSun, 51, 35, 0x404040);
fontRenderer.drawString("Out: " + tileEntity.output + "w", 51, 44, 0x404040);
fontRenderer.drawString(ElectricInfo.getDisplayShort(tileEntity.electricityStored, ElectricUnit.JOULES), 51, 26, 0x00CD00);
fontRenderer.drawString("Sun: " + tileEntity.seesSun, 51, 35, 0x00CD00);
fontRenderer.drawString(tileEntity.getVoltage() + "v", 51, 44, 0x00CD00);
}
@Override