List of usage examples for net.minecraftforge.fluids FluidStack loadFluidStackFromNBT
public static FluidStack loadFluidStackFromNBT(CompoundNBT nbt)
From source file:appeng.util.item.AEFluidStack.java
License:Open Source License
public static IAEFluidStack loadFluidStackFromPacket(ByteBuf data) throws IOException { byte mask = data.readByte(); // byte PriorityType = (byte) (mask & 0x03); byte stackType = (byte) ((mask & 0x0C) >> 2); byte countReqType = (byte) ((mask & 0x30) >> 4); boolean isCraftable = (mask & 0x40) > 0; boolean hasTagCompound = (mask & 0x80) > 0; // don't send this... NBTTagCompound d = new NBTTagCompound(); byte len2 = data.readByte(); byte[] name = new byte[len2]; data.readBytes(name, 0, len2);/* ww w . j a v a2 s. c o m*/ d.setString("FluidName", new String(name, "UTF-8")); d.setByte("Count", (byte) 0); if (hasTagCompound) { int len = data.readInt(); byte[] bd = new byte[len]; data.readBytes(bd); DataInputStream di = new DataInputStream(new ByteArrayInputStream(bd)); d.setTag("tag", CompressedStreamTools.read(di)); } // long priority = getPacketValue( PriorityType, data ); long stackSize = getPacketValue(stackType, data); long countRequestable = getPacketValue(countReqType, data); FluidStack fluidStack = FluidStack.loadFluidStackFromNBT(d); if (fluidStack == null) { return null; } AEFluidStack fluid = AEFluidStack.create(fluidStack); // fluid.priority = (int) priority; fluid.stackSize = stackSize; fluid.setCountRequestable(countRequestable); fluid.setCraftable(isCraftable); return fluid; }
From source file:blusunrize.immersiveengineering.api.crafting.MixerRecipe.java
public static MixerRecipe loadFromNBT(NBTTagCompound nbt) { FluidStack fluidInput = FluidStack.loadFluidStackFromNBT(nbt.getCompoundTag("fluidInput")); IngredientStack[] itemInputs = null; if (nbt.hasKey("itemInputs")) { NBTTagList list = nbt.getTagList("itemInputs", 10); itemInputs = new IngredientStack[list.tagCount()]; for (int i = 0; i < itemInputs.length; i++) itemInputs[i] = IngredientStack.readFromNBT(list.getCompoundTagAt(i)); }//from w ww .jav a 2 s .c om for (MixerRecipe recipe : recipeList) if (recipe.fluidInput.equals(fluidInput)) { if (itemInputs == null && recipe.itemInputs.length < 1) return recipe; else if (itemInputs != null && recipe.itemInputs.length == itemInputs.length) { boolean b = true; for (int i = 0; i < itemInputs.length; i++) if (!itemInputs[i].equals(recipe.itemInputs[i])) { b = false; break; } if (b) return recipe; } } return null; }
From source file:blusunrize.immersiveengineering.api.crafting.RefineryRecipe.java
public static RefineryRecipe loadFromNBT(NBTTagCompound nbt) { FluidStack input0 = FluidStack.loadFluidStackFromNBT(nbt.getCompoundTag("input0")); FluidStack input1 = FluidStack.loadFluidStackFromNBT(nbt.getCompoundTag("input1")); return findRecipe(input0, input1); }
From source file:blusunrize.immersiveengineering.common.blocks.ItemBlockIEBase.java
@Override public void addInformation(ItemStack stack, @Nullable World world, List<String> tooltip, ITooltipFlag tooltipFlag) {//w ww.j av a 2 s . c om if (((BlockIEBase) block).hasFlavour(stack)) { String subName = ((BlockIEBase) this.block).getStateFromMeta(stack.getItemDamage()) .getValue(((BlockIEBase) this.block).property).toString().toLowerCase(Locale.US); String flavourKey = Lib.DESC_FLAVOUR + ((BlockIEBase) this.block).name + "." + subName; tooltip.add(TextFormatting.GRAY.toString() + I18n.format(flavourKey)); } super.addInformation(stack, world, tooltip, tooltipFlag); if (ItemNBTHelper.hasKey(stack, "energyStorage")) tooltip.add(I18n.format("desc.immersiveengineering.info.energyStored", ItemNBTHelper.getInt(stack, "energyStorage"))); if (ItemNBTHelper.hasKey(stack, "tank")) { FluidStack fs = FluidStack.loadFluidStackFromNBT(ItemNBTHelper.getTagCompound(stack, "tank")); if (fs != null) tooltip.add(fs.getLocalizedName() + ": " + fs.amount + "mB"); } }
From source file:blusunrize.immersiveengineering.common.blocks.wooden.TileEntityFluidSorter.java
@Override public void receiveMessageFromClient(NBTTagCompound message) { if (message.hasKey("sideConfig")) this.sortWithNBT = message.getByteArray("sideConfig"); if (message.hasKey("filter_side")) { int side = message.getInteger("filter_side"); int slot = message.getInteger("filter_slot"); this.filters[side][slot] = FluidStack.loadFluidStackFromNBT(message.getCompoundTag("filter")); }//w w w. j ava 2 s . co m this.markDirty(); }
From source file:blusunrize.immersiveengineering.common.blocks.wooden.TileEntityFluidSorter.java
@Override public void readCustomNBT(NBTTagCompound nbt, boolean descPacket) { sortWithNBT = nbt.getByteArray("sortWithNBT"); for (int side = 0; side < 6; side++) { NBTTagList filterList = nbt.getTagList("filter_" + side, 10); for (int i = 0; i < filterList.tagCount(); i++) filters[side][i] = FluidStack.loadFluidStackFromNBT(filterList.getCompoundTagAt(i)); }//w w w .java2s .co m }
From source file:blusunrize.immersiveengineering.common.util.compat.waila.IEWailaDataProvider.java
@Override public List<String> getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {/*from w w w . ja v a2s . c om*/ Block b = accessor.getBlock(); TileEntity tile = accessor.getTileEntity(); if (b instanceof BlockIECrop) { int meta = accessor.getMetadata(); int min = ((BlockIECrop) b).getMinMeta(meta); int max = ((BlockIECrop) b).getMaxMeta(meta); if (min == max) currenttip.add( String.format("%s : %s", I18n.format("hud.msg.growth"), I18n.format("hud.msg.mature"))); else { float growth = ((meta - min) / (float) (max - min)) * 100f; if (growth < 100.0) currenttip.add(String.format("%s : %.0f %%", I18n.format("hud.msg.growth"), growth)); else currenttip.add( String.format("%s : %s", I18n.format("hud.msg.growth"), I18n.format("hud.msg.mature"))); } return currenttip; } else if (tile instanceof TileEntityWoodenBarrel) { NBTTagCompound tank = accessor.getNBTData().getCompoundTag("tank"); if (!tank.hasKey("Empty") && !tank.isEmpty()) { FluidStack fluid = FluidStack.loadFluidStackFromNBT(tank); currenttip.add(String.format("%s: %d / %d mB", fluid.getLocalizedName(), Integer.valueOf(fluid.amount), 12000)); } else currenttip.add(I18n.format("hud.msg.empty")); } if (accessor.getNBTData().hasKey("Energy")) { int cur = accessor.getNBTInteger(accessor.getNBTData(), "Energy"); int max = accessor.getNBTInteger(accessor.getNBTData(), "MaxStorage"); if (max > 0 && ((ITaggedList) currenttip).getEntries("IFEnergyStorage").size() == 0) ((ITaggedList) currenttip).add(String.format("%d / %d IF", cur, max), "IFEnergyStorage"); if (tile instanceof TileEntityTeslaCoil && ((ITaggedList) currenttip).getEntries("teslaCoil").size() == 0) { boolean rsInv = accessor.getNBTData().getBoolean("redstoneInverted"); boolean lowPower = accessor.getNBTData().getBoolean("lowPower"); ((ITaggedList) currenttip).add( I18n.format(Lib.CHAT_INFO + "rsControl." + (rsInv ? "invertedOn" : "invertedOff")), "teslaCoil"); currenttip.add(I18n.format(Lib.CHAT_INFO + "tesla." + (lowPower ? "lowPower" : "highPower"))); } } return currenttip; }
From source file:blusunrize.immersiveengineering.common.util.inventory.MultiFluidTank.java
public MultiFluidTank readFromNBT(NBTTagCompound nbt) { if (nbt.hasKey("fluids")) { fluids.clear();//ww w .j a v a 2 s .c o m NBTTagList tagList = nbt.getTagList("fluids", 10); for (int i = 0; i < tagList.tagCount(); i++) { FluidStack fs = FluidStack.loadFluidStackFromNBT(tagList.getCompoundTagAt(i)); if (fs != null) this.fluids.add(fs); } } return this; }
From source file:blusunrize.immersiveengineering.common.util.ItemNBTHelper.java
public static FluidStack getFluidStack(ItemStack stack, String key) { if (hasTag(stack)) { return FluidStack.loadFluidStackFromNBT(getTagCompound(stack, key)); }/*www . j a v a 2 s . c o m*/ return null; }
From source file:buildcraft.core.InterModComms.java
License:Minecraft Mod Public
public static void processRefineryRecipeIMC(IMCEvent event, IMCMessage msg) { boolean failed = false; if (!msg.isNBTMessage()) { failed = true;/*w w w . j a v a 2 s.c o m*/ } else { NBTTagCompound recipe = msg.getNBTValue(); if (!recipe.hasKey("input", 10) || !recipe.hasKey("output", 10) || !recipe.hasKey("energy", 3) || !recipe.hasKey("delay", 3)) { failed = true; } else { FluidStack output = FluidStack.loadFluidStackFromNBT(recipe.getCompoundTag("output")); FluidStack input = FluidStack.loadFluidStackFromNBT(recipe.getCompoundTag("input")); FluidStack input2 = null; if (recipe.hasKey("input_2", 10)) { input2 = FluidStack.loadFluidStackFromNBT(recipe.getCompoundTag("input_2")); } if (input != null && output != null) { RefineryRecipeManager.INSTANCE.addRecipe(input, input2, output, recipe.getInteger("energy"), recipe.getInteger("delay")); } else { failed = true; } } } if (failed) { Logger.getLogger("Buildcraft").log(Level.WARNING, "Received invalid refinery recipe IMC message from %s!", msg.getSender()); } }