v5.0.11b Release

*Bumped version to v5.0.11.
*Fix battery energy duplication.
*Update UE API.
*More intelligent containers.
*Fix energy cube voltage.
*Fix diamond dupe.
*Fix smelting factory dupe.
*Other minor bugfixes.
This commit is contained in:
Aidan Brady 2013-01-14 13:30:58 -05:00
parent 86d23225a2
commit 7faad6bdc1
27 changed files with 233 additions and 47 deletions

View file

@ -162,6 +162,22 @@ public class ContainerAdvancedElectricMachine extends Container
}
}
}
else {
if(slotID >= 5 && slotID <= 31)
{
if(!mergeItemStack(slotStack, 32, inventorySlots.size(), false))
{
return null;
}
}
else if(slotID > 31)
{
if(!mergeItemStack(slotStack, 5, 31, false))
{
return null;
}
}
}
if (slotStack.stackSize == 0)
{

View file

@ -119,6 +119,22 @@ public class ContainerElectricMachine extends Container
}
}
}
else {
if(slotID >= 4 && slotID <= 30)
{
if(!mergeItemStack(slotStack, 31, inventorySlots.size(), false))
{
return null;
}
}
else if(slotID > 30)
{
if(!mergeItemStack(slotStack, 4, 30, false))
{
return null;
}
}
}
if (slotStack.stackSize == 0)
{

View file

@ -91,6 +91,22 @@ public class ContainerEnergyCube extends Container
}
}
}
else {
if(slotID >= 2 && slotID <= 28)
{
if(!mergeItemStack(slotStack, 29, inventorySlots.size(), false))
{
return null;
}
}
else if(slotID > 28)
{
if(!mergeItemStack(slotStack, 2, 28, false))
{
return null;
}
}
}
if (slotStack.stackSize == 0)
{

View file

@ -90,6 +90,22 @@ public class ContainerGasTank extends Container
}
}
}
else {
if(slotID >= 2 && slotID <= 28)
{
if(!mergeItemStack(slotStack, 29, inventorySlots.size(), false))
{
return null;
}
}
else if(slotID > 28)
{
if(!mergeItemStack(slotStack, 2, 28, false))
{
return null;
}
}
}
if (slotStack.stackSize == 0)
{

View file

@ -104,6 +104,22 @@ public class ContainerMetallurgicInfuser extends Container
return null;
}
}
else {
if(slotID >= 5 && slotID <= 31)
{
if(!mergeItemStack(slotStack, 32, inventorySlots.size(), false))
{
return null;
}
}
else if(slotID > 31)
{
if(!mergeItemStack(slotStack, 5, 31, false))
{
return null;
}
}
}
}
else {
if(!mergeItemStack(slotStack, 5, inventorySlots.size(), true))

View file

@ -1,6 +1,7 @@
package mekanism.common;
import ic2.api.IElectricItem;
import mekanism.api.Tier;
import mekanism.api.Tier.SmeltingFactoryTier;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
@ -98,7 +99,7 @@ public class ContainerSmeltingFactory extends Container
ItemStack slotStack = currentSlot.getStack();
stack = slotStack.copy();
if(slotID == 3 || slotID == 5 || slotID == 7 || slotID == 9 || slotID == 11 || slotID == 13 || slotID == 15)
if(isOutputSlot(slotID))
{
if(!mergeItemStack(slotStack, tileEntity.inventory.length, inventorySlots.size(), true))
{
@ -124,7 +125,7 @@ public class ContainerSmeltingFactory extends Container
}
else if(FurnaceRecipes.smelting().getSmeltingResult(slotStack) != null)
{
if(slotID != 2 && slotID != 4 && slotID != 6 && slotID != 8 && slotID != 10 && slotID != 12 && slotID != 14)
if(!isInputSlot(slotID))
{
if(!mergeItemStack(slotStack, 2, 3, false))
{
@ -178,6 +179,24 @@ public class ContainerSmeltingFactory extends Container
}
}
}
else {
int slotEnd = tileEntity.inventory.length;
if(slotID >= slotEnd && slotID <= (slotEnd+26))
{
if(!mergeItemStack(slotStack, (slotEnd+27), inventorySlots.size(), false))
{
return null;
}
}
else if(slotID > (slotEnd+26))
{
if(!mergeItemStack(slotStack, slotEnd, (slotEnd+26), false))
{
return null;
}
}
}
if (slotStack.stackSize == 0)
{
@ -198,4 +217,28 @@ public class ContainerSmeltingFactory extends Container
return stack;
}
public boolean isInputSlot(int slot)
{
if(tileEntity.tier == Tier.SmeltingFactoryTier.BASIC)
return slot == 2 || slot == 4 || slot == 6;
if(tileEntity.tier == Tier.SmeltingFactoryTier.ADVANCED)
return slot == 2 || slot == 4 || slot == 6 || slot == 8 || slot == 10;
if(tileEntity.tier == Tier.SmeltingFactoryTier.ULTIMATE)
return slot == 2 || slot == 4 || slot == 6 || slot == 8 || slot == 12 || slot == 14;
return false;
}
public boolean isOutputSlot(int slot)
{
if(tileEntity.tier == Tier.SmeltingFactoryTier.BASIC)
return slot == 3 || slot == 5 || slot == 7;
if(tileEntity.tier == Tier.SmeltingFactoryTier.ADVANCED)
return slot == 3 || slot == 5 || slot == 7 || slot == 9 || slot == 11;
if(tileEntity.tier == Tier.SmeltingFactoryTier.ULTIMATE)
return slot == 3 || slot == 5 || slot == 7 || slot == 9 || slot == 11 || slot == 13 || slot == 15;
return false;
}
}

View file

@ -115,9 +115,9 @@ public class ItemBlockEnergyCube extends ItemBlock implements IItemElectric, IEn
}
@Override
public double getVoltage()
public double getVoltage(Object... data)
{
return 2000;
return 120;
}
@Override

