v5.2.3 Release

*Made machines store more energy.
*Full-fledged BuildCraft power framework support.
*Made electric items work with IC2.
*Added silver ore processing.
*Fixed redstone in machines.
*Other various tweaks and enhancements.
This commit is contained in:
Aidan Brady 2013-01-31 19:43:39 -05:00
parent 27eff79971
commit fb33db1ce2
25 changed files with 269 additions and 63 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 34 KiB

View file

@ -14,13 +14,14 @@ public final class Tier
*/
public static enum EnergyCubeTier
{
BASIC("Basic", 1000000, 10000),
ADVANCED("Advanced", 2500000, 25000),
ELITE("Elite", 5000000, 50000);
BASIC("Basic", 1000000, 10000, 128),
ADVANCED("Advanced", 2500000, 25000, 256),
ELITE("Elite", 5000000, 50000, 512);
public double MAX_ELECTRICITY;
public double VOLTAGE;
public int DIVIDER;
public int OUTPUT;
public String name;
public static EnergyCubeTier getFromName(String tierName)
@ -37,11 +38,12 @@ public final class Tier
return BASIC;
}
private EnergyCubeTier(String s, double maxEnergy, int divider)
private EnergyCubeTier(String s, double maxEnergy, int divider, int out)
{
name = s;
MAX_ELECTRICITY = maxEnergy;
DIVIDER = divider;
OUTPUT = out;
}
}

View file

@ -1,5 +1,7 @@
package mekanism.common;
import ic2.api.ICustomElectricItem;
import java.util.List;
import mekanism.api.IEnergyCube;
@ -16,7 +18,7 @@ import universalelectricity.core.electricity.ElectricInfo;
import universalelectricity.core.electricity.ElectricInfo.ElectricUnit;
import universalelectricity.core.implement.IItemElectric;
public class ItemBlockEnergyCube extends ItemBlock implements IItemElectric, IEnergyCube
public class ItemBlockEnergyCube extends ItemBlock implements IItemElectric, IEnergyCube, ICustomElectricItem
{
public Block metaBlock;
@ -164,6 +166,12 @@ public class ItemBlockEnergyCube extends ItemBlock implements IItemElectric, IEn
TileEntityEnergyCube tileEntity = (TileEntityEnergyCube)world.getBlockTileEntity(x, y, z);
tileEntity.tier = ((IEnergyCube)stack.getItem()).getTier(stack);
tileEntity.electricityStored = getJoules(stack);
tileEntity.output = tileEntity.tier.OUTPUT;
if(tileEntity.powerProvider != null)
{
tileEntity.powerProvider.configure(0, 0, 100, 0, (int)(tileEntity.tier.MAX_ELECTRICITY*Mekanism.TO_BC));
}
}
return place;
@ -195,4 +203,79 @@ public class ItemBlockEnergyCube extends ItemBlock implements IItemElectric, IEn
itemstack.stackTagCompound.setString("tier", tier.name);
}
@Override
public int charge(ItemStack itemStack, int amount, int tier, boolean ignoreTransferLimit, boolean simulate)
{
double givenEnergy = amount*Mekanism.FROM_IC2;
double energyNeeded = getTier(itemStack).MAX_ELECTRICITY-getJoules(itemStack);
double energyToStore = Math.min(Math.min(amount, getTier(itemStack).MAX_ELECTRICITY*0.01), energyNeeded);
if(!simulate)
{
setJoules(getJoules(itemStack) + energyToStore, itemStack);
}
return (int)(energyToStore*Mekanism.TO_IC2);
}
@Override
public int discharge(ItemStack itemStack, int amount, int tier, boolean ignoreTransferLimit, boolean simulate)
{
double energyWanted = amount*Mekanism.FROM_IC2;
double energyToGive = Math.min(Math.min(energyWanted, getTier(itemStack).MAX_ELECTRICITY*0.01), getJoules(itemStack));
if(!simulate)
{
setJoules(getJoules(itemStack) - energyToGive, itemStack);
}
return (int)(energyToGive*Mekanism.TO_IC2);
}
@Override
public boolean canUse(ItemStack itemStack, int amount)
{
return getJoules(itemStack) >= amount*Mekanism.FROM_IC2;
}
@Override
public boolean canShowChargeToolTip(ItemStack itemStack)
{
return false;
}
@Override
public boolean canProvideEnergy()
{
return canProduceElectricity();
}
@Override
public int getChargedItemId()
{
return itemID;
}
@Override
public int getEmptyItemId()
{
return itemID;
}
@Override
public int getMaxCharge()
{
return 0;
}
@Override
public int getTier()
{
return 3;
}
@Override
public int getTransferLimit()
{
return (int)(getVoltage()*Mekanism.TO_IC2);
}
}

