v5.5.4 Beta #4
*Default minecraft ISidedInventory support in all machines. *Fancied up Universal Cable texture. *Electrolytic Separators and Bio-Generators use LiquidTanks instead of LiquidSlots. *Fixed IInventory support. *Fixed Universal Cable BuildCraft crash. *Added the Electric Pump, a machine that can pump any kind of liquid and automatically outputs into adjacent pipes.
This commit is contained in:
parent
96b4c4ec0b
commit
de3679def5
31 changed files with 768 additions and 49 deletions
BIN
bin/minecraft/mods/mekanism/gui/GuiElectricPump.png
Executable file
BIN
bin/minecraft/mods/mekanism/gui/GuiElectricPump.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 4.2 KiB |
Binary file not shown.
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 17 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.5 KiB |
BIN
bin/minecraft/mods/mekanism/textures/blocks/ElectricPumpSide.png
Normal file
BIN
bin/minecraft/mods/mekanism/textures/blocks/ElectricPumpSide.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.5 KiB |
|
@ -12,10 +12,14 @@ public class SideData
|
||||||
/** How many slots this side contains */
|
/** How many slots this side contains */
|
||||||
public int slotAmount;
|
public int slotAmount;
|
||||||
|
|
||||||
public SideData(EnumColor colour, int start, int amount)
|
/** Int[] of available side slots */
|
||||||
|
public int[] availableSlots;
|
||||||
|
|
||||||
|
public SideData(EnumColor colour, int start, int amount, int[] slots)
|
||||||
{
|
{
|
||||||
color = colour;
|
color = colour;
|
||||||
slotStart = start;
|
slotStart = start;
|
||||||
slotAmount = amount;
|
slotAmount = amount;
|
||||||
|
availableSlots = slots;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@ import mekanism.common.Mekanism;
|
||||||
import mekanism.common.TileEntityAdvancedElectricMachine;
|
import mekanism.common.TileEntityAdvancedElectricMachine;
|
||||||
import mekanism.common.TileEntityControlPanel;
|
import mekanism.common.TileEntityControlPanel;
|
||||||
import mekanism.common.TileEntityElectricMachine;
|
import mekanism.common.TileEntityElectricMachine;
|
||||||
|
import mekanism.common.TileEntityElectricPump;
|
||||||
import mekanism.common.TileEntityEnergyCube;
|
import mekanism.common.TileEntityEnergyCube;
|
||||||
import mekanism.common.TileEntityGasTank;
|
import mekanism.common.TileEntityGasTank;
|
||||||
import mekanism.common.TileEntityMetallurgicInfuser;
|
import mekanism.common.TileEntityMetallurgicInfuser;
|
||||||
|
@ -140,6 +141,8 @@ public class ClientProxy extends CommonProxy
|
||||||
return new GuiPurificationChamber(player.inventory, (TileEntityAdvancedElectricMachine)tileEntity);
|
return new GuiPurificationChamber(player.inventory, (TileEntityAdvancedElectricMachine)tileEntity);
|
||||||
case 16:
|
case 16:
|
||||||
return new GuiEnergizedSmelter(player.inventory, (TileEntityElectricMachine)tileEntity);
|
return new GuiEnergizedSmelter(player.inventory, (TileEntityElectricMachine)tileEntity);
|
||||||
|
case 17:
|
||||||
|
return new GuiElectricPump(player.inventory, (TileEntityElectricPump)tileEntity);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
95
src/minecraft/mekanism/client/GuiElectricPump.java
Normal file
95
src/minecraft/mekanism/client/GuiElectricPump.java
Normal file
|
@ -0,0 +1,95 @@
|
||||||
|
package mekanism.client;
|
||||||
|
|
||||||
|
import mekanism.common.ContainerElectricPump;
|
||||||
|
import mekanism.common.TileEntityElectricPump;
|
||||||
|
import net.minecraft.client.gui.inventory.GuiContainer;
|
||||||
|
import net.minecraft.entity.player.InventoryPlayer;
|
||||||
|
import net.minecraftforge.liquids.LiquidStack;
|
||||||
|
|
||||||
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
|
import universalelectricity.core.electricity.ElectricityDisplay;
|
||||||
|
import universalelectricity.core.electricity.ElectricityDisplay.ElectricUnit;
|
||||||
|
|
||||||
|
public class GuiElectricPump extends GuiContainer
|
||||||
|
{
|
||||||
|
public TileEntityElectricPump tileEntity;
|
||||||
|
|
||||||
|
private int guiWidth;
|
||||||
|
private int guiHeight;
|
||||||
|
|
||||||
|
public GuiElectricPump(InventoryPlayer inventory, TileEntityElectricPump tentity)
|
||||||
|
{
|
||||||
|
super(new ContainerElectricPump(inventory, tentity));
|
||||||
|
tileEntity = tentity;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void drawGuiContainerForegroundLayer(int par1, int par2)
|
||||||
|
{
|
||||||
|
fontRenderer.drawString(tileEntity.fullName, 45, 6, 0x404040);
|
||||||
|
fontRenderer.drawString("Inventory", 8, (ySize - 94) + 2, 0x404040);
|
||||||
|
fontRenderer.drawString(ElectricityDisplay.getDisplayShort(tileEntity.electricityStored, ElectricUnit.JOULES), 51, 26, 0x00CD00);
|
||||||
|
fontRenderer.drawString(tileEntity.liquidTank.getLiquid() != null ? tileEntity.liquidTank.getLiquidName() + ": " + tileEntity.liquidTank.getLiquid().amount : "No liquid.", 51, 35, 0x00CD00);
|
||||||
|
fontRenderer.drawString(tileEntity.getVoltage() + "v", 51, 44, 0x00CD00);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3)
|
||||||
|
{
|
||||||
|
mc.renderEngine.bindTexture("/mods/mekanism/gui/GuiElectricPump.png");
|
||||||
|
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||||
|
guiWidth = (width - xSize) / 2;
|
||||||
|
guiHeight = (height - ySize) / 2;
|
||||||
|
drawTexturedModalRect(guiWidth, guiHeight, 0, 0, xSize, ySize);
|
||||||
|
int displayInt;
|
||||||
|
|
||||||
|
displayInt = tileEntity.getScaledEnergyLevel(52);
|
||||||
|
drawTexturedModalRect(guiWidth + 165, guiHeight + 17 + 52 - displayInt, 176, 52 - displayInt, 4, displayInt);
|
||||||
|
|
||||||
|
if(tileEntity.getScaledLiquidLevel(58) > 0)
|
||||||
|
{
|
||||||
|
displayGauge(guiWidth, guiHeight, 14, 7, tileEntity.getScaledLiquidLevel(58), tileEntity.liquidTank.getLiquid());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Credit to BuildCraft for both the gauge texture and parts of the code.
|
||||||
|
*/
|
||||||
|
public void displayGauge(int width, int height, int xPos, int yPos, int scale, LiquidStack liquid)
|
||||||
|
{
|
||||||
|
if(liquid == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int start = 0;
|
||||||
|
|
||||||
|
while(true)
|
||||||
|
{
|
||||||
|
int renderRemaining = 0;
|
||||||
|
|
||||||
|
if(scale > 16)
|
||||||
|
{
|
||||||
|
renderRemaining = 16;
|
||||||
|
scale -= 16;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
renderRemaining = scale;
|
||||||
|
scale = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
mc.renderEngine.bindTexture(liquid.canonical().getTextureSheet());
|
||||||
|
drawTexturedModelRectFromIcon(width + yPos, height + xPos + 58 - renderRemaining - start, liquid.canonical().getRenderingIcon(), 16, 16 - (16 - renderRemaining));
|
||||||
|
start = start + 16;
|
||||||
|
|
||||||
|
if (renderRemaining == 0 || scale == 0)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
mc.renderEngine.bindTexture("/mods/mekanism/gui/GuiElectricPump.png");
|
||||||
|
drawTexturedModalRect(width + yPos, height + xPos, 176, 52, 16, 60);
|
||||||
|
}
|
||||||
|
}
|
|
@ -45,6 +45,7 @@ import cpw.mods.fml.relauncher.SideOnly;
|
||||||
* 9: Purification Chamber
|
* 9: Purification Chamber
|
||||||
* 10: Energized Smelter
|
* 10: Energized Smelter
|
||||||
* 11: Teleporter
|
* 11: Teleporter
|
||||||
|
* 12: Electric Pump
|
||||||
* @author AidanBrady
|
* @author AidanBrady
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
@ -100,6 +101,8 @@ public class BlockMachine extends BlockContainer implements IDismantleable
|
||||||
icons[10][1] = register.registerIcon("mekanism:EnergizedSmelterFrontOn");
|
icons[10][1] = register.registerIcon("mekanism:EnergizedSmelterFrontOn");
|
||||||
icons[10][2] = register.registerIcon("mekanism:SteelCasing");
|
icons[10][2] = register.registerIcon("mekanism:SteelCasing");
|
||||||
icons[11][0] = register.registerIcon("mekanism:Teleporter");
|
icons[11][0] = register.registerIcon("mekanism:Teleporter");
|
||||||
|
icons[12][0] = register.registerIcon("mekanism:ElectricPumpFront");
|
||||||
|
icons[12][1] = register.registerIcon("mekanism:ElectricPumpSide");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -304,6 +307,16 @@ public class BlockMachine extends BlockContainer implements IDismantleable
|
||||||
{
|
{
|
||||||
return icons[11][0];
|
return icons[11][0];
|
||||||
}
|
}
|
||||||
|
else if(meta == 12)
|
||||||
|
{
|
||||||
|
if(side == 1)
|
||||||
|
{
|
||||||
|
return icons[12][0];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return icons[12][1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -441,6 +454,16 @@ public class BlockMachine extends BlockContainer implements IDismantleable
|
||||||
{
|
{
|
||||||
return icons[11][0];
|
return icons[11][0];
|
||||||
}
|
}
|
||||||
|
else if(metadata == 12)
|
||||||
|
{
|
||||||
|
if(side == 1)
|
||||||
|
{
|
||||||
|
return icons[12][0];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return icons[12][1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -479,6 +502,7 @@ public class BlockMachine extends BlockContainer implements IDismantleable
|
||||||
list.add(new ItemStack(i, 1, 9));
|
list.add(new ItemStack(i, 1, 9));
|
||||||
list.add(new ItemStack(i, 1, 10));
|
list.add(new ItemStack(i, 1, 10));
|
||||||
list.add(new ItemStack(i, 1, 11));
|
list.add(new ItemStack(i, 1, 11));
|
||||||
|
list.add(new ItemStack(i, 1, 12));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -709,7 +733,8 @@ public class BlockMachine extends BlockContainer implements IDismantleable
|
||||||
METALLURGIC_INFUSER(8, 12, 2000, TileEntityMetallurgicInfuser.class, false),
|
METALLURGIC_INFUSER(8, 12, 2000, TileEntityMetallurgicInfuser.class, false),
|
||||||
PURIFICATION_CHAMBER(9, 15, 12000, TileEntityPurificationChamber.class, false),
|
PURIFICATION_CHAMBER(9, 15, 12000, TileEntityPurificationChamber.class, false),
|
||||||
ENERGIZED_SMELTER(10, 16, 2000, TileEntityEnergizedSmelter.class, false),
|
ENERGIZED_SMELTER(10, 16, 2000, TileEntityEnergizedSmelter.class, false),
|
||||||
TELEPORTER(11, 13, 5000000, TileEntityTeleporter.class, false);
|
TELEPORTER(11, 13, 5000000, TileEntityTeleporter.class, false),
|
||||||
|
ELECTRIC_PUMP(12, 17, 16000, TileEntityElectricPump.class, false);
|
||||||
|
|
||||||
public int meta;
|
public int meta;
|
||||||
public int guiId;
|
public int guiId;
|
||||||
|
|
|
@ -158,6 +158,8 @@ public class CommonProxy
|
||||||
return new ContainerAdvancedElectricMachine(player.inventory, (TileEntityAdvancedElectricMachine)tileEntity);
|
return new ContainerAdvancedElectricMachine(player.inventory, (TileEntityAdvancedElectricMachine)tileEntity);
|
||||||
case 16:
|
case 16:
|
||||||
return new ContainerElectricMachine(player.inventory, (TileEntityElectricMachine)tileEntity);
|
return new ContainerElectricMachine(player.inventory, (TileEntityElectricMachine)tileEntity);
|
||||||
|
case 17:
|
||||||
|
return new ContainerElectricPump(player.inventory, (TileEntityElectricPump)tileEntity);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
101
src/minecraft/mekanism/common/ContainerElectricPump.java
Normal file
101
src/minecraft/mekanism/common/ContainerElectricPump.java
Normal file
|
@ -0,0 +1,101 @@
|
||||||
|
package mekanism.common;
|
||||||
|
|
||||||
|
import ic2.api.IElectricItem;
|
||||||
|
import mekanism.common.SlotEnergy.SlotDischarge;
|
||||||
|
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.Item;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import universalelectricity.core.item.IItemElectric;
|
||||||
|
|
||||||
|
public class ContainerElectricPump extends Container
|
||||||
|
{
|
||||||
|
private TileEntityElectricPump tileEntity;
|
||||||
|
|
||||||
|
public ContainerElectricPump(InventoryPlayer inventory, TileEntityElectricPump tentity)
|
||||||
|
{
|
||||||
|
tileEntity = tentity;
|
||||||
|
addSlotToContainer(new Slot(tentity, 0, 28, 20));
|
||||||
|
addSlotToContainer(new Slot(tentity, 1, 28, 51));
|
||||||
|
addSlotToContainer(new SlotDischarge(tentity, 2, 143, 35));
|
||||||
|
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.openChest();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCraftGuiClosed(EntityPlayer entityplayer)
|
||||||
|
{
|
||||||
|
super.onCraftGuiClosed(entityplayer);
|
||||||
|
tileEntity.closeChest();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canInteractWith(EntityPlayer par1EntityPlayer)
|
||||||
|
{
|
||||||
|
return tileEntity.isUseableByPlayer(par1EntityPlayer);
|
||||||
|
}
|
||||||
|
|
||||||
|
@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((slotStack.getItem() instanceof IElectricItem && ((IElectricItem)slotStack.getItem()).canProvideEnergy(slotStack)) || (slotStack.getItem() instanceof IItemElectric && ((IItemElectric)slotStack.getItem()).getProvideRequest(slotStack).amperes != 0) || slotStack.itemID == Item.redstone.itemID)
|
||||||
|
{
|
||||||
|
if(slotID != 1)
|
||||||
|
{
|
||||||
|
if (!mergeItemStack(slotStack, 1, 2, false))
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(slotID == 1)
|
||||||
|
{
|
||||||
|
if(!mergeItemStack(slotStack, 2, inventorySlots.size(), false))
|
||||||
|
{
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
|
@ -104,7 +104,7 @@ public class EnergyTransferProtocol
|
||||||
{
|
{
|
||||||
if(((IPowerReceptor)acceptor).getPowerProvider() != null)
|
if(((IPowerReceptor)acceptor).getPowerProvider() != null)
|
||||||
{
|
{
|
||||||
if((((IPowerReceptor)acceptor).powerRequest(acceptorDirections.get(acceptor).getOpposite())*Mekanism.FROM_BC) > 0)
|
if((((IPowerReceptor)acceptor).powerRequest(ForgeDirection.getOrientation(Arrays.asList(acceptors).indexOf(acceptor)).getOpposite())*Mekanism.FROM_BC) > 0)
|
||||||
{
|
{
|
||||||
availableAcceptors.add(acceptor);
|
availableAcceptors.add(acceptor);
|
||||||
acceptorDirections.put(acceptor, ForgeDirection.getOrientation(Arrays.asList(acceptors).indexOf(acceptor)));
|
acceptorDirections.put(acceptor, ForgeDirection.getOrientation(Arrays.asList(acceptors).indexOf(acceptor)));
|
||||||
|
|
|
@ -39,6 +39,7 @@ import net.minecraft.world.World;
|
||||||
* 9: Purification Chamber
|
* 9: Purification Chamber
|
||||||
* 10: Energized Smelter
|
* 10: Energized Smelter
|
||||||
* 11: Teleporter
|
* 11: Teleporter
|
||||||
|
* 12: Electric Pump
|
||||||
* @author AidanBrady
|
* @author AidanBrady
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
@ -103,6 +104,9 @@ public class ItemBlockMachine extends ItemBlock implements IItemElectric, ICusto
|
||||||
case 11:
|
case 11:
|
||||||
name = "Teleporter";
|
name = "Teleporter";
|
||||||
break;
|
break;
|
||||||
|
case 12:
|
||||||
|
name = "ElectricPump";
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
name = "Unknown";
|
name = "Unknown";
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -68,7 +68,7 @@ public class ItemStorageTank extends ItemMekanism implements IStorageTank
|
||||||
{
|
{
|
||||||
ItemStack itemstack = (ItemStack)data[0];
|
ItemStack itemstack = (ItemStack)data[0];
|
||||||
|
|
||||||
if(getGasType(itemstack) == type)
|
if(getGasType(itemstack) == type || type == EnumGas.NONE)
|
||||||
{
|
{
|
||||||
if(itemstack.stackTagCompound == null)
|
if(itemstack.stackTagCompound == null)
|
||||||
{
|
{
|
||||||
|
@ -157,7 +157,7 @@ public class ItemStorageTank extends ItemMekanism implements IStorageTank
|
||||||
ItemStack itemStack = (ItemStack)data[0];
|
ItemStack itemStack = (ItemStack)data[0];
|
||||||
IStorageTank tank = (IStorageTank)itemStack.getItem();
|
IStorageTank tank = (IStorageTank)itemStack.getItem();
|
||||||
|
|
||||||
if(getGasType(itemStack) == EnumGas.NONE || getGasType(itemStack) == type)
|
if(getGasType(itemStack) == EnumGas.NONE || getGasType(itemStack) == type || type == EnumGas.NONE)
|
||||||
{
|
{
|
||||||
return MAX_GAS;
|
return MAX_GAS;
|
||||||
}
|
}
|
||||||
|
|
|
@ -453,6 +453,7 @@ public class Mekanism
|
||||||
LanguageRegistry.instance().addStringLocalization("tile.MachineBlock.PurificationChamber.name", "Purification Chamber");
|
LanguageRegistry.instance().addStringLocalization("tile.MachineBlock.PurificationChamber.name", "Purification Chamber");
|
||||||
LanguageRegistry.instance().addStringLocalization("tile.MachineBlock.EnergizedSmelter.name", "Energized Smelter");
|
LanguageRegistry.instance().addStringLocalization("tile.MachineBlock.EnergizedSmelter.name", "Energized Smelter");
|
||||||
LanguageRegistry.instance().addStringLocalization("tile.MachineBlock.Teleporter.name", "Teleporter");
|
LanguageRegistry.instance().addStringLocalization("tile.MachineBlock.Teleporter.name", "Teleporter");
|
||||||
|
LanguageRegistry.instance().addStringLocalization("tile.MachineBlock.ElectricPump.name", "Electric Pump");
|
||||||
|
|
||||||
//Localization for OreBlock
|
//Localization for OreBlock
|
||||||
LanguageRegistry.instance().addStringLocalization("tile.OreBlock.OsmiumOre.name", "Osmium Ore");
|
LanguageRegistry.instance().addStringLocalization("tile.OreBlock.OsmiumOre.name", "Osmium Ore");
|
||||||
|
@ -922,6 +923,7 @@ public class Mekanism
|
||||||
GameRegistry.registerTileEntity(TileEntityTeleporter.class, "MekanismTeleporter");
|
GameRegistry.registerTileEntity(TileEntityTeleporter.class, "MekanismTeleporter");
|
||||||
GameRegistry.registerTileEntity(TileEntityPurificationChamber.class, "PurificationChamber");
|
GameRegistry.registerTileEntity(TileEntityPurificationChamber.class, "PurificationChamber");
|
||||||
GameRegistry.registerTileEntity(TileEntityEnergizedSmelter.class, "EnergizedSmelter");
|
GameRegistry.registerTileEntity(TileEntityEnergizedSmelter.class, "EnergizedSmelter");
|
||||||
|
GameRegistry.registerTileEntity(TileEntityElectricPump.class, "ElectricPump");
|
||||||
|
|
||||||
//Load tile entities that have special renderers.
|
//Load tile entities that have special renderers.
|
||||||
proxy.registerSpecialTileEntities();
|
proxy.registerSpecialTileEntities();
|
||||||
|
|
|
@ -48,12 +48,12 @@ public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicM
|
||||||
{
|
{
|
||||||
super(soundPath, name, path, perTick, ticksRequired, maxEnergy);
|
super(soundPath, name, path, perTick, ticksRequired, maxEnergy);
|
||||||
|
|
||||||
sideOutputs.add(new SideData(EnumColor.GREY, 0, 0));
|
sideOutputs.add(new SideData(EnumColor.GREY, 0, 0, new int[0]));
|
||||||
sideOutputs.add(new SideData(EnumColor.DARK_RED, 0, 1));
|
sideOutputs.add(new SideData(EnumColor.DARK_RED, 0, 1, new int[] {0}));
|
||||||
sideOutputs.add(new SideData(EnumColor.PURPLE, 1, 1));
|
sideOutputs.add(new SideData(EnumColor.PURPLE, 1, 1, new int[] {1}));
|
||||||
sideOutputs.add(new SideData(EnumColor.DARK_BLUE, 2, 1));
|
sideOutputs.add(new SideData(EnumColor.DARK_BLUE, 2, 1, new int[] {2}));
|
||||||
sideOutputs.add(new SideData(EnumColor.DARK_GREEN, 3, 1));
|
sideOutputs.add(new SideData(EnumColor.DARK_GREEN, 3, 1, new int[] {3}));
|
||||||
sideOutputs.add(new SideData(EnumColor.ORANGE, 4, 1));
|
sideOutputs.add(new SideData(EnumColor.ORANGE, 4, 1, new int[] {4}));
|
||||||
|
|
||||||
sideConfig = new byte[] {2, 1, 0, 4, 5, 3};
|
sideConfig = new byte[] {2, 1, 0, 4, 5, 3};
|
||||||
|
|
||||||
|
@ -231,7 +231,7 @@ public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicM
|
||||||
}
|
}
|
||||||
else if(slotID == 0)
|
else if(slotID == 0)
|
||||||
{
|
{
|
||||||
return RecipeHandler.getOutput(inventory[0], false, getRecipes()) != null;
|
return RecipeHandler.getOutput(itemstack, false, getRecipes()) != null;
|
||||||
}
|
}
|
||||||
else if(slotID == 3)
|
else if(slotID == 3)
|
||||||
{
|
{
|
||||||
|
@ -346,6 +346,24 @@ public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicM
|
||||||
return secondaryEnergyStored*i / MAX_SECONDARY_ENERGY;
|
return secondaryEnergyStored*i / MAX_SECONDARY_ENERGY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean func_102008_b(int slotID, ItemStack itemstack, int side)
|
||||||
|
{
|
||||||
|
if(slotID == 3)
|
||||||
|
{
|
||||||
|
return (itemstack.getItem() instanceof IItemElectric && ((IItemElectric)itemstack.getItem()).getProvideRequest(itemstack).getWatts() == 0) ||
|
||||||
|
(itemstack.getItem() instanceof IElectricItem && ((IElectricItem)itemstack.getItem()).canProvideEnergy(itemstack) &&
|
||||||
|
(!(itemstack.getItem() instanceof IItemElectric) ||
|
||||||
|
((IItemElectric)itemstack.getItem()).getProvideRequest(itemstack).getWatts() == 0));
|
||||||
|
}
|
||||||
|
else if(slotID == 2)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String[] getMethodNames()
|
public String[] getMethodNames()
|
||||||
{
|
{
|
||||||
|
|
|
@ -10,11 +10,11 @@ public class TileEntityAdvancedFactory extends TileEntityFactory
|
||||||
{
|
{
|
||||||
super(FactoryTier.ADVANCED);
|
super(FactoryTier.ADVANCED);
|
||||||
|
|
||||||
sideOutputs.add(new SideData(EnumColor.GREY, 0, 0));
|
sideOutputs.add(new SideData(EnumColor.GREY, 0, 0, new int[0]));
|
||||||
sideOutputs.add(new SideData(EnumColor.ORANGE, 0, 1));
|
sideOutputs.add(new SideData(EnumColor.ORANGE, 0, 1, new int[] {0}));
|
||||||
sideOutputs.add(new SideData(EnumColor.DARK_GREEN, 1, 1));
|
sideOutputs.add(new SideData(EnumColor.DARK_GREEN, 1, 1, new int[] {1}));
|
||||||
sideOutputs.add(new SideData(EnumColor.DARK_RED, 2, 5));
|
sideOutputs.add(new SideData(EnumColor.DARK_RED, 2, 5, new int[] {2, 3, 4, 5, 6}));
|
||||||
sideOutputs.add(new SideData(EnumColor.DARK_BLUE, 7, 5));
|
sideOutputs.add(new SideData(EnumColor.DARK_BLUE, 7, 5, new int[] {7, 8, 9, 10, 11}));
|
||||||
|
|
||||||
sideConfig = new byte[] {4, 3, 0, 0, 2, 1};
|
sideConfig = new byte[] {4, 3, 0, 0, 2, 1};
|
||||||
}
|
}
|
||||||
|
|
|
@ -372,6 +372,12 @@ public abstract class TileEntityBasicMachine extends TileEntityElectricBlock imp
|
||||||
@Override
|
@Override
|
||||||
public void detach(IComputerAccess computer) {}
|
public void detach(IComputerAccess computer) {}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] getSizeInventorySide(int side)
|
||||||
|
{
|
||||||
|
return sideOutputs.get(sideConfig[MekanismUtils.getBaseOrientation(side, facing)]).availableSlots;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int powerRequest(ForgeDirection side)
|
public int powerRequest(ForgeDirection side)
|
||||||
{
|
{
|
||||||
|
|
|
@ -2,13 +2,13 @@ package mekanism.common;
|
||||||
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.inventory.IInventory;
|
import net.minecraft.inventory.IInventory;
|
||||||
|
import net.minecraft.inventory.ISidedInventory;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.nbt.NBTTagList;
|
import net.minecraft.nbt.NBTTagList;
|
||||||
import net.minecraftforge.common.ForgeDirection;
|
import net.minecraftforge.common.ForgeDirection;
|
||||||
import net.minecraftforge.common.ISidedInventory;
|
|
||||||
|
|
||||||
public abstract class TileEntityContainerBlock extends TileEntityBasicBlock implements ISidedInventory, IInventory, ISustainedInventory
|
public abstract class TileEntityContainerBlock extends TileEntityBasicBlock implements net.minecraftforge.common.ISidedInventory, ISidedInventory, IInventory, ISustainedInventory
|
||||||
{
|
{
|
||||||
/** The inventory slot itemstacks used by this block. */
|
/** The inventory slot itemstacks used by this block. */
|
||||||
public ItemStack[] inventory;
|
public ItemStack[] inventory;
|
||||||
|
@ -128,8 +128,7 @@ public abstract class TileEntityContainerBlock extends TileEntityBasicBlock impl
|
||||||
inventory[slotID] = null;
|
inventory[slotID] = null;
|
||||||
return var2;
|
return var2;
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -187,6 +186,24 @@ public abstract class TileEntityContainerBlock extends TileEntityBasicBlock impl
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean func_102007_a(int slotID, ItemStack itemstack, int side)
|
||||||
|
{
|
||||||
|
return isStackValidForSlot(slotID, itemstack);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] getSizeInventorySide(int side)
|
||||||
|
{
|
||||||
|
return new int[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean func_102008_b(int slotID, ItemStack itemstack, int side)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setInventory(NBTTagList nbtTags, Object... data)
|
public void setInventory(NBTTagList nbtTags, Object... data)
|
||||||
{
|
{
|
||||||
|
|
|
@ -28,11 +28,11 @@ public abstract class TileEntityElectricMachine extends TileEntityBasicMachine
|
||||||
{
|
{
|
||||||
super(soundPath, name, path, perTick, ticksRequired, maxEnergy);
|
super(soundPath, name, path, perTick, ticksRequired, maxEnergy);
|
||||||
|
|
||||||
sideOutputs.add(new SideData(EnumColor.GREY, 0, 0));
|
sideOutputs.add(new SideData(EnumColor.GREY, 0, 0, new int[0]));
|
||||||
sideOutputs.add(new SideData(EnumColor.DARK_RED, 0, 1));
|
sideOutputs.add(new SideData(EnumColor.DARK_RED, 0, 1, new int[] {0}));
|
||||||
sideOutputs.add(new SideData(EnumColor.DARK_GREEN, 1, 1));
|
sideOutputs.add(new SideData(EnumColor.DARK_GREEN, 1, 1, new int[] {1}));
|
||||||
sideOutputs.add(new SideData(EnumColor.DARK_BLUE, 2, 1));
|
sideOutputs.add(new SideData(EnumColor.DARK_BLUE, 2, 1, new int[] {2}));
|
||||||
sideOutputs.add(new SideData(EnumColor.ORANGE, 3, 1));
|
sideOutputs.add(new SideData(EnumColor.ORANGE, 3, 1, new int[] {3}));
|
||||||
|
|
||||||
sideConfig = new byte[] {2, 1, 0, 0, 4, 3};
|
sideConfig = new byte[] {2, 1, 0, 0, 4, 3};
|
||||||
|
|
||||||
|
@ -169,7 +169,7 @@ public abstract class TileEntityElectricMachine extends TileEntityBasicMachine
|
||||||
}
|
}
|
||||||
else if(slotID == 0)
|
else if(slotID == 0)
|
||||||
{
|
{
|
||||||
return RecipeHandler.getOutput(inventory[0], false, getRecipes()) != null;
|
return RecipeHandler.getOutput(itemstack, false, getRecipes()) != null;
|
||||||
}
|
}
|
||||||
else if(slotID == 1)
|
else if(slotID == 1)
|
||||||
{
|
{
|
||||||
|
@ -228,6 +228,24 @@ public abstract class TileEntityElectricMachine extends TileEntityBasicMachine
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean func_102008_b(int slotID, ItemStack itemstack, int side)
|
||||||
|
{
|
||||||
|
if(slotID == 1)
|
||||||
|
{
|
||||||
|
return (itemstack.getItem() instanceof IItemElectric && ((IItemElectric)itemstack.getItem()).getProvideRequest(itemstack).getWatts() == 0) ||
|
||||||
|
(itemstack.getItem() instanceof IElectricItem && ((IElectricItem)itemstack.getItem()).canProvideEnergy(itemstack) &&
|
||||||
|
(!(itemstack.getItem() instanceof IItemElectric) ||
|
||||||
|
((IItemElectric)itemstack.getItem()).getProvideRequest(itemstack).getWatts() == 0));
|
||||||
|
}
|
||||||
|
else if(slotID == 2)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String[] getMethodNames()
|
public String[] getMethodNames()
|
||||||
{
|
{
|
||||||
|
|
166
src/minecraft/mekanism/common/TileEntityElectricPump.java
Normal file
166
src/minecraft/mekanism/common/TileEntityElectricPump.java
Normal file
|
@ -0,0 +1,166 @@
|
||||||
|
package mekanism.common;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import com.google.common.io.ByteArrayDataInput;
|
||||||
|
|
||||||
|
import ic2.api.ElectricItem;
|
||||||
|
import ic2.api.IElectricItem;
|
||||||
|
import universalelectricity.core.item.ElectricItemHelper;
|
||||||
|
import mekanism.api.InfusionType;
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
import net.minecraftforge.liquids.LiquidContainerRegistry;
|
||||||
|
import net.minecraftforge.liquids.LiquidStack;
|
||||||
|
import net.minecraftforge.liquids.LiquidTank;
|
||||||
|
|
||||||
|
public class TileEntityElectricPump extends TileEntityElectricBlock
|
||||||
|
{
|
||||||
|
public LiquidTank liquidTank;
|
||||||
|
|
||||||
|
public TileEntityElectricPump()
|
||||||
|
{
|
||||||
|
super("Electric Pump", 16000);
|
||||||
|
liquidTank = new LiquidTank(16000);
|
||||||
|
inventory = new ItemStack[3];
|
||||||
|
liquidTank.setLiquid(new LiquidStack(Block.waterStill.blockID, 8000, 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onUpdate()
|
||||||
|
{
|
||||||
|
if(inventory[2] != null)
|
||||||
|
{
|
||||||
|
if(electricityStored < MAX_ELECTRICITY)
|
||||||
|
{
|
||||||
|
setJoules(getJoules() + ElectricItemHelper.dechargeItem(inventory[2], getMaxJoules() - getJoules(), getVoltage()));
|
||||||
|
|
||||||
|
if(Mekanism.hooks.IC2Loaded && inventory[2].getItem() instanceof IElectricItem)
|
||||||
|
{
|
||||||
|
IElectricItem item = (IElectricItem)inventory[2].getItem();
|
||||||
|
if(item.canProvideEnergy(inventory[2]))
|
||||||
|
{
|
||||||
|
double gain = ElectricItem.discharge(inventory[2], (int)((MAX_ELECTRICITY - electricityStored)*Mekanism.TO_IC2), 3, false, false)*Mekanism.FROM_IC2;
|
||||||
|
setJoules(electricityStored + gain);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(inventory[2].itemID == Item.redstone.itemID && electricityStored+1000 <= MAX_ELECTRICITY)
|
||||||
|
{
|
||||||
|
setJoules(electricityStored + 1000);
|
||||||
|
inventory[2].stackSize--;
|
||||||
|
|
||||||
|
if(inventory[2].stackSize <= 0)
|
||||||
|
{
|
||||||
|
inventory[2] = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(inventory[0] != null)
|
||||||
|
{
|
||||||
|
if(liquidTank.getLiquid() != null && liquidTank.getLiquid().amount >= 1000)
|
||||||
|
{
|
||||||
|
if(LiquidContainerRegistry.isEmptyContainer(inventory[0]))
|
||||||
|
{
|
||||||
|
ItemStack tempStack = LiquidContainerRegistry.fillLiquidContainer(liquidTank.getLiquid(), inventory[0]);
|
||||||
|
|
||||||
|
if(tempStack != null)
|
||||||
|
{
|
||||||
|
if(inventory[1] == null)
|
||||||
|
{
|
||||||
|
liquidTank.drain(1000, true);
|
||||||
|
|
||||||
|
inventory[1] = tempStack;
|
||||||
|
inventory[0].stackSize--;
|
||||||
|
|
||||||
|
if(inventory[0].stackSize <= 0)
|
||||||
|
{
|
||||||
|
inventory[0] = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(tempStack.isItemEqual(inventory[1]) && tempStack.getMaxStackSize() > inventory[1].stackSize)
|
||||||
|
{
|
||||||
|
liquidTank.drain(1000, true);
|
||||||
|
|
||||||
|
inventory[1].stackSize++;
|
||||||
|
inventory[0].stackSize--;
|
||||||
|
|
||||||
|
if(inventory[0].stackSize <= 0)
|
||||||
|
{
|
||||||
|
inventory[0] = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handlePacketData(ByteArrayDataInput dataStream)
|
||||||
|
{
|
||||||
|
super.handlePacketData(dataStream);
|
||||||
|
|
||||||
|
try {
|
||||||
|
int amount = dataStream.readInt();
|
||||||
|
int itemID = dataStream.readInt();
|
||||||
|
int itemMeta = dataStream.readInt();
|
||||||
|
|
||||||
|
liquidTank.setLiquid(new LiquidStack(itemID, amount, itemMeta));
|
||||||
|
} catch(Exception e) {}
|
||||||
|
|
||||||
|
MekanismUtils.updateBlock(worldObj, xCoord, yCoord, zCoord);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ArrayList getNetworkedData(ArrayList data)
|
||||||
|
{
|
||||||
|
super.getNetworkedData(data);
|
||||||
|
|
||||||
|
if(liquidTank.getLiquid() != null)
|
||||||
|
{
|
||||||
|
data.add(liquidTank.getLiquid().amount);
|
||||||
|
data.add(liquidTank.getLiquid().itemID);
|
||||||
|
data.add(liquidTank.getLiquid().itemMeta);
|
||||||
|
}
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getScaledEnergyLevel(int i)
|
||||||
|
{
|
||||||
|
return (int)(electricityStored*i / MAX_ELECTRICITY);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getScaledLiquidLevel(int i)
|
||||||
|
{
|
||||||
|
return liquidTank.getLiquid() != null ? liquidTank.getLiquid().amount*i / 16000 : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void writeToNBT(NBTTagCompound nbtTags)
|
||||||
|
{
|
||||||
|
super.writeToNBT(nbtTags);
|
||||||
|
|
||||||
|
if(liquidTank.getLiquid() != null)
|
||||||
|
{
|
||||||
|
nbtTags.setTag("liquidTank", liquidTank.getLiquid().writeToNBT(new NBTTagCompound()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void readFromNBT(NBTTagCompound nbtTags)
|
||||||
|
{
|
||||||
|
super.readFromNBT(nbtTags);
|
||||||
|
|
||||||
|
if(nbtTags.hasKey("liquidTank"))
|
||||||
|
{
|
||||||
|
//liquidTank.setLiquid(LiquidStack.loadLiquidStackFromNBT(nbtTags));
|
||||||
|
}
|
||||||
|
|
||||||
|
liquidTank.setLiquid(new LiquidStack(Block.waterStill.blockID, 8000, 0));
|
||||||
|
}
|
||||||
|
}
|
|
@ -10,11 +10,11 @@ public class TileEntityEliteFactory extends TileEntityFactory
|
||||||
{
|
{
|
||||||
super(FactoryTier.ELITE);
|
super(FactoryTier.ELITE);
|
||||||
|
|
||||||
sideOutputs.add(new SideData(EnumColor.GREY, 0, 0));
|
sideOutputs.add(new SideData(EnumColor.GREY, 0, 0, new int[0]));
|
||||||
sideOutputs.add(new SideData(EnumColor.ORANGE, 0, 1));
|
sideOutputs.add(new SideData(EnumColor.ORANGE, 0, 1, new int[] {0}));
|
||||||
sideOutputs.add(new SideData(EnumColor.DARK_GREEN, 1, 1));
|
sideOutputs.add(new SideData(EnumColor.DARK_GREEN, 1, 1, new int[] {1}));
|
||||||
sideOutputs.add(new SideData(EnumColor.DARK_RED, 2, 7));
|
sideOutputs.add(new SideData(EnumColor.DARK_RED, 2, 7, new int[] {2, 3, 4, 5, 6, 7, 8}));
|
||||||
sideOutputs.add(new SideData(EnumColor.DARK_BLUE, 9, 7));
|
sideOutputs.add(new SideData(EnumColor.DARK_BLUE, 9, 7, new int[] {9, 10, 11, 12, 13, 14, 15}));
|
||||||
|
|
||||||
sideConfig = new byte[] {4, 3, 0, 0, 2, 1};
|
sideConfig = new byte[] {4, 3, 0, 0, 2, 1};
|
||||||
}
|
}
|
||||||
|
|
|
@ -300,6 +300,32 @@ public class TileEntityEnergyCube extends TileEntityElectricBlock implements IEn
|
||||||
return tier.MAX_ELECTRICITY;
|
return tier.MAX_ELECTRICITY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] getSizeInventorySide(int side)
|
||||||
|
{
|
||||||
|
return side == 1 ? new int[] {0} : new int[] {1};
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean func_102008_b(int slotID, ItemStack itemstack, int side)
|
||||||
|
{
|
||||||
|
if(slotID == 1)
|
||||||
|
{
|
||||||
|
return (itemstack.getItem() instanceof IItemElectric && ((IItemElectric)itemstack.getItem()).getProvideRequest(itemstack).getWatts() == 0) ||
|
||||||
|
(itemstack.getItem() instanceof IElectricItem && ((IElectricItem)itemstack.getItem()).canProvideEnergy(itemstack) &&
|
||||||
|
(!(itemstack.getItem() instanceof IItemElectric) ||
|
||||||
|
((IItemElectric)itemstack.getItem()).getProvideRequest(itemstack).getWatts() == 0));
|
||||||
|
}
|
||||||
|
else if(slotID == 0)
|
||||||
|
{
|
||||||
|
return (itemstack.getItem() instanceof IItemElectric && ((IItemElectric)itemstack.getItem()).getReceiveRequest(itemstack).getWatts() == 0) ||
|
||||||
|
(itemstack.getItem() instanceof IElectricItem && (!(itemstack.getItem() instanceof IItemElectric) ||
|
||||||
|
((IItemElectric)itemstack.getItem()).getReceiveRequest(itemstack).getWatts() == 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getStartInventorySide(ForgeDirection side)
|
public int getStartInventorySide(ForgeDirection side)
|
||||||
{
|
{
|
||||||
|
|
|
@ -81,11 +81,11 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IEnerg
|
||||||
{
|
{
|
||||||
this(FactoryTier.BASIC);
|
this(FactoryTier.BASIC);
|
||||||
|
|
||||||
sideOutputs.add(new SideData(EnumColor.GREY, 0, 0));
|
sideOutputs.add(new SideData(EnumColor.GREY, 0, 0, new int[0]));
|
||||||
sideOutputs.add(new SideData(EnumColor.ORANGE, 0, 1));
|
sideOutputs.add(new SideData(EnumColor.ORANGE, 0, 1, new int[] {0}));
|
||||||
sideOutputs.add(new SideData(EnumColor.DARK_GREEN, 1, 1));
|
sideOutputs.add(new SideData(EnumColor.DARK_GREEN, 1, 1, new int[] {1}));
|
||||||
sideOutputs.add(new SideData(EnumColor.DARK_RED, 2, 3));
|
sideOutputs.add(new SideData(EnumColor.DARK_RED, 2, 3, new int[] {2, 3, 4}));
|
||||||
sideOutputs.add(new SideData(EnumColor.DARK_BLUE, 5, 3));
|
sideOutputs.add(new SideData(EnumColor.DARK_BLUE, 5, 3, new int[] {5, 6, 7}));
|
||||||
|
|
||||||
sideConfig = new byte[] {4, 3, 0, 0, 2, 1};
|
sideConfig = new byte[] {4, 3, 0, 0, 2, 1};
|
||||||
}
|
}
|
||||||
|
@ -253,6 +253,32 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IEnerg
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean func_102008_b(int slotID, ItemStack itemstack, int side)
|
||||||
|
{
|
||||||
|
if(slotID == 1)
|
||||||
|
{
|
||||||
|
return (itemstack.getItem() instanceof IItemElectric && ((IItemElectric)itemstack.getItem()).getProvideRequest(itemstack).getWatts() == 0) ||
|
||||||
|
(itemstack.getItem() instanceof IElectricItem && ((IElectricItem)itemstack.getItem()).canProvideEnergy(itemstack) &&
|
||||||
|
(!(itemstack.getItem() instanceof IItemElectric) ||
|
||||||
|
((IItemElectric)itemstack.getItem()).getProvideRequest(itemstack).getWatts() == 0));
|
||||||
|
}
|
||||||
|
else if(tier == FactoryTier.BASIC && slotID >= 5 && slotID <= 7)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else if(tier == FactoryTier.ADVANCED && slotID >= 7 && slotID <= 11)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else if(tier == FactoryTier.ELITE && slotID >= 9 && slotID <= 15)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isStackValidForSlot(int slotID, ItemStack itemstack)
|
public boolean isStackValidForSlot(int slotID, ItemStack itemstack)
|
||||||
{
|
{
|
||||||
|
@ -264,7 +290,7 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IEnerg
|
||||||
}
|
}
|
||||||
else if(slotID >= 2 && slotID <= 4)
|
else if(slotID >= 2 && slotID <= 4)
|
||||||
{
|
{
|
||||||
return RecipeType.values()[recipeType].getCopiedOutput(inventory[slotID], false) != null;
|
return RecipeType.values()[recipeType].getCopiedOutput(itemstack, false) != null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(tier == FactoryTier.ADVANCED)
|
else if(tier == FactoryTier.ADVANCED)
|
||||||
|
@ -275,7 +301,7 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IEnerg
|
||||||
}
|
}
|
||||||
else if(slotID >= 2 && slotID <= 6)
|
else if(slotID >= 2 && slotID <= 6)
|
||||||
{
|
{
|
||||||
return RecipeType.values()[recipeType].getCopiedOutput(inventory[slotID], false) != null;
|
return RecipeType.values()[recipeType].getCopiedOutput(itemstack, false) != null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(tier == FactoryTier.ELITE)
|
else if(tier == FactoryTier.ELITE)
|
||||||
|
@ -286,7 +312,7 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IEnerg
|
||||||
}
|
}
|
||||||
else if(slotID >= 2 && slotID <= 8)
|
else if(slotID >= 2 && slotID <= 8)
|
||||||
{
|
{
|
||||||
return RecipeType.values()[recipeType].getCopiedOutput(inventory[slotID], false) != null;
|
return RecipeType.values()[recipeType].getCopiedOutput(itemstack, false) != null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -684,6 +710,12 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IEnerg
|
||||||
return (int)Math.min(((MekanismUtils.getEnergy(energyMultiplier, MAX_ELECTRICITY)-electricityStored)*Mekanism.TO_BC), 100);
|
return (int)Math.min(((MekanismUtils.getEnergy(energyMultiplier, MAX_ELECTRICITY)-electricityStored)*Mekanism.TO_BC), 100);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] getSizeInventorySide(int side)
|
||||||
|
{
|
||||||
|
return sideOutputs.get(sideConfig[MekanismUtils.getBaseOrientation(side, facing)]).availableSlots;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ArrayList<SideData> getSideData()
|
public ArrayList<SideData> getSideData()
|
||||||
{
|
{
|
||||||
|
|
|
@ -139,6 +139,22 @@ public class TileEntityGasTank extends TileEntityContainerBlock implements IGasS
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean func_102008_b(int slotID, ItemStack itemstack, int side)
|
||||||
|
{
|
||||||
|
if(slotID == 1)
|
||||||
|
{
|
||||||
|
return (itemstack.getItem() instanceof IStorageTank && ((IStorageTank)itemstack.getItem()).getGas(EnumGas.NONE, itemstack) == 0);
|
||||||
|
}
|
||||||
|
else if(slotID == 0)
|
||||||
|
{
|
||||||
|
return (itemstack.getItem() instanceof IStorageTank &&
|
||||||
|
((IStorageTank)itemstack.getItem()).getGas(EnumGas.NONE, itemstack) == ((IStorageTank)itemstack.getItem()).getMaxGas(EnumGas.NONE, itemstack));
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isStackValidForSlot(int slotID, ItemStack itemstack)
|
public boolean isStackValidForSlot(int slotID, ItemStack itemstack)
|
||||||
{
|
{
|
||||||
|
@ -153,6 +169,12 @@ public class TileEntityGasTank extends TileEntityContainerBlock implements IGasS
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] getSizeInventorySide(int side)
|
||||||
|
{
|
||||||
|
return side == 1 ? new int[] {0} : new int[] {1};
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getStartInventorySide(ForgeDirection side)
|
public int getStartInventorySide(ForgeDirection side)
|
||||||
{
|
{
|
||||||
|
|
|
@ -88,12 +88,12 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem
|
||||||
{
|
{
|
||||||
super("Metallurgic Infuser", 2000);
|
super("Metallurgic Infuser", 2000);
|
||||||
|
|
||||||
sideOutputs.add(new SideData(EnumColor.GREY, 0, 0));
|
sideOutputs.add(new SideData(EnumColor.GREY, 0, 0, new int[0]));
|
||||||
sideOutputs.add(new SideData(EnumColor.ORANGE, 0, 1));
|
sideOutputs.add(new SideData(EnumColor.ORANGE, 0, 1, new int[] {0}));
|
||||||
sideOutputs.add(new SideData(EnumColor.PURPLE, 1, 1));
|
sideOutputs.add(new SideData(EnumColor.PURPLE, 1, 1, new int[] {1}));
|
||||||
sideOutputs.add(new SideData(EnumColor.DARK_RED, 2, 1));
|
sideOutputs.add(new SideData(EnumColor.DARK_RED, 2, 1, new int[] {2}));
|
||||||
sideOutputs.add(new SideData(EnumColor.DARK_BLUE, 3, 1));
|
sideOutputs.add(new SideData(EnumColor.DARK_BLUE, 3, 1, new int[] {3}));
|
||||||
sideOutputs.add(new SideData(EnumColor.DARK_GREEN, 4, 1));
|
sideOutputs.add(new SideData(EnumColor.DARK_GREEN, 4, 1, new int[] {4}));
|
||||||
|
|
||||||
sideConfig = new byte[] {0, 1, 0, 5, 3, 4};
|
sideConfig = new byte[] {0, 1, 0, 5, 3, 4};
|
||||||
|
|
||||||
|
@ -292,6 +292,24 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean func_102008_b(int slotID, ItemStack itemstack, int side)
|
||||||
|
{
|
||||||
|
if(slotID == 4)
|
||||||
|
{
|
||||||
|
return (itemstack.getItem() instanceof IItemElectric && ((IItemElectric)itemstack.getItem()).getProvideRequest(itemstack).getWatts() == 0) ||
|
||||||
|
(itemstack.getItem() instanceof IElectricItem && ((IElectricItem)itemstack.getItem()).canProvideEnergy(itemstack) &&
|
||||||
|
(!(itemstack.getItem() instanceof IItemElectric) ||
|
||||||
|
((IItemElectric)itemstack.getItem()).getProvideRequest(itemstack).getWatts() == 0));
|
||||||
|
}
|
||||||
|
else if(slotID == 3)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isStackValidForSlot(int slotID, ItemStack itemstack)
|
public boolean isStackValidForSlot(int slotID, ItemStack itemstack)
|
||||||
{
|
{
|
||||||
|
@ -585,6 +603,12 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem
|
||||||
@Override
|
@Override
|
||||||
public void detach(IComputerAccess computer) {}
|
public void detach(IComputerAccess computer) {}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] getSizeInventorySide(int side)
|
||||||
|
{
|
||||||
|
return sideOutputs.get(sideConfig[MekanismUtils.getBaseOrientation(side, facing)]).availableSlots;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public double getMaxJoules()
|
public double getMaxJoules()
|
||||||
{
|
{
|
||||||
|
|
|
@ -120,6 +120,12 @@ public class TileEntityTeleporter extends TileEntityElectricBlock implements IEn
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] getSizeInventorySide(int side)
|
||||||
|
{
|
||||||
|
return new int[] {0};
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isStackValidForSlot(int slotID, ItemStack itemstack)
|
public boolean isStackValidForSlot(int slotID, ItemStack itemstack)
|
||||||
{
|
{
|
||||||
|
@ -234,6 +240,12 @@ public class TileEntityTeleporter extends TileEntityElectricBlock implements IEn
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getSizeInventorySide(ForgeDirection side)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void invalidate()
|
public void invalidate()
|
||||||
{
|
{
|
||||||
|
@ -380,6 +392,14 @@ public class TileEntityTeleporter extends TileEntityElectricBlock implements IEn
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean func_102008_b(int slotID, ItemStack itemstack, int side)
|
||||||
|
{
|
||||||
|
return (itemstack.getItem() instanceof IItemElectric && ((IItemElectric)itemstack.getItem()).getProvideRequest(itemstack).getWatts() == 0) ||
|
||||||
|
(itemstack.getItem() instanceof IElectricItem && (!(itemstack.getItem() instanceof IItemElectric) ||
|
||||||
|
((IItemElectric)itemstack.getItem()).getProvideRequest(itemstack).getWatts() == 0));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public double transferEnergyToAcceptor(double amount)
|
public double transferEnergyToAcceptor(double amount)
|
||||||
{
|
{
|
||||||
|
|
|
@ -170,6 +170,23 @@ public class TileEntityBioGenerator extends TileEntityGenerator implements ITank
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean func_102008_b(int slotID, ItemStack itemstack, int side)
|
||||||
|
{
|
||||||
|
if(slotID == 1)
|
||||||
|
{
|
||||||
|
return (itemstack.getItem() instanceof IItemElectric && ((IItemElectric)itemstack.getItem()).getReceiveRequest(itemstack).getWatts() == 0) ||
|
||||||
|
(itemstack.getItem() instanceof IElectricItem && (!(itemstack.getItem() instanceof IItemElectric) ||
|
||||||
|
((IItemElectric)itemstack.getItem()).getReceiveRequest(itemstack).getWatts() == 0));
|
||||||
|
}
|
||||||
|
else if(slotID == 0)
|
||||||
|
{
|
||||||
|
return LiquidContainerRegistry.isEmptyContainer(itemstack);
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isStackValidForSlot(int slotID, ItemStack itemstack)
|
public boolean isStackValidForSlot(int slotID, ItemStack itemstack)
|
||||||
{
|
{
|
||||||
|
@ -229,6 +246,12 @@ public class TileEntityBioGenerator extends TileEntityGenerator implements ITank
|
||||||
return bioFuelSlot.liquidStored*i / bioFuelSlot.MAX_LIQUID;
|
return bioFuelSlot.liquidStored*i / bioFuelSlot.MAX_LIQUID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] getSizeInventorySide(int side)
|
||||||
|
{
|
||||||
|
return ForgeDirection.getOrientation(side) == MekanismUtils.getRight(facing) ? new int[] {1} : new int[] {0};
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getStartInventorySide(ForgeDirection side)
|
public int getStartInventorySide(ForgeDirection side)
|
||||||
{
|
{
|
||||||
|
|
|
@ -247,6 +247,32 @@ public class TileEntityElectrolyticSeparator extends TileEntityElectricBlock imp
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean func_102008_b(int slotID, ItemStack itemstack, int side)
|
||||||
|
{
|
||||||
|
if(slotID == 3)
|
||||||
|
{
|
||||||
|
return (itemstack.getItem() instanceof IItemElectric && ((IItemElectric)itemstack.getItem()).getProvideRequest(itemstack).getWatts() > 0) ||
|
||||||
|
(itemstack.getItem() instanceof IElectricItem && ((IElectricItem)itemstack.getItem()).canProvideEnergy(itemstack) &&
|
||||||
|
(!(itemstack.getItem() instanceof IItemElectric) ||
|
||||||
|
((IItemElectric)itemstack.getItem()).getProvideRequest(itemstack).getWatts() > 0));
|
||||||
|
}
|
||||||
|
else if(slotID == 0)
|
||||||
|
{
|
||||||
|
return LiquidContainerRegistry.isEmptyContainer(itemstack);
|
||||||
|
}
|
||||||
|
else if(slotID == 1)
|
||||||
|
{
|
||||||
|
return itemstack.getItem() instanceof IStorageTank && ((IStorageTank)itemstack.getItem()).getGas(EnumGas.HYDROGEN, itemstack) == ((IStorageTank)itemstack.getItem()).getMaxGas(EnumGas.HYDROGEN, itemstack);
|
||||||
|
}
|
||||||
|
else if(slotID == 2)
|
||||||
|
{
|
||||||
|
return itemstack.getItem() instanceof IStorageTank && ((IStorageTank)itemstack.getItem()).getGas(EnumGas.OXYGEN, itemstack) == ((IStorageTank)itemstack.getItem()).getMaxGas(EnumGas.HYDROGEN, itemstack);
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isStackValidForSlot(int slotID, ItemStack itemstack)
|
public boolean isStackValidForSlot(int slotID, ItemStack itemstack)
|
||||||
{
|
{
|
||||||
|
@ -271,6 +297,21 @@ public class TileEntityElectrolyticSeparator extends TileEntityElectricBlock imp
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] getSizeInventorySide(int side)
|
||||||
|
{
|
||||||
|
if(ForgeDirection.getOrientation(side) == MekanismUtils.getLeft(facing))
|
||||||
|
{
|
||||||
|
return new int[] {3};
|
||||||
|
}
|
||||||
|
else if(side == facing || ForgeDirection.getOrientation(side) == ForgeDirection.getOrientation(facing).getOpposite())
|
||||||
|
{
|
||||||
|
return new int[] {1, 2};
|
||||||
|
}
|
||||||
|
|
||||||
|
return new int[] {0};
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getStartInventorySide(ForgeDirection side)
|
public int getStartInventorySide(ForgeDirection side)
|
||||||
{
|
{
|
||||||
|
|
|
@ -178,6 +178,23 @@ public class TileEntityHeatGenerator extends TileEntityGenerator implements ITan
|
||||||
nbtTags.setInteger("fuelStored", fuelSlot.liquidStored);
|
nbtTags.setInteger("fuelStored", fuelSlot.liquidStored);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean func_102008_b(int slotID, ItemStack itemstack, int side)
|
||||||
|
{
|
||||||
|
if(slotID == 1)
|
||||||
|
{
|
||||||
|
return (itemstack.getItem() instanceof IItemElectric && ((IItemElectric)itemstack.getItem()).getReceiveRequest(itemstack).getWatts() == 0) ||
|
||||||
|
(itemstack.getItem() instanceof IElectricItem && (!(itemstack.getItem() instanceof IItemElectric) ||
|
||||||
|
((IItemElectric)itemstack.getItem()).getReceiveRequest(itemstack).getWatts() == 0));
|
||||||
|
}
|
||||||
|
else if(slotID == 0)
|
||||||
|
{
|
||||||
|
return LiquidContainerRegistry.isEmptyContainer(itemstack);
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getEnvironmentBoost()
|
public int getEnvironmentBoost()
|
||||||
{
|
{
|
||||||
|
@ -209,6 +226,12 @@ public class TileEntityHeatGenerator extends TileEntityGenerator implements ITan
|
||||||
return TileEntityFurnace.getItemBurnTime(itemstack);
|
return TileEntityFurnace.getItemBurnTime(itemstack);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] getSizeInventorySide(int side)
|
||||||
|
{
|
||||||
|
return ForgeDirection.getOrientation(side) == MekanismUtils.getRight(facing) ? new int[] {1} : new int[] {0};
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getStartInventorySide(ForgeDirection side)
|
public int getStartInventorySide(ForgeDirection side)
|
||||||
{
|
{
|
||||||
|
|
|
@ -14,6 +14,7 @@ import mekanism.common.MekanismUtils;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraftforge.common.ForgeDirection;
|
import net.minecraftforge.common.ForgeDirection;
|
||||||
|
import net.minecraftforge.liquids.LiquidContainerRegistry;
|
||||||
import universalelectricity.core.UniversalElectricity;
|
import universalelectricity.core.UniversalElectricity;
|
||||||
import universalelectricity.core.item.ElectricItemHelper;
|
import universalelectricity.core.item.ElectricItemHelper;
|
||||||
import universalelectricity.core.item.IItemElectric;
|
import universalelectricity.core.item.IItemElectric;
|
||||||
|
@ -98,6 +99,23 @@ public class TileEntityHydrogenGenerator extends TileEntityGenerator implements
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean func_102008_b(int slotID, ItemStack itemstack, int side)
|
||||||
|
{
|
||||||
|
if(slotID == 1)
|
||||||
|
{
|
||||||
|
return (itemstack.getItem() instanceof IItemElectric && ((IItemElectric)itemstack.getItem()).getReceiveRequest(itemstack).getWatts() == 0) ||
|
||||||
|
(itemstack.getItem() instanceof IElectricItem && (!(itemstack.getItem() instanceof IItemElectric) ||
|
||||||
|
((IItemElectric)itemstack.getItem()).getReceiveRequest(itemstack).getWatts() == 0));
|
||||||
|
}
|
||||||
|
else if(slotID == 0)
|
||||||
|
{
|
||||||
|
return (itemstack.getItem() instanceof IStorageTank && ((IStorageTank)itemstack.getItem()).getGas(EnumGas.NONE, itemstack) == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isStackValidForSlot(int slotID, ItemStack itemstack)
|
public boolean isStackValidForSlot(int slotID, ItemStack itemstack)
|
||||||
{
|
{
|
||||||
|
@ -114,6 +132,12 @@ public class TileEntityHydrogenGenerator extends TileEntityGenerator implements
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] getSizeInventorySide(int side)
|
||||||
|
{
|
||||||
|
return ForgeDirection.getOrientation(side) == MekanismUtils.getRight(facing) ? new int[] {1} : new int[] {0};
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getStartInventorySide(ForgeDirection side)
|
public int getStartInventorySide(ForgeDirection side)
|
||||||
{
|
{
|
||||||
|
|
|
@ -7,8 +7,12 @@ import universalelectricity.core.item.IItemElectric;
|
||||||
|
|
||||||
import ic2.api.ElectricItem;
|
import ic2.api.ElectricItem;
|
||||||
import ic2.api.IElectricItem;
|
import ic2.api.IElectricItem;
|
||||||
|
import mekanism.api.EnumGas;
|
||||||
|
import mekanism.api.IStorageTank;
|
||||||
import mekanism.common.Mekanism;
|
import mekanism.common.Mekanism;
|
||||||
|
import mekanism.common.MekanismUtils;
|
||||||
import mekanism.generators.common.BlockGenerator.GeneratorType;
|
import mekanism.generators.common.BlockGenerator.GeneratorType;
|
||||||
|
import micdoodle8.mods.galacticraft.API.ISolarLevel;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraftforge.common.ForgeDirection;
|
import net.minecraftforge.common.ForgeDirection;
|
||||||
|
|
||||||
|
@ -41,6 +45,12 @@ public class TileEntitySolarGenerator extends TileEntityGenerator
|
||||||
@Override
|
@Override
|
||||||
public void updateSound() {/* No super - prevent sound updating */}
|
public void updateSound() {/* No super - prevent sound updating */}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] getSizeInventorySide(int side)
|
||||||
|
{
|
||||||
|
return new int[] {0};
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getSizeInventorySide(ForgeDirection side)
|
public int getSizeInventorySide(ForgeDirection side)
|
||||||
{
|
{
|
||||||
|
@ -91,6 +101,19 @@ public class TileEntitySolarGenerator extends TileEntityGenerator
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean func_102008_b(int slotID, ItemStack itemstack, int side)
|
||||||
|
{
|
||||||
|
if(slotID == 0)
|
||||||
|
{
|
||||||
|
return (itemstack.getItem() instanceof IItemElectric && ((IItemElectric)itemstack.getItem()).getReceiveRequest(itemstack).getWatts() == 0) ||
|
||||||
|
(itemstack.getItem() instanceof IElectricItem && (!(itemstack.getItem() instanceof IItemElectric) ||
|
||||||
|
((IItemElectric)itemstack.getItem()).getReceiveRequest(itemstack).getWatts() == 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isStackValidForSlot(int slotID, ItemStack itemstack)
|
public boolean isStackValidForSlot(int slotID, ItemStack itemstack)
|
||||||
{
|
{
|
||||||
|
@ -112,7 +135,7 @@ public class TileEntitySolarGenerator extends TileEntityGenerator
|
||||||
@Override
|
@Override
|
||||||
public int getEnvironmentBoost()
|
public int getEnvironmentBoost()
|
||||||
{
|
{
|
||||||
return seesSun ? GENERATION_RATE : 0;
|
return seesSun ? (GENERATION_RATE*(worldObj.provider instanceof ISolarLevel ? (int)((ISolarLevel)worldObj.provider).getSolorEnergyMultiplier() : 1)) : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in a new issue