View file

@ -130,7 +130,7 @@ public class ItemEnergized extends ItemMekanism implements IItemElectric
}
@Override
public double getVoltage()
public double getVoltage(Object... data)
{
return VOLTAGE;
}

View file

@ -44,7 +44,7 @@ import cpw.mods.fml.relauncher.SideOnly;
* @author AidanBrady
*
*/
@Mod(modid = "Mekanism", name = "Mekanism", version = "5.0.9")
@Mod(modid = "Mekanism", name = "Mekanism", version = "5.0.10")
@NetworkMod(channels = {"Mekanism"}, clientSideRequired = true, serverSideRequired = false, packetHandler = PacketHandler.class)
public class Mekanism
{
@ -66,7 +66,7 @@ public class Mekanism
public static Configuration configuration;
/** Mekanism version number */
public static Version versionNumber = new Version(5, 0, 9);
public static Version versionNumber = new Version(5, 0, 10);
/** Mekanism creative tab */
public static CreativeTabMekanism tabMekanism = new CreativeTabMekanism();
@ -295,7 +295,6 @@ public class Mekanism
//Combiner Recipes
RecipeHandler.addCombinerRecipe(new ItemStack(Item.redstone, 10), new ItemStack(Block.oreRedstone));
RecipeHandler.addCombinerRecipe(new ItemStack(Item.diamond, 2), new ItemStack(Block.oreDiamond));
RecipeHandler.addCombinerRecipe(new ItemStack(Item.dyePowder, 8, 4), new ItemStack(Block.oreLapis));
//Crusher Recipes

View file

@ -76,11 +76,11 @@ public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicM
double joulesNeeded = currentMaxElectricity-electricityStored;
double joulesReceived = 0;
if(electricItem.getVoltage() <= joulesNeeded)
if(electricItem.getVoltage(inventory[3]) <= joulesNeeded)
{
joulesReceived = electricItem.onUse(electricItem.getVoltage(), inventory[3]);
joulesReceived = electricItem.onUse(electricItem.getVoltage(inventory[3]), inventory[3]);
}
else if(electricItem.getVoltage() > joulesNeeded)
else if(electricItem.getVoltage(inventory[3]) > joulesNeeded)
{
joulesReceived = electricItem.onUse(joulesNeeded, inventory[3]);
}

View file

@ -275,7 +275,7 @@ public abstract class TileEntityBasicMachine extends TileEntityElectricBlock imp
}
@Override
public double getVoltage()
public double getVoltage(Object... data)
{
return 120;
}