View file

@ -8,7 +8,7 @@ import net.minecraft.item.ItemStack;
public class ItemClump extends ItemMekanism
{
public static String[] en_USNames = {"Iron", "Gold", "Platinum",
"Copper", "Tin"};
"Copper", "Tin", "Silver"};
public ItemClump(int id)
{
@ -27,6 +27,7 @@ public class ItemClump extends ItemMekanism
case 2: return 210;
case 3: return 211;
case 4: return 212;
case 5: return 214;
default: return 0;
}
}
@ -34,7 +35,7 @@ public class ItemClump extends ItemMekanism
@Override
public void getSubItems(int id, CreativeTabs tabs, List itemList)
{
for (int counter = 0; counter <= 4; ++counter)
for (int counter = 0; counter <= 5; ++counter)
{
itemList.add(new ItemStack(this, 1, counter));
}

View file

@ -8,7 +8,7 @@ import net.minecraft.item.ItemStack;
public class ItemDirtyDust extends ItemMekanism
{
public static String[] en_USNames = {"Iron", "Gold", "Platinum",
"Copper", "Tin"};
"Copper", "Tin", "Silver"};
public ItemDirtyDust(int id)
{
@ -27,6 +27,7 @@ public class ItemDirtyDust extends ItemMekanism
case 2: return 194;
case 3: return 195;
case 4: return 196;
case 5: return 198;
default: return 0;
}
}
@ -34,7 +35,7 @@ public class ItemDirtyDust extends ItemMekanism
@Override
public void getSubItems(int id, CreativeTabs tabs, List itemList)
{
for (int counter = 0; counter <= 4; ++counter)
for (int counter = 0; counter <= 5; ++counter)
{
itemList.add(new ItemStack(this, 1, counter));
}

View file

@ -9,7 +9,7 @@ public class ItemDust extends ItemMekanism
{
public static String[] en_USNames = {"Iron", "Gold", "Platinum",
"Obsidian", "Diamond", "Steel",
"Copper", "Tin"};
"Copper", "Tin", "Silver"};
public ItemDust(int id)
{
@ -31,6 +31,7 @@ public class ItemDust extends ItemMekanism
case 5: return 245;
case 6: return 243;
case 7: return 244;
case 8: return 246;
default: return 0;
}
}
@ -38,7 +39,7 @@ public class ItemDust extends ItemMekanism
@Override
public void getSubItems(int id, CreativeTabs tabs, List itemList)
{
for (int counter = 0; counter <= 7; ++counter)
for (int counter = 0; counter <= 8; ++counter)
{
itemList.add(new ItemStack(this, 1, counter));
}

View file

@ -1,5 +1,7 @@
package mekanism.common;
import ic2.api.ICustomElectricItem;
import java.util.List;
import net.minecraft.creativetab.CreativeTabs;
@ -13,7 +15,7 @@ import universalelectricity.core.electricity.ElectricInfo;
import universalelectricity.core.electricity.ElectricInfo.ElectricUnit;
import universalelectricity.core.implement.IItemElectric;
public class ItemEnergized extends ItemMekanism implements IItemElectric
public class ItemEnergized extends ItemMekanism implements IItemElectric, ICustomElectricItem
{
/** The maximum amount of energy this item can hold. */
public double MAX_ELECTRICITY;
@ -162,4 +164,79 @@ public class ItemEnergized extends ItemMekanism implements IItemElectric
{
return true;
}
@Override
public int charge(ItemStack itemStack, int amount, int tier, boolean ignoreTransferLimit, boolean simulate)
{
double givenEnergy = amount*Mekanism.FROM_IC2;
double energyNeeded = MAX_ELECTRICITY-getJoules(itemStack);
double energyToStore = Math.min(Math.min(amount, MAX_ELECTRICITY*0.01), energyNeeded);
if(!simulate)
{
setJoules(getJoules(itemStack) + energyToStore, itemStack);
}
return (int)(energyToStore*Mekanism.TO_IC2);
}
@Override
public int discharge(ItemStack itemStack, int amount, int tier, boolean ignoreTransferLimit, boolean simulate)
{
double energyWanted = amount*Mekanism.FROM_IC2;
double energyToGive = Math.min(Math.min(energyWanted, MAX_ELECTRICITY*0.01), getJoules(itemStack));
if(!simulate)
{
setJoules(getJoules(itemStack) - energyToGive, itemStack);
}
return (int)(energyToGive*Mekanism.TO_IC2);
}
@Override
public boolean canUse(ItemStack itemStack, int amount)
{
return getJoules(itemStack) >= amount*Mekanism.FROM_IC2;
}
@Override
public boolean canShowChargeToolTip(ItemStack itemStack)
{
return false;
}
@Override
public boolean canProvideEnergy()
{
return canProduceElectricity();
}
@Override
public int getChargedItemId()
{
return itemID;
}
@Override
public int getEmptyItemId()
{
return itemID;
}
@Override
public int getMaxCharge()
{
return (int)(MAX_ELECTRICITY*Mekanism.TO_IC2);
}
@Override
public int getTier()
{
return 3;
}
@Override
public int getTransferLimit()
{
return (int)(getVoltage()*Mekanism.TO_IC2);
}
}

View file

@ -49,7 +49,7 @@ import cpw.mods.fml.server.FMLServerHandler;
* @author AidanBrady
*
*/
@Mod(modid = "Mekanism", name = "Mekanism", version = "5.2.2")
@Mod(modid = "Mekanism", name = "Mekanism", version = "5.2.3")
@NetworkMod(channels = {"Mekanism"}, clientSideRequired = true, serverSideRequired = false, packetHandler = PacketHandler.class)
public class Mekanism
{
@ -71,7 +71,7 @@ public class Mekanism
public static Configuration configuration;
/** Mekanism version number */
public static Version versionNumber = new Version(5, 2, 2);
public static Version versionNumber = new Version(5, 2, 3);
/** Map of Teleporter info. */
public static Map<Teleporter.Code, ArrayList<Teleporter.Coords>> teleporters = new HashMap<Teleporter.Code, ArrayList<Teleporter.Coords>>();
@ -423,6 +423,7 @@ public class Mekanism
LanguageRegistry.instance().addStringLocalization("item.steelDust.name", "Steel Dust");
LanguageRegistry.instance().addStringLocalization("item.copperDust.name", "Copper Dust");
LanguageRegistry.instance().addStringLocalization("item.tinDust.name", "Tin Dust");
LanguageRegistry.instance().addStringLocalization("item.silverDust.name", "Silver Dust");
//Localization for Clump
LanguageRegistry.instance().addStringLocalization("item.ironClump.name", "Iron Clump");
@ -430,6 +431,7 @@ public class Mekanism
LanguageRegistry.instance().addStringLocalization("item.platinumClump.name", "Platinum Clump");
LanguageRegistry.instance().addStringLocalization("item.copperClump.name", "Copper Clump");
LanguageRegistry.instance().addStringLocalization("item.tinClump.name", "Tin Clump");
LanguageRegistry.instance().addStringLocalization("item.silverClump.name", "Silver Clump");
//Localization for Dirty Dust
LanguageRegistry.instance().addStringLocalization("item.dirtyIronDust.name", "Dirty Iron Dust");
@ -437,6 +439,7 @@ public class Mekanism
LanguageRegistry.instance().addStringLocalization("item.dirtyPlatinumDust.name", "Dirty Platinum Dust");
LanguageRegistry.instance().addStringLocalization("item.dirtyCopperDust.name", "Dirty Copper Dust");
LanguageRegistry.instance().addStringLocalization("item.dirtyTinDust.name", "Dirty Tin Dust");
LanguageRegistry.instance().addStringLocalization("item.dirtySilverDust.name", "Dirty Silver Dust");
//Localization for Ingot
LanguageRegistry.instance().addStringLocalization("item.obsidianIngot.name", "Obsidian Ingot");
@ -550,6 +553,7 @@ public class Mekanism
OreDictionary.registerOre("dustSteel", new ItemStack(Dust, 1, 5));
OreDictionary.registerOre("dustCopper", new ItemStack(Dust, 1, 6));
OreDictionary.registerOre("dustTin", new ItemStack(Dust, 1, 7));
OreDictionary.registerOre("dustSilver", new ItemStack(Dust, 1, 8));
OreDictionary.registerOre("ingotRefinedObsidian", new ItemStack(Ingot, 1, 0));
OreDictionary.registerOre("ingotPlatinum", new ItemStack(Ingot, 1, 1));
@ -569,16 +573,19 @@ public class Mekanism
OreDictionary.registerOre("dirtyDustPlatinum", new ItemStack(DirtyDust, 1, 2));
OreDictionary.registerOre("dirtyDustCopper", new ItemStack(DirtyDust, 1, 3));
OreDictionary.registerOre("dirtyDustTin", new ItemStack(DirtyDust, 1, 4));
OreDictionary.registerOre("dirtyDustSilver", new ItemStack(DirtyDust, 1, 5));
OreDictionary.registerOre("clumpIron", new ItemStack(Clump, 1, 0));
OreDictionary.registerOre("clumpGold", new ItemStack(Clump, 1, 1));
OreDictionary.registerOre("clumpPlatinum", new ItemStack(Clump, 1, 2));
OreDictionary.registerOre("clumpCopper", new ItemStack(Clump, 1, 3));
OreDictionary.registerOre("clumpTin", new ItemStack(Clump, 1, 4));
OreDictionary.registerOre("clumpSilver", new ItemStack(Clump, 1, 5));
OreDictionary.registerOre("orePlatinum", new ItemStack(OreBlock, 1, 0));
OreDictionary.registerOre("basicCircuit", new ItemStack(ControlCircuit));
OreDictionary.registerOre("compressedCarbon", new ItemStack(CompressedCarbon));
if(hooks.IC2Loaded)
{
@ -615,6 +622,11 @@ public class Mekanism
RecipeHandler.addCrusherRecipe(ore, new ItemStack(DirtyDust, 1, 4));
}
for(ItemStack ore : OreDictionary.getOres("clumpSilver"))
{
RecipeHandler.addCrusherRecipe(ore, new ItemStack(DirtyDust, 1, 5));
}
for(ItemStack ore : OreDictionary.getOres("dirtyDustIron"))
{
RecipeHandler.addEnrichmentChamberRecipe(ore, new ItemStack(Dust, 1, 0));
@ -640,6 +652,11 @@ public class Mekanism
RecipeHandler.addEnrichmentChamberRecipe(ore, new ItemStack(Dust, 1, 7));
}
for(ItemStack ore : OreDictionary.getOres("dirtyDustSilver"))
{
RecipeHandler.addEnrichmentChamberRecipe(ore, new ItemStack(Dust, 1, 8));
}
for(ItemStack ore : OreDictionary.getOres("oreCopper"))
{
RecipeHandler.addEnrichmentChamberRecipe(ore, new ItemStack(Dust, 2, 6));
@ -673,12 +690,13 @@ public class Mekanism
try {
for(ItemStack ore : OreDictionary.getOres("oreSilver"))
{
RecipeHandler.addEnrichmentChamberRecipe(ore, MekanismUtils.getStackWithSize(OreDictionary.getOres("dustSilver").get(0), 2));
RecipeHandler.addEnrichmentChamberRecipe(ore, new ItemStack(Dust, 2, 8));
RecipeHandler.addPurificationChamberRecipe(ore, new ItemStack(Clump, 3, 5));
}
for(ItemStack ore : OreDictionary.getOres("ingotSilver"))
{
RecipeHandler.addCrusherRecipe(ore, MekanismUtils.getStackWithSize(OreDictionary.getOres("dustSilver").get(0), 1));
RecipeHandler.addCrusherRecipe(ore, new ItemStack(Dust, 1, 8));
}
} catch(Exception e) {}

View file

@ -109,7 +109,7 @@ public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicM
}
}
}
if(inventory[3].itemID == Item.redstone.itemID && electricityStored <= (MAX_ELECTRICITY-1000))
if(inventory[3].itemID == Item.redstone.itemID && electricityStored+1000 <= currentMaxElectricity)
{
setJoules(electricityStored + 1000);
--inventory[3].stackSize;

View file

@ -95,7 +95,7 @@ public abstract class TileEntityBasicMachine extends TileEntityElectricBlock imp
if(powerProvider != null)
{
int received = (int)(powerProvider.useEnergy(0, (float)((currentMaxElectricity-electricityStored)*Mekanism.TO_BC), true)*10);
int received = (int)(powerProvider.useEnergy(0, (float)((currentMaxElectricity-electricityStored)*Mekanism.TO_BC), true)*Mekanism.FROM_BC);
setJoules(electricityStored + received);
}
@ -357,6 +357,12 @@ public abstract class TileEntityBasicMachine extends TileEntityElectricBlock imp
@Override
public void detach(IComputerAccess computer) {}
@Override
public int powerRequest()
{
return (int)(currentMaxElectricity-electricityStored);
}
@Override
public ArrayList<SideData> getSideData()
{

View file

@ -12,7 +12,7 @@ public class TileEntityCombiner extends TileEntityAdvancedElectricMachine
{
public TileEntityCombiner()
{
super("Combiner.ogg", "Combiner", "/resources/mekanism/gui/GuiCombiner.png", 16, 1, 200, 1000, 200);
super("Combiner.ogg", "Combiner", "/resources/mekanism/gui/GuiCombiner.png", 16, 1, 200, 3200, 200);
}
@Override

View file

@ -10,7 +10,7 @@ public class TileEntityCrusher extends TileEntityElectricMachine
{
public TileEntityCrusher()
{
super("Crusher.ogg", "Crusher", "/resources/mekanism/gui/GuiCrusher.png", 16, 200, 1000);
super("Crusher.ogg", "Crusher", "/resources/mekanism/gui/GuiCrusher.png", 16, 200, 3200);
}
@Override

View file

@ -30,7 +30,7 @@ public abstract class TileEntityElectricBlock extends TileEntityContainerBlock i
* @param name - full name of this block
* @param maxEnergy - how much energy this block can store
*/
public TileEntityElectricBlock(String name, int maxEnergy)
public TileEntityElectricBlock(String name, double maxEnergy)
{
super(name);
MAX_ELECTRICITY = maxEnergy;
@ -38,7 +38,7 @@ public abstract class TileEntityElectricBlock extends TileEntityContainerBlock i
if(PowerFramework.currentFramework != null)
{
powerProvider = PowerFramework.currentFramework.createPowerProvider();
powerProvider.configure(5, 2, 10, 1, maxEnergy/10);
powerProvider.configure(0, 0, 100, 0, (int)(maxEnergy*Mekanism.TO_BC));
}
}
@ -117,7 +117,7 @@ public abstract class TileEntityElectricBlock extends TileEntityContainerBlock i
@Override
public int powerRequest()
{
return getPowerProvider().getMaxEnergyReceived();
return (int)(MAX_ELECTRICITY-electricityStored);
}
@Override

View file

@ -85,7 +85,7 @@ public abstract class TileEntityElectricMachine extends TileEntityBasicMachine
}
}
}
if(inventory[1].itemID == Item.redstone.itemID && electricityStored <= (currentMaxElectricity-1000))
if(inventory[1].itemID == Item.redstone.itemID && electricityStored+1000 <= currentMaxElectricity)
{
setJoules(electricityStored + 1000);
--inventory[1].stackSize;

View file

@ -47,31 +47,17 @@ public class TileEntityEnergyCube extends TileEntityElectricBlock implements IEn
/** Output per tick this machine can transfer. */
public int output;
/**
* A block used to store and transfer electricity.
*/
public TileEntityEnergyCube()
{
this("Energy Cube", 0, 256);
}
/**
* A block used to store and transfer electricity.
* @param energy - maximum energy this block can hold.
* @param i - output per tick this block can handle.
*/
public TileEntityEnergyCube(String name, int maxEnergy, int i)
public TileEntityEnergyCube()
{
super(name, maxEnergy);
if(powerProvider != null)
{
powerProvider.configure(5, 2, 10, 1, maxEnergy/10);
}
super("Energy Cube", 0);
ElectricityConnections.registerConnector(this, EnumSet.allOf(ForgeDirection.class));
inventory = new ItemStack[2];
output = i;
}
@Override
@ -81,7 +67,7 @@ public class TileEntityEnergyCube extends TileEntityElectricBlock implements IEn
if(powerProvider != null)
{
int received = (int)(powerProvider.useEnergy(0, (float)((tier.MAX_ELECTRICITY-electricityStored)*Mekanism.TO_BC), true)*10);
int received = (int)(powerProvider.useEnergy(0, (float)((tier.MAX_ELECTRICITY-electricityStored)*Mekanism.TO_BC), true)*Mekanism.FROM_BC);
setJoules(electricityStored + received);
}
@ -160,7 +146,7 @@ public class TileEntityEnergyCube extends TileEntityElectricBlock implements IEn
setJoules(electricityStored + gain);
}
}
else if(inventory[1].itemID == Item.redstone.itemID)
else if(inventory[1].itemID == Item.redstone.itemID && electricityStored+1000 <= tier.MAX_ELECTRICITY)
{
setJoules(electricityStored + 1000);
--inventory[1].stackSize;
@ -191,10 +177,10 @@ public class TileEntityEnergyCube extends TileEntityElectricBlock implements IEn
if(isPowerReceptor(tileEntity))
{
IPowerReceptor receptor = (IPowerReceptor)tileEntity;
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*Mekanism.FROM_BC), ForgeDirection.getOrientation(facing).getOpposite());
setJoules(electricityStored - (int)transferEnergy);
double electricityNeeded = Math.min(receptor.powerRequest(), receptor.getPowerProvider().getMaxEnergyStored() - receptor.getPowerProvider().getEnergyStored())*Mekanism.FROM_BC;
float transferEnergy = (float)Math.min(electricityStored, Math.min(electricityNeeded, output));
receptor.getPowerProvider().receiveEnergy((float)(transferEnergy*Mekanism.TO_BC), ForgeDirection.getOrientation(facing).getOpposite());
setJoules(electricityStored - transferEnergy);
}
}
}
@ -405,6 +391,7 @@ public class TileEntityEnergyCube extends TileEntityElectricBlock implements IEn
super.readFromNBT(nbtTags);
tier = EnergyCubeTier.getFromName(nbtTags.getString("tier"));
output = tier.OUTPUT;
}
@Override
@ -452,6 +439,12 @@ public class TileEntityEnergyCube extends TileEntityElectricBlock implements IEn
return side.toForgeDirection() == ForgeDirection.getOrientation(facing);
}
@Override
public int powerRequest()
{
return (int)(tier.MAX_ELECTRICITY-electricityStored);
}
@Override
public ItemStack getWrenchDrop(EntityPlayer entityPlayer)
{

View file

@ -10,7 +10,7 @@ public class TileEntityEnrichmentChamber extends TileEntityElectricMachine
{
public TileEntityEnrichmentChamber()
{
super("Chamber.ogg", "Enrichment Chamber", "/resources/mekanism/gui/GuiChamber.png", 16, 200, 1000);
super("Chamber.ogg", "Enrichment Chamber", "/resources/mekanism/gui/GuiChamber.png", 16, 200, 3200);
}
@Override

View file

@ -86,7 +86,7 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem
public TileEntityMetallurgicInfuser()
{
super("Metallurgic Infuser", 10000);
super("Metallurgic Infuser", 3200);
sideOutputs.add(new SideData(EnumColor.GREY, 0, 0));
sideOutputs.add(new SideData(EnumColor.ORANGE, 0, 1));
@ -122,7 +122,7 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem
if(powerProvider != null)
{
int received = (int)(powerProvider.useEnergy(0, (float)((currentMaxElectricity-electricityStored)*Mekanism.TO_BC), true)*10);
int received = (int)(powerProvider.useEnergy(0, (float)((currentMaxElectricity-electricityStored)*Mekanism.TO_BC), true)*Mekanism.FROM_BC);
setJoules(electricityStored + received);
}
@ -187,7 +187,7 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem
}
}
}
if(inventory[4].itemID == Item.redstone.itemID && electricityStored <= (currentMaxElectricity-1000))
if(inventory[4].itemID == Item.redstone.itemID && electricityStored+1000 <= currentMaxElectricity)
{
setJoules(electricityStored + 1000);
--inventory[4].stackSize;
@ -644,6 +644,12 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem
return (int)(rejects*Mekanism.TO_IC2);
}
@Override
public int powerRequest()
{
return (int)(currentMaxElectricity-electricityStored);
}
@Override
public ArrayList<SideData> getSideData()
{

View file

@ -11,7 +11,7 @@ public class TileEntityPlatinumCompressor extends TileEntityAdvancedElectricMach
{
public TileEntityPlatinumCompressor()
{
super("Compressor.ogg", "Platinum Compressor", "/resources/mekanism/gui/GuiCompressor.png", 16, 1, 200, 1000, 200);
super("Compressor.ogg", "Platinum Compressor", "/resources/mekanism/gui/GuiCompressor.png", 16, 1, 200, 3200, 200);
}
@Override

View file

@ -59,7 +59,7 @@ public class TileEntitySmeltingFactory extends TileEntityElectricBlock implement
public int TICKS_REQUIRED = 200;
/** How much energy each operation consumes per tick. */
public int ENERGY_PER_TICK = 20;
public int ENERGY_PER_TICK = 16;
/** How many ticks it takes, currently, to run an operation. */
public int currentTicksRequired;
@ -88,7 +88,7 @@ public class TileEntitySmeltingFactory extends TileEntityElectricBlock implement
public TileEntitySmeltingFactory(SmeltingFactoryTier type)
{
super(type.name + " Smelting Factory", type.processes*1000);
super(type.name + " Smelting Factory", type.processes*3200);
ElectricityConnections.registerConnector(this, EnumSet.allOf(ForgeDirection.class));
tier = type;
currentTicksRequired = TICKS_REQUIRED;
@ -115,7 +115,7 @@ public class TileEntitySmeltingFactory extends TileEntityElectricBlock implement
if(powerProvider != null)
{
int received = (int)(powerProvider.useEnergy(0, (float)((currentMaxElectricity-electricityStored)*Mekanism.TO_BC), true)*10);
int received = (int)(powerProvider.useEnergy(0, (float)((currentMaxElectricity-electricityStored)*Mekanism.TO_BC), true)*Mekanism.FROM_BC);
setJoules(electricityStored + received);
}
@ -188,7 +188,7 @@ public class TileEntitySmeltingFactory extends TileEntityElectricBlock implement
}
}
}
if(inventory[1].itemID == Item.redstone.itemID && electricityStored <= (currentMaxElectricity-1000))
if(inventory[1].itemID == Item.redstone.itemID && electricityStored+1000 <= currentMaxElectricity)
{
setJoules(electricityStored + 1000);
--inventory[1].stackSize;
@ -667,6 +667,12 @@ public class TileEntitySmeltingFactory extends TileEntityElectricBlock implement
return (int)(rejects*Mekanism.TO_IC2);
}
@Override
public int powerRequest()
{
return (int)(currentMaxElectricity-electricityStored);
}
@Override
public ArrayList<SideData> getSideData()
{

View file

@ -166,7 +166,7 @@ public class TileEntityTeleporter extends TileEntityElectricBlock implements IEn
}
}
}
if(inventory[0].itemID == Item.redstone.itemID && electricityStored <= (MAX_ELECTRICITY-1000))
if(inventory[0].itemID == Item.redstone.itemID && electricityStored+1000 <= MAX_ELECTRICITY)
{
setJoules(electricityStored + 1000);
--inventory[0].stackSize;

View file

@ -12,7 +12,7 @@ public class TileEntityTheoreticalElementizer extends TileEntityAdvancedElectric
{
public TileEntityTheoreticalElementizer()
{
super("Elementizer.ogg", "Theoretical Elementizer", "/resources/mekanism/gui/GuiElementizer.png", 25, 1, 1000, 10000, 1000);
super("Elementizer.ogg", "Theoretical Elementizer", "/resources/mekanism/gui/GuiElementizer.png", 24, 1, 1000, 4800, 1000);
}
@Override

View file

@ -19,7 +19,7 @@ import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;
@Mod(modid = "MekanismGenerators", name = "MekanismGenerators", version = "5.2.2", dependencies = "required-after:Mekanism")
@Mod(modid = "MekanismGenerators", name = "MekanismGenerators", version = "5.2.3", dependencies = "required-after:Mekanism")
@NetworkMod(clientSideRequired = true, serverSideRequired = false)
public class MekanismGenerators
{

View file

@ -80,7 +80,7 @@ public class TileEntityElectrolyticSeparator extends TileEntityElectricBlock imp
if(powerProvider != null)
{
int received = (int)(powerProvider.useEnergy(0, (float)((MAX_ELECTRICITY-electricityStored)*Mekanism.TO_BC), true)*10);
int received = (int)(powerProvider.useEnergy(0, (float)((MAX_ELECTRICITY-electricityStored)*Mekanism.TO_BC), true)*Mekanism.FROM_BC);
setJoules(electricityStored + received);
}

View file

@ -29,6 +29,7 @@ import universalelectricity.core.implement.IVoltage;
import universalelectricity.core.vector.Vector3;
import buildcraft.api.power.IPowerProvider;
import buildcraft.api.power.IPowerReceptor;
import buildcraft.api.power.PowerFramework;
import buildcraft.api.power.PowerProvider;
import dan200.computer.api.IComputerAccess;
import dan200.computer.api.IPeripheral;
@ -58,6 +59,11 @@ public abstract class TileEntityGenerator extends TileEntityElectricBlock implem
{
super(name, maxEnergy);
if(powerProvider != null)
{
powerProvider.configure(0, 0, 0, 0, (int)(maxEnergy*Mekanism.TO_BC));
}
output = out;
isActive = false;
}
@ -107,10 +113,10 @@ public abstract class TileEntityGenerator extends TileEntityElectricBlock implem
if(isPowerReceptor(tileEntity))
{
IPowerReceptor receptor = (IPowerReceptor)tileEntity;
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);
double electricityNeeded = Math.min(receptor.powerRequest(), receptor.getPowerProvider().getMaxEnergyStored() - receptor.getPowerProvider().getEnergyStored())*Mekanism.FROM_BC;
float transferEnergy = (float)Math.min(electricityStored, Math.min(electricityNeeded, output));
receptor.getPowerProvider().receiveEnergy((float)(transferEnergy*Mekanism.TO_BC), ForgeDirection.getOrientation(facing).getOpposite());
setJoules(electricityStored - (int)transferEnergy);
setJoules(electricityStored - transferEnergy);
}
}
}
@ -353,4 +359,10 @@ public abstract class TileEntityGenerator extends TileEntityElectricBlock implem
nbtTags.setBoolean("isActive", isActive);
}
@Override
public int powerRequest()
{
return 0;
}
}

View file

@ -26,7 +26,7 @@ import cpw.mods.fml.common.network.NetworkMod;
import cpw.mods.fml.common.registry.EntityRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;
@Mod(modid = "MekanismTools", name = "MekanismTools", version = "5.2.2", dependencies = "required-after:Mekanism")
@Mod(modid = "MekanismTools", name = "MekanismTools", version = "5.2.3", dependencies = "required-after:Mekanism")
@NetworkMod(clientSideRequired = true, serverSideRequired = false)
public class MekanismTools
{