Portable Buckets...a lot more work than I thought
This commit is contained in:
parent
fd74ee5c92
commit
adc8a9bc23
13 changed files with 540 additions and 106 deletions
|
@ -216,7 +216,6 @@ public class ClientProxy extends CommonProxy
|
|||
entityplayer.openContainer.windowId = windowId;
|
||||
}
|
||||
else {
|
||||
SoundHandler.playSound("random.chestopen");
|
||||
ItemStack stack = entityplayer.getCurrentEquippedItem();
|
||||
|
||||
if(stack != null && stack.getItem() instanceof IElectricChest && MachineType.get(stack) == MachineType.ELECTRIC_CHEST)
|
||||
|
|
|
@ -15,6 +15,8 @@ import mekanism.client.sound.SoundHandler;
|
|||
import mekanism.common.KeySync;
|
||||
import mekanism.common.Mekanism;
|
||||
import mekanism.common.ObfuscatedNames;
|
||||
import mekanism.common.block.BlockMachine.MachineType;
|
||||
import mekanism.common.item.ItemBlockMachine;
|
||||
import mekanism.common.item.ItemConfigurator;
|
||||
import mekanism.common.item.ItemElectricBow;
|
||||
import mekanism.common.item.ItemFreeRunners;
|
||||
|
@ -27,6 +29,7 @@ import mekanism.common.network.PacketConfiguratorState.ConfiguratorStateMessage;
|
|||
import mekanism.common.network.PacketElectricBowState.ElectricBowStateMessage;
|
||||
import mekanism.common.network.PacketJetpackData.JetpackDataMessage;
|
||||
import mekanism.common.network.PacketJetpackData.JetpackPacket;
|
||||
import mekanism.common.network.PacketPortableTankState.PortableTankStateMessage;
|
||||
import mekanism.common.network.PacketScubaTankData.ScubaTankDataMessage;
|
||||
import mekanism.common.network.PacketScubaTankData.ScubaTankPacket;
|
||||
import mekanism.common.network.PacketWalkieTalkieState.WalkieTalkieStateMessage;
|
||||
|
@ -38,9 +41,6 @@ import net.minecraft.entity.player.EntityPlayer;
|
|||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.ChatComponentText;
|
||||
import net.minecraft.util.StringUtils;
|
||||
|
||||
import org.lwjgl.input.Keyboard;
|
||||
|
||||
import cpw.mods.fml.client.FMLClientHandler;
|
||||
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||
import cpw.mods.fml.common.gameevent.TickEvent.ClientTickEvent;
|
||||
|
@ -261,6 +261,27 @@ public class ClientTickHandler
|
|||
lastTickUpdate = false;
|
||||
}
|
||||
}
|
||||
else if(mc.thePlayer.isSneaking() && StackUtils.getItem(mc.thePlayer.getCurrentEquippedItem()) instanceof ItemBlockMachine)
|
||||
{
|
||||
ItemBlockMachine item = (ItemBlockMachine)mc.thePlayer.getCurrentEquippedItem().getItem();
|
||||
|
||||
if(MachineType.get(mc.thePlayer.getCurrentEquippedItem()) == MachineType.PORTABLE_TANK)
|
||||
{
|
||||
if(MekanismKeyHandler.modeSwitchKey.getIsKeyPressed())
|
||||
{
|
||||
if(!lastTickUpdate)
|
||||
{
|
||||
item.setBucketMode(stack, !item.getBucketMode(stack));
|
||||
Mekanism.packetHandler.sendToServer(new PortableTankStateMessage(item.getBucketMode(stack)));
|
||||
mc.thePlayer.addChatMessage(new ChatComponentText(EnumColor.DARK_BLUE + "[Mekanism] " + EnumColor.GREY + "Bucket Mode: " + (item.getBucketMode(stack) ? (EnumColor.DARK_GREEN + "ON") : (EnumColor.DARK_RED + "OFF"))));
|
||||
lastTickUpdate = true;
|
||||
}
|
||||
}
|
||||
else {
|
||||
lastTickUpdate = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(mc.thePlayer.isSneaking() && StackUtils.getItem(mc.thePlayer.getCurrentEquippedItem()) instanceof ItemWalkieTalkie)
|
||||
{
|
||||
ItemWalkieTalkie item = (ItemWalkieTalkie)mc.thePlayer.getCurrentEquippedItem().getItem();
|
||||
|
|
|
@ -50,17 +50,6 @@ public class GuiElectricChest extends GuiMekanism
|
|||
isBlock = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGuiClosed()
|
||||
{
|
||||
super.onGuiClosed();
|
||||
|
||||
if(!isBlock)
|
||||
{
|
||||
mc.theWorld.playSoundEffect(tileEntity.xCoord + 0.5, tileEntity.yCoord + 0.5, tileEntity.zCoord + 0.5, "random.chestopen", 0.5f, mc.theWorld.rand.nextFloat() * 0.1F + 0.9F);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initGui()
|
||||
{
|
||||
|
|
|
@ -21,7 +21,7 @@ import mekanism.client.render.RenderGlowPanel;
|
|||
import mekanism.client.render.RenderPartTransmitter;
|
||||
import mekanism.client.render.entity.RenderBalloon;
|
||||
import mekanism.client.render.tileentity.RenderBin;
|
||||
import mekanism.common.IElectricChest;
|
||||
import mekanism.client.render.tileentity.RenderPortableTank;
|
||||
import mekanism.common.IEnergyCube;
|
||||
import mekanism.common.Mekanism;
|
||||
import mekanism.common.Tier.EnergyCubeTier;
|
||||
|
@ -40,6 +40,7 @@ import mekanism.common.multipart.ItemGlowPanel;
|
|||
import mekanism.common.multipart.ItemPartTransmitter;
|
||||
import mekanism.common.multipart.TransmitterType;
|
||||
import mekanism.common.tile.TileEntityBin;
|
||||
import mekanism.common.tile.TileEntityPortableTank;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
import mekanism.common.util.MekanismUtils.ResourceType;
|
||||
import net.minecraft.block.Block;
|
||||
|
@ -58,6 +59,7 @@ import net.minecraft.item.ItemBlock;
|
|||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.client.IItemRenderer;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
import net.minecraftforge.fluids.Fluid;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
|
@ -84,6 +86,7 @@ public class ItemRenderingHandler implements IItemRenderer
|
|||
|
||||
private final RenderBalloon balloonRenderer = new RenderBalloon();
|
||||
private final RenderBin binRenderer = (RenderBin)TileEntityRendererDispatcher.instance.mapSpecialRenderers.get(TileEntityBin.class);
|
||||
private final RenderPortableTank portableTankRenderer = (RenderPortableTank)TileEntityRendererDispatcher.instance.mapSpecialRenderers.get(TileEntityPortableTank.class);
|
||||
private final RenderItem renderItem = (RenderItem)RenderManager.instance.getEntityClassRenderObject(EntityItem.class);
|
||||
|
||||
@Override
|
||||
|
@ -306,7 +309,7 @@ public class ItemRenderingHandler implements IItemRenderer
|
|||
}
|
||||
else if(MachineType.get(item) == MachineType.ELECTRIC_CHEST)
|
||||
{
|
||||
IElectricChest chest = (IElectricChest)item.getItem();
|
||||
ItemBlockMachine chest = (ItemBlockMachine)item.getItem();
|
||||
|
||||
GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F);
|
||||
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
|
||||
|
@ -315,11 +318,6 @@ public class ItemRenderingHandler implements IItemRenderer
|
|||
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "ElectricChest.png"));
|
||||
|
||||
float lidangle = chest.getPrevLidAngle(item) + (chest.getLidAngle(item) - chest.getPrevLidAngle(item)) * MekanismRenderer.getPartialTick();
|
||||
lidangle = 1.0F - lidangle;
|
||||
lidangle = 1.0F - lidangle * lidangle * lidangle;
|
||||
electricChest.chestLid.rotateAngleX = -((lidangle * 3.141593F) / 2.0F);
|
||||
|
||||
electricChest.renderAll();
|
||||
}
|
||||
else if(item.getItem() instanceof ItemRobit)
|
||||
|
@ -439,11 +437,12 @@ public class ItemRenderingHandler implements IItemRenderer
|
|||
}
|
||||
else if(MachineType.get(item) == MachineType.PORTABLE_TANK)
|
||||
{
|
||||
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
|
||||
GL11.glRotatef(270F, 0.0F, -1.0F, 0.0F);
|
||||
GL11.glTranslatef(0.0F, -1.06F, 0.05F);
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "PortableTank.png"));
|
||||
portableTank.render(0.0625F);
|
||||
|
||||
ItemBlockMachine itemMachine = (ItemBlockMachine)item.getItem();
|
||||
Fluid fluid = itemMachine.getFluidStack(item) != null ? itemMachine.getFluidStack(item).getFluid() : null;
|
||||
portableTankRenderer.render(fluid, itemMachine.getPrevScale(item), false, -0.5, -0.5, -0.5);
|
||||
}
|
||||
else {
|
||||
if(item.getItem() instanceof ItemBlockMachine)
|
||||
|
|
|
@ -1,11 +1,19 @@
|
|||
package mekanism.client.render.tileentity;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import mekanism.client.model.ModelPortableTank;
|
||||
import mekanism.client.render.MekanismRenderer;
|
||||
import mekanism.client.render.MekanismRenderer.DisplayInteger;
|
||||
import mekanism.client.render.MekanismRenderer.Model3D;
|
||||
import mekanism.common.tile.TileEntityPortableTank;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
import mekanism.common.util.MekanismUtils.ResourceType;
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.fluids.Fluid;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
|
@ -15,6 +23,10 @@ import cpw.mods.fml.relauncher.SideOnly;
|
|||
@SideOnly(Side.CLIENT)
|
||||
public class RenderPortableTank extends TileEntitySpecialRenderer
|
||||
{
|
||||
private static Map<Fluid, DisplayInteger[]> cachedCenterFluids = new HashMap<Fluid, DisplayInteger[]>();
|
||||
|
||||
private static int stages = 1400;
|
||||
|
||||
private ModelPortableTank model = new ModelPortableTank();
|
||||
|
||||
@Override
|
||||
|
@ -25,21 +37,102 @@ public class RenderPortableTank extends TileEntitySpecialRenderer
|
|||
|
||||
private void renderAModelAt(TileEntityPortableTank tileEntity, double x, double y, double z, float partialTick)
|
||||
{
|
||||
Fluid fluid = tileEntity.fluidTank.getFluid() != null ? tileEntity.fluidTank.getFluid().getFluid() : null;
|
||||
render(fluid, tileEntity.prevScale, tileEntity.isActive, x, y, z);
|
||||
}
|
||||
|
||||
public void render(Fluid fluid, float fluidScale, boolean active, double x, double y, double z)
|
||||
{
|
||||
if(fluidScale > 0)
|
||||
{
|
||||
push();
|
||||
|
||||
bindTexture(MekanismRenderer.getBlocksTexture());
|
||||
GL11.glTranslated(x, y, z);
|
||||
|
||||
MekanismRenderer.glowOn(fluid.getLuminosity());
|
||||
|
||||
DisplayInteger[] displayList = getListAndRender(fluid);
|
||||
|
||||
if(fluid.isGaseous())
|
||||
{
|
||||
GL11.glColor4f(1F, 1F, 1F, Math.min(1, fluidScale+0.3F));
|
||||
displayList[stages-1].render();
|
||||
}
|
||||
else {
|
||||
displayList[Math.min(stages-1, (int)(fluidScale*((float)stages-1)))].render();
|
||||
}
|
||||
|
||||
MekanismRenderer.glowOff();
|
||||
|
||||
pop();
|
||||
}
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef((float)x + 0.5F, (float)y + 1.5F, (float)z + 0.5F);
|
||||
|
||||
bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "PortableTank" + (tileEntity.isActive ? "On" : "") + ".png"));
|
||||
|
||||
switch(tileEntity.facing)
|
||||
{
|
||||
case 2: GL11.glRotatef(0, 0.0F, 1.0F, 0.0F); break;
|
||||
case 3: GL11.glRotatef(180, 0.0F, 1.0F, 0.0F); break;
|
||||
case 4: GL11.glRotatef(90, 0.0F, 1.0F, 0.0F); break;
|
||||
case 5: GL11.glRotatef(270, 0.0F, 1.0F, 0.0F); break;
|
||||
}
|
||||
bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "PortableTank" + (active ? "On" : "") + ".png"));
|
||||
|
||||
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
|
||||
model.render(0.0625F);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
private void pop()
|
||||
{
|
||||
GL11.glPopAttrib();
|
||||
MekanismRenderer.glowOff();
|
||||
MekanismRenderer.blendOff();
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
private void push()
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
GL11.glPushAttrib(GL11.GL_ENABLE_BIT);
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
GL11.glDisable(GL11.GL_LIGHTING);
|
||||
MekanismRenderer.glowOn();
|
||||
MekanismRenderer.blendOn();
|
||||
}
|
||||
|
||||
private DisplayInteger[] getListAndRender(Fluid fluid)
|
||||
{
|
||||
if(cachedCenterFluids.containsKey(fluid))
|
||||
{
|
||||
return cachedCenterFluids.get(fluid);
|
||||
}
|
||||
|
||||
Model3D toReturn = new Model3D();
|
||||
toReturn.baseBlock = Blocks.water;
|
||||
toReturn.setTexture(fluid.getIcon());
|
||||
|
||||
DisplayInteger[] displays = new DisplayInteger[stages];
|
||||
cachedCenterFluids.put(fluid, displays);
|
||||
|
||||
MekanismRenderer.colorFluid(fluid);
|
||||
|
||||
for(int i = 0; i < stages; i++)
|
||||
{
|
||||
displays[i] = DisplayInteger.createAndStart();
|
||||
|
||||
if(fluid.getIcon() != null)
|
||||
{
|
||||
toReturn.minX = 0.125 + .01;
|
||||
toReturn.minY = 0.0625 + .01;
|
||||
toReturn.minZ = 0.125 + .01;
|
||||
|
||||
toReturn.maxX = 0.875 - .01;
|
||||
toReturn.maxY = 0.0625 + ((float)i/(float)stages)*0.875 - .01;
|
||||
toReturn.maxZ = 0.875 - .01;
|
||||
|
||||
MekanismRenderer.renderObject(toReturn);
|
||||
}
|
||||
|
||||
GL11.glEndList();
|
||||
}
|
||||
|
||||
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
|
||||
return displays;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -64,32 +64,4 @@ public interface IElectricChest
|
|||
* @return open value
|
||||
*/
|
||||
public boolean getOpen(ItemStack itemStack);
|
||||
|
||||
/**
|
||||
* Sets the 'lidAngle' value of this electric chest to a new value.
|
||||
* @param itemStack - electric chest ItemStack
|
||||
* @param lidAngle - new value
|
||||
*/
|
||||
public void setLidAngle(ItemStack itemStack, float lidAngle);
|
||||
|
||||
/**
|
||||
* Retrieves the 'lidAngle' value of this electric chest.
|
||||
* @param itemStack - electric chest ItemStack
|
||||
* @return lidAngle value
|
||||
*/
|
||||
public float getLidAngle(ItemStack itemStack);
|
||||
|
||||
/**
|
||||
* Sets the 'prevLidAngle' value of this electric chest to a new value.
|
||||
* @param itemStack - electric chest ItemStack
|
||||
* @param prevLidAngle - new value
|
||||
*/
|
||||
public void setPrevLidAngle(ItemStack itemStack, float prevLidAngle);
|
||||
|
||||
/**
|
||||
* Retrieves the 'prevLidAngle' value of this electric chest.
|
||||
* @param itemStack - electric chest ItemStack
|
||||
* @return prevLidAngle value
|
||||
*/
|
||||
public float getPrevLidAngle(ItemStack itemStack);
|
||||
}
|
||||
|
|
|
@ -33,6 +33,8 @@ import mekanism.common.network.PacketLogisticalSorterGui;
|
|||
import mekanism.common.network.PacketLogisticalSorterGui.LogisticalSorterGuiMessage;
|
||||
import mekanism.common.network.PacketNewFilter;
|
||||
import mekanism.common.network.PacketNewFilter.NewFilterMessage;
|
||||
import mekanism.common.network.PacketPortableTankState;
|
||||
import mekanism.common.network.PacketPortableTankState.PortableTankStateMessage;
|
||||
import mekanism.common.network.PacketPortableTeleport;
|
||||
import mekanism.common.network.PacketPortableTeleport.PortableTeleportMessage;
|
||||
import mekanism.common.network.PacketPortalFX;
|
||||
|
@ -112,6 +114,7 @@ public class PacketHandler
|
|||
netHandler.registerMessage(PacketScubaTankData.class, ScubaTankDataMessage.class, 22, Side.SERVER);
|
||||
netHandler.registerMessage(PacketConfigSync.class, ConfigSyncMessage.class, 23, Side.CLIENT);
|
||||
netHandler.registerMessage(PacketBoxBlacklist.class, BoxBlacklistMessage.class, 24, Side.CLIENT);
|
||||
netHandler.registerMessage(PacketPortableTankState.class, PortableTankStateMessage.class, 25, Side.SERVER);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -67,6 +67,7 @@ import net.minecraft.entity.EntityLivingBase;
|
|||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.init.Items;
|
||||
import net.minecraft.inventory.IInventory;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
@ -80,6 +81,8 @@ import net.minecraft.util.MovingObjectPosition;
|
|||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
import net.minecraftforge.fluids.FluidContainerRegistry;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import buildcraft.api.tools.IToolWrench;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
@ -250,7 +253,7 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds, IPer
|
|||
@Override
|
||||
public void breakBlock(World world, int x, int y, int z, Block block, int meta)
|
||||
{
|
||||
TileEntityElectricBlock tileEntity = (TileEntityElectricBlock)world.getTileEntity(x, y, z);
|
||||
TileEntityBasicBlock tileEntity = (TileEntityBasicBlock)world.getTileEntity(x, y, z);
|
||||
|
||||
if(tileEntity instanceof IBoundingBlock)
|
||||
{
|
||||
|
@ -709,7 +712,9 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds, IPer
|
|||
|
||||
if(tileEntity != null)
|
||||
{
|
||||
if(metadata == MachineType.ELECTRIC_CHEST.meta)
|
||||
MachineType type = MachineType.get(this, metadata);
|
||||
|
||||
if(type == MachineType.ELECTRIC_CHEST)
|
||||
{
|
||||
TileEntityElectricChest electricChest = (TileEntityElectricChest)tileEntity;
|
||||
|
||||
|
@ -730,16 +735,28 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds, IPer
|
|||
return true;
|
||||
}
|
||||
}
|
||||
else if(metadata == MachineType.LOGISTICAL_SORTER.meta)
|
||||
else if(type == MachineType.PORTABLE_TANK)
|
||||
{
|
||||
if(!entityplayer.isSneaking())
|
||||
{
|
||||
manageInventory(entityplayer, (TileEntityPortableTank)tileEntity);
|
||||
}
|
||||
else {
|
||||
entityplayer.openGui(Mekanism.instance, type.guiId, world, x, y, z);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else if(type == MachineType.LOGISTICAL_SORTER)
|
||||
{
|
||||
TileEntityLogisticalSorter sorter = (TileEntityLogisticalSorter)tileEntity;
|
||||
LogisticalSorterGuiMessage.openServerGui(SorterGuiPacket.SERVER, 0, world, (EntityPlayerMP)entityplayer, Coord4D.get(tileEntity), -1);
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
if(!entityplayer.isSneaking() && MachineType.get(this, metadata).guiId != -1)
|
||||
if(!entityplayer.isSneaking() && type.guiId != -1)
|
||||
{
|
||||
entityplayer.openGui(Mekanism.instance, MachineType.get(this, metadata).guiId, world, x, y, z);
|
||||
entityplayer.openGui(Mekanism.instance, type.guiId, world, x, y, z);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -822,6 +839,105 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds, IPer
|
|||
|
||||
return world.setBlockToAir(x, y, z);
|
||||
}
|
||||
|
||||
private boolean manageInventory(EntityPlayer player, TileEntityPortableTank tileEntity)
|
||||
{
|
||||
ItemStack itemStack = player.getCurrentEquippedItem();
|
||||
|
||||
if(itemStack != null)
|
||||
{
|
||||
if(FluidContainerRegistry.isEmptyContainer(itemStack))
|
||||
{
|
||||
if(tileEntity.fluidTank.getFluid() != null && tileEntity.fluidTank.getFluid().amount >= FluidContainerRegistry.BUCKET_VOLUME)
|
||||
{
|
||||
ItemStack filled = FluidContainerRegistry.fillFluidContainer(tileEntity.fluidTank.getFluid(), itemStack);
|
||||
|
||||
if(filled != null)
|
||||
{
|
||||
if(player.capabilities.isCreativeMode)
|
||||
{
|
||||
tileEntity.fluidTank.drain(FluidContainerRegistry.getFluidForFilledItem(filled).amount, true);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
if(itemStack.stackSize > 1)
|
||||
{
|
||||
for(int i = 0; i < player.inventory.mainInventory.length; i++)
|
||||
{
|
||||
if(player.inventory.mainInventory[i] == null)
|
||||
{
|
||||
player.inventory.mainInventory[i] = filled;
|
||||
itemStack.stackSize--;
|
||||
|
||||
tileEntity.fluidTank.drain(FluidContainerRegistry.getFluidForFilledItem(filled).amount, true);
|
||||
|
||||
return true;
|
||||
}
|
||||
else if(player.inventory.mainInventory[i].isItemEqual(filled))
|
||||
{
|
||||
if(filled.getMaxStackSize() > player.inventory.mainInventory[i].stackSize)
|
||||
{
|
||||
player.inventory.mainInventory[i].stackSize++;
|
||||
itemStack.stackSize--;
|
||||
|
||||
tileEntity.fluidTank.drain(FluidContainerRegistry.getFluidForFilledItem(filled).amount, true);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(itemStack.stackSize == 1)
|
||||
{
|
||||
player.setCurrentItemOrArmor(0, filled);
|
||||
|
||||
tileEntity.fluidTank.drain(FluidContainerRegistry.getFluidForFilledItem(filled).amount, true);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(FluidContainerRegistry.isFilledContainer(itemStack))
|
||||
{
|
||||
FluidStack itemFluid = FluidContainerRegistry.getFluidForFilledItem(itemStack);
|
||||
int max = tileEntity.fluidTank.getCapacity();
|
||||
|
||||
if(tileEntity.fluidTank.getFluid() == null || (tileEntity.fluidTank.getFluid().isFluidEqual(itemFluid) && (tileEntity.fluidTank.getFluid().amount+itemFluid.amount <= max)))
|
||||
{
|
||||
if(FluidContainerRegistry.isBucket(itemStack))
|
||||
{
|
||||
tileEntity.fluidTank.fill(itemFluid, true);
|
||||
|
||||
if(!player.capabilities.isCreativeMode)
|
||||
{
|
||||
player.setCurrentItemOrArmor(0, new ItemStack(Items.bucket));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
if(!player.capabilities.isCreativeMode)
|
||||
{
|
||||
itemStack.stackSize--;
|
||||
}
|
||||
|
||||
if(itemStack.stackSize == 0)
|
||||
{
|
||||
player.setCurrentItemOrArmor(0, null);
|
||||
}
|
||||
|
||||
tileEntity.fluidTank.fill(itemFluid, true);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNeighborBlockChange(World world, int x, int y, int z, Block block)
|
||||
|
@ -1102,7 +1218,10 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds, IPer
|
|||
|
||||
if(!world.isRemote)
|
||||
{
|
||||
((TileEntityElectricBlock)tileEntity).register();
|
||||
if(tileEntity instanceof TileEntityElectricBlock)
|
||||
{
|
||||
((TileEntityElectricBlock)tileEntity).register();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@ import ic2.api.item.ISpecialElectricItem;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import mekanism.api.Coord4D;
|
||||
import mekanism.api.EnumColor;
|
||||
import mekanism.api.energy.EnergizedItemManager;
|
||||
import mekanism.api.energy.IEnergizedItem;
|
||||
|
@ -27,6 +28,7 @@ import mekanism.common.inventory.InventoryElectricChest;
|
|||
import mekanism.common.miner.MinerFilter;
|
||||
import mekanism.common.network.PacketElectricChest.ElectricChestMessage;
|
||||
import mekanism.common.network.PacketElectricChest.ElectricChestPacketType;
|
||||
import mekanism.common.tile.TileEntityBasicBlock;
|
||||
import mekanism.common.tile.TileEntityChemicalInfuser;
|
||||
import mekanism.common.tile.TileEntityChemicalOxidizer;
|
||||
import mekanism.common.tile.TileEntityDigitalMiner;
|
||||
|
@ -34,12 +36,14 @@ import mekanism.common.tile.TileEntityElectricBlock;
|
|||
import mekanism.common.tile.TileEntityElectricChest;
|
||||
import mekanism.common.tile.TileEntityFactory;
|
||||
import mekanism.common.tile.TileEntityLogisticalSorter;
|
||||
import mekanism.common.tile.TileEntityPortableTank;
|
||||
import mekanism.common.tile.TileEntityRotaryCondensentrator;
|
||||
import mekanism.common.transporter.TransporterFilter;
|
||||
import mekanism.common.util.LangUtils;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
import mekanism.common.util.TransporterUtils;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
|
@ -50,8 +54,11 @@ import net.minecraft.item.ItemBlock;
|
|||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.nbt.NBTTagList;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.Constants.NBT;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
import net.minecraftforge.fluids.FluidContainerRegistry;
|
||||
import net.minecraftforge.fluids.FluidRegistry;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
|
||||
|
@ -178,8 +185,10 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, ISpec
|
|||
public boolean placeBlockAt(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ, int metadata)
|
||||
{
|
||||
boolean place = true;
|
||||
|
||||
MachineType type = MachineType.get(stack);
|
||||
|
||||
if(MachineType.get(stack) == MachineType.DIGITAL_MINER)
|
||||
if(type == MachineType.DIGITAL_MINER)
|
||||
{
|
||||
for(int xPos = x-1; xPos <= x+1; xPos++)
|
||||
{
|
||||
|
@ -190,18 +199,29 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, ISpec
|
|||
Block b = world.getBlock(xPos, yPos, zPos);
|
||||
|
||||
if(yPos > 255)
|
||||
{
|
||||
place = false;
|
||||
}
|
||||
|
||||
if(!b.isAir(world, xPos, yPos, zPos) && !b.isReplaceable(world, xPos, yPos, zPos))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(type == MachineType.PORTABLE_TANK)
|
||||
{
|
||||
if(getBucketMode(stack))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if(place && super.placeBlockAt(stack, player, world, x, y, z, side, hitX, hitY, hitZ, metadata))
|
||||
{
|
||||
TileEntityElectricBlock tileEntity = (TileEntityElectricBlock)world.getTileEntity(x, y, z);
|
||||
TileEntityBasicBlock tileEntity = (TileEntityBasicBlock)world.getTileEntity(x, y, z);
|
||||
|
||||
if(tileEntity instanceof IUpgradeManagement)
|
||||
{
|
||||
|
@ -339,7 +359,10 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, ISpec
|
|||
|
||||
((ISustainedInventory)tileEntity).setInventory(getInventory(stack));
|
||||
|
||||
tileEntity.electricityStored = getEnergy(stack);
|
||||
if(tileEntity instanceof TileEntityElectricBlock)
|
||||
{
|
||||
((TileEntityElectricBlock)tileEntity).electricityStored = getEnergy(stack);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -374,7 +397,9 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, ISpec
|
|||
@Override
|
||||
public void onUpdate(ItemStack itemstack, World world, Entity entity, int i, boolean flag)
|
||||
{
|
||||
if(MachineType.get(itemstack) == MachineType.ELECTRIC_CHEST)
|
||||
MachineType type = MachineType.get(itemstack);
|
||||
|
||||
if(type == MachineType.ELECTRIC_CHEST)
|
||||
{
|
||||
if(world != null && !world.isRemote)
|
||||
{
|
||||
|
@ -421,6 +446,18 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, ISpec
|
|||
}
|
||||
}
|
||||
}
|
||||
else if(type == MachineType.PORTABLE_TANK)
|
||||
{
|
||||
if(world.isRemote)
|
||||
{
|
||||
float targetScale = (float)(getFluidStack(itemstack) != null ? getFluidStack(itemstack).amount : 0)/TileEntityPortableTank.MAX_FLUID;
|
||||
|
||||
if(Math.abs(getPrevScale(itemstack) - targetScale) > 0.01)
|
||||
{
|
||||
setPrevScale(itemstack, (9*getPrevScale(itemstack) + targetScale)/10);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -512,12 +549,52 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, ISpec
|
|||
return false;
|
||||
}
|
||||
|
||||
public boolean tryPlaceContainedLiquid(World world, ItemStack itemstack, int x, int y, int z)
|
||||
{
|
||||
if(getFluidStack(itemstack) == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else {
|
||||
Material material = world.getBlock(x, y, z).getMaterial();
|
||||
boolean flag = !material.isSolid();
|
||||
|
||||
if(!world.isAirBlock(x, y, z) && !flag)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else {
|
||||
if(world.provider.isHellWorld && getFluidStack(itemstack).getFluid() == FluidRegistry.WATER)
|
||||
{
|
||||
world.playSoundEffect(x + 0.5F, y + 0.5F, z + 0.5F, "random.fizz", 0.5F, 2.6F + (world.rand.nextFloat() - world.rand.nextFloat()) * 0.8F);
|
||||
|
||||
for(int l = 0; l < 8; l++)
|
||||
{
|
||||
world.spawnParticle("largesmoke", x + Math.random(), y + Math.random(), z + Math.random(), 0.0D, 0.0D, 0.0D);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if(!world.isRemote && flag && !material.isLiquid())
|
||||
{
|
||||
world.func_147480_a(x, y, z, true);
|
||||
}
|
||||
|
||||
world.setBlock(x, y, z, getFluidStack(itemstack).getFluid().getBlock(), 0, 3);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entityplayer)
|
||||
{
|
||||
if(!world.isRemote)
|
||||
MachineType type = MachineType.get(itemstack);
|
||||
|
||||
if(MachineType.get(itemstack) == MachineType.ELECTRIC_CHEST)
|
||||
{
|
||||
if(MachineType.get(itemstack) == MachineType.ELECTRIC_CHEST)
|
||||
if(!world.isRemote)
|
||||
{
|
||||
if(!getAuthenticated(itemstack))
|
||||
{
|
||||
|
@ -533,6 +610,83 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, ISpec
|
|||
}
|
||||
}
|
||||
}
|
||||
else if(type == MachineType.PORTABLE_TANK && getBucketMode(itemstack))
|
||||
{
|
||||
MovingObjectPosition pos = getMovingObjectPositionFromPlayer(world, entityplayer, !entityplayer.isSneaking());
|
||||
|
||||
if(pos == null)
|
||||
{
|
||||
return itemstack;
|
||||
}
|
||||
else {
|
||||
if(pos.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK)
|
||||
{
|
||||
Coord4D coord = new Coord4D(pos.blockX, pos.blockY, pos.blockZ, world.provider.dimensionId);
|
||||
|
||||
if(!world.canMineBlock(entityplayer, coord.xCoord, coord.yCoord, coord.zCoord))
|
||||
{
|
||||
return itemstack;
|
||||
}
|
||||
|
||||
if(!entityplayer.isSneaking())
|
||||
{
|
||||
if(!entityplayer.canPlayerEdit(coord.xCoord, coord.yCoord, coord.zCoord, pos.sideHit, itemstack))
|
||||
{
|
||||
return itemstack;
|
||||
}
|
||||
|
||||
FluidStack fluid = MekanismUtils.getFluid(world, coord.xCoord, coord.yCoord, coord.zCoord);
|
||||
|
||||
if(fluid != null && (getFluidStack(itemstack) == null || getFluidStack(itemstack).isFluidEqual(fluid)))
|
||||
{
|
||||
int needed = TileEntityPortableTank.MAX_FLUID-(getFluidStack(itemstack) != null ? getFluidStack(itemstack).amount : 0);
|
||||
|
||||
if(fluid.amount > needed)
|
||||
{
|
||||
return itemstack;
|
||||
}
|
||||
|
||||
if(getFluidStack(itemstack) == null)
|
||||
{
|
||||
setFluidStack(fluid, itemstack);
|
||||
}
|
||||
else {
|
||||
FluidStack newStack = getFluidStack(itemstack);
|
||||
newStack.amount += fluid.amount;
|
||||
setFluidStack(newStack, itemstack);
|
||||
}
|
||||
|
||||
world.setBlockToAir(coord.xCoord, coord.yCoord, coord.zCoord);
|
||||
}
|
||||
}
|
||||
else {
|
||||
FluidStack stored = getFluidStack(itemstack);
|
||||
|
||||
if(stored == null || stored.amount < FluidContainerRegistry.BUCKET_VOLUME)
|
||||
{
|
||||
return itemstack;
|
||||
}
|
||||
|
||||
Coord4D trans = coord.getFromSide(ForgeDirection.getOrientation(pos.sideHit));
|
||||
|
||||
if(!entityplayer.canPlayerEdit(trans.xCoord, trans.yCoord, trans.zCoord, pos.sideHit, itemstack))
|
||||
{
|
||||
return itemstack;
|
||||
}
|
||||
|
||||
if(tryPlaceContainedLiquid(world, itemstack, trans.xCoord, trans.yCoord, trans.zCoord) && !entityplayer.capabilities.isCreativeMode)
|
||||
{
|
||||
FluidStack newStack = stored.copy();
|
||||
newStack.amount -= FluidContainerRegistry.BUCKET_VOLUME;
|
||||
|
||||
setFluidStack(newStack.amount > 0 ? newStack : null, itemstack);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return itemstack;
|
||||
}
|
||||
}
|
||||
|
||||
return itemstack;
|
||||
}
|
||||
|
@ -596,11 +750,6 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, ISpec
|
|||
@Override
|
||||
public void setFluidStack(FluidStack fluidStack, Object... data)
|
||||
{
|
||||
if(fluidStack == null || fluidStack.amount == 0 || fluidStack.fluidID == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if(data[0] instanceof ItemStack)
|
||||
{
|
||||
ItemStack itemStack = (ItemStack)data[0];
|
||||
|
@ -609,8 +758,14 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, ISpec
|
|||
{
|
||||
itemStack.setTagCompound(new NBTTagCompound());
|
||||
}
|
||||
|
||||
itemStack.stackTagCompound.setTag("fluidTank", fluidStack.writeToNBT(new NBTTagCompound()));
|
||||
|
||||
if(fluidStack == null || fluidStack.amount == 0 || fluidStack.fluidID == 0)
|
||||
{
|
||||
itemStack.stackTagCompound.setTag("fluidTank", null);
|
||||
}
|
||||
else {
|
||||
itemStack.stackTagCompound.setTag("fluidTank", fluidStack.writeToNBT(new NBTTagCompound()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -638,8 +793,15 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, ISpec
|
|||
@Override
|
||||
public boolean hasTank(Object... data)
|
||||
{
|
||||
return data[0] instanceof ItemStack && ((ItemStack)data[0]).getItem() instanceof ISustainedTank && (MachineType.get((ItemStack)data[0]) == MachineType.ELECTRIC_PUMP
|
||||
|| MachineType.get((ItemStack)data[0]) == MachineType.ROTARY_CONDENSENTRATOR);
|
||||
if(!(data[0] instanceof ItemStack) || !(((ItemStack)data[0]).getItem() instanceof ISustainedTank))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
MachineType type = MachineType.get((ItemStack)data[0]);
|
||||
|
||||
return type == MachineType.ELECTRIC_PUMP || type == MachineType.ROTARY_CONDENSENTRATOR
|
||||
|| type == MachineType.PORTABLE_TANK;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -730,48 +892,44 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, ISpec
|
|||
return itemStack.stackTagCompound.getBoolean("open");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setLidAngle(ItemStack itemStack, float lidAngle)
|
||||
public void setPrevScale(ItemStack itemStack, float prevLidAngle)
|
||||
{
|
||||
if(itemStack.stackTagCompound == null)
|
||||
{
|
||||
itemStack.setTagCompound(new NBTTagCompound());
|
||||
}
|
||||
|
||||
itemStack.stackTagCompound.setFloat("lidAngle", lidAngle);
|
||||
itemStack.stackTagCompound.setFloat("prevScale", prevLidAngle);
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getLidAngle(ItemStack itemStack)
|
||||
public float getPrevScale(ItemStack itemStack)
|
||||
{
|
||||
if(itemStack.stackTagCompound == null)
|
||||
{
|
||||
return 0.0F;
|
||||
}
|
||||
|
||||
return itemStack.stackTagCompound.getFloat("lidAngle");
|
||||
return itemStack.stackTagCompound.getFloat("prevScale");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setPrevLidAngle(ItemStack itemStack, float prevLidAngle)
|
||||
|
||||
public void setBucketMode(ItemStack itemStack, boolean bucketMode)
|
||||
{
|
||||
if(itemStack.stackTagCompound == null)
|
||||
{
|
||||
itemStack.setTagCompound(new NBTTagCompound());
|
||||
}
|
||||
|
||||
itemStack.stackTagCompound.setFloat("prevLidAngle", prevLidAngle);
|
||||
itemStack.stackTagCompound.setBoolean("bucketMode", bucketMode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getPrevLidAngle(ItemStack itemStack)
|
||||
|
||||
public boolean getBucketMode(ItemStack itemStack)
|
||||
{
|
||||
if(itemStack.stackTagCompound == null)
|
||||
{
|
||||
return 0.0F;
|
||||
return false;
|
||||
}
|
||||
|
||||
return itemStack.stackTagCompound.getFloat("prevLidAngle");
|
||||
return itemStack.stackTagCompound.getBoolean("bucketMode");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
package mekanism.common.network;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import mekanism.common.PacketHandler;
|
||||
import mekanism.common.item.ItemBlockMachine;
|
||||
import mekanism.common.network.PacketPortableTankState.PortableTankStateMessage;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import cpw.mods.fml.common.network.simpleimpl.IMessage;
|
||||
import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
|
||||
import cpw.mods.fml.common.network.simpleimpl.MessageContext;
|
||||
|
||||
public class PacketPortableTankState implements IMessageHandler<PortableTankStateMessage, IMessage>
|
||||
{
|
||||
@Override
|
||||
public IMessage onMessage(PortableTankStateMessage message, MessageContext context)
|
||||
{
|
||||
ItemStack itemstack = PacketHandler.getPlayer(context).getCurrentEquippedItem();
|
||||
|
||||
if(itemstack != null && itemstack.getItem() instanceof ItemBlockMachine)
|
||||
{
|
||||
((ItemBlockMachine)itemstack.getItem()).setBucketMode(itemstack, message.bucketMode);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static class PortableTankStateMessage implements IMessage
|
||||
{
|
||||
public boolean bucketMode;
|
||||
|
||||
public PortableTankStateMessage() {}
|
||||
|
||||
public PortableTankStateMessage(boolean state)
|
||||
{
|
||||
bucketMode = state;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toBytes(ByteBuf dataStream)
|
||||
{
|
||||
dataStream.writeBoolean(bucketMode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromBytes(ByteBuf dataStream)
|
||||
{
|
||||
bucketMode = dataStream.readBoolean();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -30,10 +30,16 @@ public class TileEntityPortableTank extends TileEntityContainerBlock implements
|
|||
|
||||
public boolean clientActive;
|
||||
|
||||
public FluidTank fluidTank = new FluidTank(14000);
|
||||
public static final int MAX_FLUID = 14000;
|
||||
|
||||
public FluidTank fluidTank = new FluidTank(MAX_FLUID);
|
||||
|
||||
public int updateDelay;
|
||||
|
||||
public int prevAmount;
|
||||
|
||||
public float prevScale;
|
||||
|
||||
public TileEntityPortableTank()
|
||||
{
|
||||
super("PortableTank");
|
||||
|
@ -62,8 +68,32 @@ public class TileEntityPortableTank extends TileEntityContainerBlock implements
|
|||
MekanismUtils.updateBlock(worldObj, xCoord, yCoord, zCoord);
|
||||
}
|
||||
}
|
||||
|
||||
float targetScale = (float)(fluidTank.getFluid() != null ? fluidTank.getFluid().amount : 0)/fluidTank.getCapacity();
|
||||
|
||||
if(Math.abs(prevScale - targetScale) > 0.01)
|
||||
{
|
||||
prevScale = (9*prevScale + targetScale)/10;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if(updateDelay > 0)
|
||||
{
|
||||
updateDelay--;
|
||||
|
||||
if(updateDelay == 0 && clientActive != isActive)
|
||||
{
|
||||
Mekanism.packetHandler.sendToAllAround(new TileEntityMessage(Coord4D.get(this), getNetworkedData(new ArrayList())), Coord4D.get(this).getTargetPoint(50));
|
||||
}
|
||||
}
|
||||
|
||||
if(fluidTank.getFluidAmount() != prevAmount)
|
||||
{
|
||||
Mekanism.packetHandler.sendToAllAround(new TileEntityMessage(Coord4D.get(this), getNetworkedData(new ArrayList())), Coord4D.get(this).getTargetPoint(50));
|
||||
}
|
||||
|
||||
prevAmount = fluidTank.getFluidAmount();
|
||||
|
||||
if(inventory[0] != null)
|
||||
{
|
||||
manageInventory();
|
||||
|
|
|
@ -721,11 +721,11 @@ public final class MekanismUtils
|
|||
return null;
|
||||
}
|
||||
|
||||
if(block == Blocks.water && meta == 0)
|
||||
if((block == Blocks.water || block == Blocks.flowing_water) && meta == 0)
|
||||
{
|
||||
return new FluidStack(FluidRegistry.WATER, FluidContainerRegistry.BUCKET_VOLUME);
|
||||
}
|
||||
else if(block == Blocks.lava && meta == 0)
|
||||
else if((block == Blocks.lava || block == Blocks.flowing_lava) && meta == 0)
|
||||
{
|
||||
return new FluidStack(FluidRegistry.LAVA, FluidContainerRegistry.BUCKET_VOLUME);
|
||||
}
|
||||
|
@ -760,11 +760,11 @@ public final class MekanismUtils
|
|||
return 0;
|
||||
}
|
||||
|
||||
if(block == Blocks.water)
|
||||
if(block == Blocks.water || block == Blocks.flowing_water)
|
||||
{
|
||||
return FluidRegistry.WATER.getID();
|
||||
}
|
||||
else if(block == Blocks.lava)
|
||||
else if(block == Blocks.lava || block == Blocks.flowing_lava)
|
||||
{
|
||||
return FluidRegistry.LAVA.getID();
|
||||
}
|
||||
|
@ -798,11 +798,11 @@ public final class MekanismUtils
|
|||
return false;
|
||||
}
|
||||
|
||||
if(block == Blocks.water && meta != 0)
|
||||
if((block == Blocks.water || block == Blocks.flowing_water) && meta != 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else if(block == Blocks.lava && meta != 0)
|
||||
else if((block == Blocks.lava || block == Blocks.flowing_lava) && meta != 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -101,6 +101,7 @@ tile.MachineBlock2.ChemicalCrystallizer.name=Chemical Crystallizer
|
|||
tile.MachineBlock2.SeismicVibrator.name=Seismic Vibrator
|
||||
tile.MachineBlock2.PressurizedReactionChamber.name=Pressurized Reaction Chamber
|
||||
tile.MachineBlock2.PressurizedReactionChamber.short.name=PRC
|
||||
tile.MachineBlock2.PortableTank.name=Portable Tank
|
||||
|
||||
//Plastic
|
||||
tile.PlasticBlock.name=Plastic Block
|
||||
|
|
Loading…
Reference in a new issue