View file

@ -55,11 +55,11 @@ public abstract class TileEntityElectricMachine extends TileEntityBasicMachine
double joulesNeeded = currentMaxElectricity-electricityStored;
double joulesReceived = 0;
if(electricItem.getVoltage() <= joulesNeeded)
if(electricItem.getVoltage(inventory[1]) <= joulesNeeded)
{
joulesReceived = electricItem.onUse(electricItem.getVoltage(), inventory[1]);
joulesReceived = electricItem.onUse(electricItem.getVoltage(inventory[1]), inventory[1]);
}
else if(electricItem.getVoltage() > joulesNeeded)
else if(electricItem.getVoltage(inventory[1]) > joulesNeeded)
{
joulesReceived = electricItem.onUse(joulesNeeded, inventory[1]);
}

View file

@ -116,11 +116,11 @@ public class TileEntityEnergyCube extends TileEntityElectricBlock implements IEn
double rejectedElectricity = 0;
double itemElectricityNeeded = electricItem.getMaxJoules(inventory[0]) - electricItem.getJoules(inventory[0]);
if(electricItem.getVoltage() <= electricityStored)
if(electricItem.getVoltage(inventory[0]) <= electricityStored)
{
sendingElectricity = electricItem.getVoltage();
sendingElectricity = electricItem.getVoltage(inventory[0]);
}
else if(electricItem.getVoltage() > electricityStored)
else if(electricItem.getVoltage(inventory[0]) > electricityStored)
{
sendingElectricity = electricityStored;
}
@ -136,7 +136,7 @@ public class TileEntityEnergyCube extends TileEntityElectricBlock implements IEn
}
electricItem.setJoules((electricItem.getJoules(inventory[0]) + actualSendingElectricity), inventory[0]);
setJoules(electricityStored - (actualSendingElectricity - rejectedElectricity));
setJoules(electricityStored - Math.max(actualSendingElectricity - rejectedElectricity, 0));
}
else if(inventory[0].getItem() instanceof IElectricItem)
{
@ -156,11 +156,11 @@ public class TileEntityEnergyCube extends TileEntityElectricBlock implements IEn
double joulesNeeded = tier.MAX_ELECTRICITY-electricityStored;
double joulesReceived = 0;
if(electricItem.getVoltage() <= joulesNeeded)
if(electricItem.getVoltage(inventory[1]) <= joulesNeeded)
{
joulesReceived = electricItem.onUse(electricItem.getVoltage(), inventory[1]);
joulesReceived = electricItem.onUse(electricItem.getVoltage(inventory[0]), inventory[1]);
}
else if(electricItem.getVoltage() > joulesNeeded)
else if(electricItem.getVoltage(inventory[0]) > joulesNeeded)
{
joulesReceived = electricItem.onUse(joulesNeeded, inventory[1]);
}
@ -337,7 +337,7 @@ public class TileEntityEnergyCube extends TileEntityElectricBlock implements IEn
}
@Override
public double getVoltage()
public double getVoltage(Object... data)
{
return 120;
}

View file

@ -150,11 +150,11 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem
double joulesNeeded = currentMaxElectricity-electricityStored;
double joulesReceived = 0;
if(electricItem.getVoltage() <= joulesNeeded)
if(electricItem.getVoltage(inventory[4]) <= joulesNeeded)
{
joulesReceived = electricItem.onUse(electricItem.getVoltage(), inventory[4]);
joulesReceived = electricItem.onUse(electricItem.getVoltage(inventory[4]), inventory[4]);
}
else if(electricItem.getVoltage() > joulesNeeded)
else if(electricItem.getVoltage(inventory[4]) > joulesNeeded)
{
joulesReceived = electricItem.onUse(joulesNeeded, inventory[4]);
}
@ -551,7 +551,7 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem
public void detach(IComputerAccess computer) {}
@Override
public double getVoltage()
public double getVoltage(Object... data)
{
return 120;
}

View file

@ -150,11 +150,11 @@ public class TileEntitySmeltingFactory extends TileEntityElectricBlock implement
double joulesNeeded = currentMaxElectricity-electricityStored;
double joulesReceived = 0;
if(electricItem.getVoltage() <= joulesNeeded)
if(electricItem.getVoltage(inventory[1]) <= joulesNeeded)
{
joulesReceived = electricItem.onUse(electricItem.getVoltage(), inventory[1]);
joulesReceived = electricItem.onUse(electricItem.getVoltage(inventory[1]), inventory[1]);
}
else if(electricItem.getVoltage() > joulesNeeded)
else if(electricItem.getVoltage(inventory[1]) > joulesNeeded)
{
joulesReceived = electricItem.onUse(joulesNeeded, inventory[1]);
}
@ -566,7 +566,7 @@ public class TileEntitySmeltingFactory extends TileEntityElectricBlock implement
public void detach(IComputerAccess computer) {}
@Override
public double getVoltage()
public double getVoltage(Object... data)
{
return 120;
}

View file

@ -102,6 +102,22 @@ public class ContainerBioGenerator extends Container
return null;
}
}
else {
if(slotID >= 2 && slotID <= 28)
{
if(!mergeItemStack(slotStack, 29, inventorySlots.size(), false))
{
return null;
}
}
else if(slotID > 28)
{
if(!mergeItemStack(slotStack, 2, 28, false))
{
return null;
}
}
}
if (slotStack.stackSize == 0)
{

View file

@ -109,6 +109,22 @@ public class ContainerElectrolyticSeparator extends Container
return null;
}
}
else {
if(slotID >= 4 && slotID <= 30)
{
if(!mergeItemStack(slotStack, 31, inventorySlots.size(), false))
{
return null;
}
}
else if(slotID > 30)
{
if(!mergeItemStack(slotStack, 4, 30, false))
{
return null;
}
}
}
}
else {
if(!mergeItemStack(slotStack, 4, inventorySlots.size(), true))

View file

@ -102,6 +102,22 @@ public class ContainerHeatGenerator extends Container
return null;
}
}
else {
if(slotID >= 2 && slotID <= 28)
{
if(!mergeItemStack(slotStack, 29, inventorySlots.size(), false))
{
return null;
}
}
else if(slotID > 28)
{
if(!mergeItemStack(slotStack, 2, 28, false))
{
return null;
}
}
}
if (slotStack.stackSize == 0)
{

View file

@ -69,7 +69,7 @@ public class ContainerSolarGenerator extends Container
return null;
}
}
else if(slotID == 1)
else if(slotID == 0)
{
if(!mergeItemStack(slotStack, 1, inventorySlots.size(), false))
{
@ -77,6 +77,22 @@ public class ContainerSolarGenerator extends Container
}
}
}
else {
if(slotID >= 1 && slotID <= 27)
{
if(!mergeItemStack(slotStack, 28, inventorySlots.size(), false))
{
return null;
}
}
else if(slotID > 27)
{
if(!mergeItemStack(slotStack, 1, 27, false))
{
return null;
}
}
}
if (slotStack.stackSize == 0)
{

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.0.9", dependencies = "required-after:Mekanism")
@Mod(modid = "MekanismGenerators", name = "MekanismGenerators", version = "5.0.10", dependencies = "required-after:Mekanism")
@NetworkMod(clientSideRequired = true, serverSideRequired = false)
public class MekanismGenerators
{

View file

@ -77,7 +77,7 @@ public class TileEntityBioGenerator extends TileEntityGenerator implements ITank
}
electricItem.setJoules((electricItem.getJoules(inventory[1]) + actualSendingElectricity), inventory[1]);
setJoules(electricityStored - (actualSendingElectricity - rejectedElectricity));
setJoules(electricityStored - Math.max(actualSendingElectricity - rejectedElectricity, 0));
}
else if(inventory[1].getItem() instanceof IElectricItem)
{

View file

@ -132,11 +132,11 @@ public class TileEntityElectrolyticSeparator extends TileEntityElectricBlock imp
double joulesNeeded = MAX_ELECTRICITY-electricityStored;
double joulesReceived = 0;
if(electricItem.getVoltage() <= joulesNeeded)
if(electricItem.getVoltage(inventory[3]) <= joulesNeeded)
{
joulesReceived = electricItem.onUse(electricItem.getVoltage(), inventory[3]);
joulesReceived = electricItem.onUse(electricItem.getVoltage(inventory[3]), inventory[3]);
}
else if(electricItem.getVoltage() > joulesNeeded)
else if(electricItem.getVoltage(inventory[3]) > joulesNeeded)
{
joulesReceived = electricItem.onUse(joulesNeeded, inventory[3]);
}
@ -614,7 +614,7 @@ public class TileEntityElectrolyticSeparator extends TileEntityElectricBlock imp
public void detach(IComputerAccess computer) {}
@Override
public double getVoltage()
public double getVoltage(Object... data)
{
return 120;
}

View file

@ -223,7 +223,7 @@ public abstract class TileEntityGenerator extends TileEntityElectricBlock implem
}
@Override
public double getVoltage()
public double getVoltage(Object... data)
{
return 120;
}

View file

@ -55,11 +55,11 @@ public class TileEntityHeatGenerator extends TileEntityGenerator implements ITan
double rejectedElectricity = 0;
double itemElectricityNeeded = electricItem.getMaxJoules(inventory[1]) - electricItem.getJoules(inventory[1]);
if(electricItem.getVoltage() <= electricityStored)
if(electricItem.getVoltage(inventory[1]) <= electricityStored)
{
sendingElectricity = electricItem.getVoltage();
sendingElectricity = electricItem.getVoltage(inventory[1]);
}
else if(electricItem.getVoltage() > electricityStored)
else if(electricItem.getVoltage(inventory[1]) > electricityStored)
{
sendingElectricity = electricityStored;
}
@ -75,7 +75,7 @@ public class TileEntityHeatGenerator extends TileEntityGenerator implements ITan
}
electricItem.setJoules((electricItem.getJoules(inventory[1]) + actualSendingElectricity), inventory[1]);
setJoules(electricityStored - (actualSendingElectricity - rejectedElectricity));
setJoules(electricityStored - Math.max(actualSendingElectricity - rejectedElectricity, 0));
}
else if(inventory[1].getItem() instanceof IElectricItem)
{

View file

@ -69,7 +69,7 @@ public class TileEntityHydrogenGenerator extends TileEntityGenerator implements
}
electricItem.setJoules((electricItem.getJoules(inventory[1]) + actualSendingElectricity), inventory[1]);
setJoules(electricityStored - (actualSendingElectricity - rejectedElectricity));
setJoules(electricityStored - Math.max(actualSendingElectricity - rejectedElectricity, 0));
}
else if(inventory[1].getItem() instanceof IElectricItem)
{
@ -257,7 +257,7 @@ public class TileEntityHydrogenGenerator extends TileEntityGenerator implements
}
@Override
public double getVoltage()
public double getVoltage(Object... data)
{
return 240;
}

View file

@ -91,7 +91,7 @@ public class TileEntitySolarGenerator extends TileEntityGenerator
}
electricItem.setJoules((electricItem.getJoules(inventory[0]) + actualSendingElectricity), inventory[0]);
setJoules(electricityStored - (actualSendingElectricity - rejectedElectricity));
setJoules(electricityStored - Math.max(actualSendingElectricity - rejectedElectricity, 0));
}
else if(inventory[0].getItem() instanceof IElectricItem)
{

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.0.9", dependencies = "required-after:Mekanism")
@Mod(modid = "MekanismTools", name = "MekanismTools", version = "5.0.10", dependencies = "required-after:Mekanism")
@NetworkMod(clientSideRequired = true, serverSideRequired = false)
public class MekanismTools
{