From 5d2b8eec8528a7a1a773a17a7d3e6f95c41d4979 Mon Sep 17 00:00:00 2001 From: Quetz4l Date: Tue, 2 Jul 2024 01:15:02 +0300 Subject: [PATCH] add infinity water cell (#212) * add infinity water cell * code improvement for water cell * code improvement for water cell 2 * changed Integer.MAX_VALUE to Integer.MAX_VALUE * 1000L for creative cells * code improvement for water cell 3 * changed value to Integer.MAX_VALUE * 1_000_000L for creative cells --------- Co-authored-by: Zereff06 --- .../java/com/glodblock/github/FluidCraft.java | 1 + .../item/ItemBaseInfinityStorageCell.java | 93 ++++++++++++++++++ .../item/ItemCreativeFluidStorageCell.java | 86 +--------------- .../item/ItemInfinityWaterStorageCell.java | 68 +++++++++++++ .../storage/CreativeFluidCellInventory.java | 2 +- .../common/storage/FluidCellInventory.java | 4 +- .../github/loader/ItemAndBlockHolder.java | 2 + .../glodblock/github/loader/RecipeLoader.java | 32 ++++++ .../com/glodblock/github/util/NameConst.java | 3 + .../java/com/glodblock/github/util/Util.java | 3 + .../resources/assets/ae2fc/lang/en_US.lang | 2 + .../resources/assets/ae2fc/lang/ru_RU.lang | 2 + .../textures/items/fluid_storage.infinity.png | Bin 0 -> 636 bytes 13 files changed, 212 insertions(+), 86 deletions(-) create mode 100644 src/main/java/com/glodblock/github/common/item/ItemBaseInfinityStorageCell.java create mode 100644 src/main/java/com/glodblock/github/common/item/ItemInfinityWaterStorageCell.java create mode 100644 src/main/resources/assets/ae2fc/textures/items/fluid_storage.infinity.png diff --git a/src/main/java/com/glodblock/github/FluidCraft.java b/src/main/java/com/glodblock/github/FluidCraft.java index 5c157012..5f1d0240 100644 --- a/src/main/java/com/glodblock/github/FluidCraft.java +++ b/src/main/java/com/glodblock/github/FluidCraft.java @@ -78,6 +78,7 @@ public class FluidCraft { } if (!ModAndClassUtil.NEW_HORIZONS_CORE_MOD) { RecipeLoader.addTerminalCards(); + RecipeLoader.addInfiniteWaterCell(); } RecipeLoader.runTerminalRecipe(); diff --git a/src/main/java/com/glodblock/github/common/item/ItemBaseInfinityStorageCell.java b/src/main/java/com/glodblock/github/common/item/ItemBaseInfinityStorageCell.java new file mode 100644 index 00000000..6d129dba --- /dev/null +++ b/src/main/java/com/glodblock/github/common/item/ItemBaseInfinityStorageCell.java @@ -0,0 +1,93 @@ +package com.glodblock.github.common.item; + +import java.util.List; + +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.util.StatCollector; + +import com.glodblock.github.api.FluidCraftAPI; +import com.glodblock.github.common.storage.IFluidCellInventory; +import com.glodblock.github.common.storage.IFluidCellInventoryHandler; +import com.glodblock.github.common.storage.IStorageFluidCell; +import com.glodblock.github.util.NameConst; + +import appeng.api.AEApi; +import appeng.api.storage.IMEInventoryHandler; +import appeng.api.storage.StorageChannel; +import appeng.api.storage.data.IAEFluidStack; +import appeng.items.AEBaseItem; +import appeng.items.contents.CellUpgrades; + +public abstract class ItemBaseInfinityStorageCell extends AEBaseItem implements IStorageFluidCell { + + @Override + public long getBytes(ItemStack cellItem) { + return 0; + } + + @Override + public int getBytesPerType(ItemStack cellItem) { + return 0; + } + + @Override + public boolean isBlackListed(ItemStack cellItem, IAEFluidStack requestedAddition) { + return requestedAddition == null || requestedAddition.getFluid() == null + || FluidCraftAPI.instance().isBlacklistedInStorage(requestedAddition.getFluid().getClass()); + } + + @Override + public boolean storableInStorageCell() { + return false; + } + + @Override + public boolean isStorageCell(ItemStack i) { + return true; + } + + @Override + public double getIdleDrain(ItemStack is) { + return 0; + } + + @Override + public int getTotalTypes(ItemStack cellItem) { + return 0; + } + + @Override + public IInventory getUpgradesInventory(ItemStack is) { + return new CellUpgrades(is, 0); + } + + @Override + public void addCheckedInformation(final ItemStack stack, final EntityPlayer player, final List lines, + final boolean displayMoreInfo) { + final IMEInventoryHandler inventory = AEApi.instance().registries().cell() + .getCellInventory(stack, null, StorageChannel.FLUIDS); + + if (inventory instanceof final IFluidCellInventoryHandler handler) { + final IFluidCellInventory cellInventory = handler.getCellInv(); + + if (GuiScreen.isCtrlKeyDown()) { + if (!cellInventory.getContents().isEmpty()) { + lines.add(StatCollector.translateToLocal(NameConst.TT_CELL_CONTENTS)); + for (IAEFluidStack fluid : cellInventory.getContents()) { + if (fluid != null) { + lines.add(String.format(" %s %s", StatCollector.translateToLocal(NameConst.TT_INFINITY_FLUID_STORAGE_TIPS), fluid.getFluidStack().getLocalizedName())); + } + } + } else { + lines.add(StatCollector.translateToLocal(NameConst.TT_CELL_EMPTY)); + } + } else { + lines.add(StatCollector.translateToLocal(NameConst.TT_CTRL_FOR_MORE)); + } + } + } + +} diff --git a/src/main/java/com/glodblock/github/common/item/ItemCreativeFluidStorageCell.java b/src/main/java/com/glodblock/github/common/item/ItemCreativeFluidStorageCell.java index 11df908a..f417fca6 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemCreativeFluidStorageCell.java +++ b/src/main/java/com/glodblock/github/common/item/ItemCreativeFluidStorageCell.java @@ -1,36 +1,23 @@ package com.glodblock.github.common.item; import java.util.EnumSet; -import java.util.List; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; -import net.minecraft.util.StatCollector; import com.glodblock.github.FluidCraft; -import com.glodblock.github.api.FluidCraftAPI; -import com.glodblock.github.common.storage.IFluidCellInventory; -import com.glodblock.github.common.storage.IFluidCellInventoryHandler; import com.glodblock.github.common.storage.IStorageFluidCell; import com.glodblock.github.common.tabs.FluidCraftingTabs; import com.glodblock.github.loader.IRegister; import com.glodblock.github.util.NameConst; -import appeng.api.AEApi; import appeng.api.config.FuzzyMode; -import appeng.api.storage.IMEInventoryHandler; -import appeng.api.storage.StorageChannel; -import appeng.api.storage.data.IAEFluidStack; import appeng.core.features.AEFeature; -import appeng.items.AEBaseItem; import appeng.items.contents.CellConfig; -import appeng.items.contents.CellUpgrades; import appeng.util.Platform; import cpw.mods.fml.common.registry.GameRegistry; -public class ItemCreativeFluidStorageCell extends AEBaseItem +public class ItemCreativeFluidStorageCell extends ItemBaseInfinityStorageCell implements IStorageFluidCell, IRegister { public ItemCreativeFluidStorageCell() { @@ -41,52 +28,6 @@ public class ItemCreativeFluidStorageCell extends AEBaseItem this.setMaxStackSize(1); } - @Override - public long getBytes(ItemStack cellItem) { - return 0; - } - - @Override - public int getBytesPerType(ItemStack cellItem) { - return 0; - } - - @Override - public boolean isBlackListed(ItemStack cellItem, IAEFluidStack requestedAddition) { - return requestedAddition == null || requestedAddition.getFluid() == null - || FluidCraftAPI.instance().isBlacklistedInStorage(requestedAddition.getFluid().getClass()); - } - - @Override - public boolean storableInStorageCell() { - return false; - } - - @Override - public boolean isStorageCell(ItemStack i) { - return true; - } - - @Override - public double getIdleDrain(ItemStack is) { - return 0; - } - - @Override - public int getTotalTypes(ItemStack cellItem) { - return 0; - } - - @Override - public boolean isEditable(ItemStack is) { - return true; - } - - @Override - public IInventory getUpgradesInventory(ItemStack is) { - return new CellUpgrades(is, 0); - } - @Override public IInventory getConfigInventory(ItemStack is) { return new CellConfig(is); @@ -103,29 +44,8 @@ public class ItemCreativeFluidStorageCell extends AEBaseItem } @Override - public void addCheckedInformation(final ItemStack stack, final EntityPlayer player, final List lines, - final boolean displayMoreInfo) { - final IMEInventoryHandler inventory = AEApi.instance().registries().cell() - .getCellInventory(stack, null, StorageChannel.FLUIDS); - - if (inventory instanceof final IFluidCellInventoryHandler handler) { - final IFluidCellInventory cellInventory = handler.getCellInv(); - - if (GuiScreen.isCtrlKeyDown()) { - if (cellInventory.getContents().size() > 0) { - lines.add(StatCollector.translateToLocal(NameConst.TT_CELL_CONTENTS)); - for (IAEFluidStack fluid : cellInventory.getContents()) { - if (fluid != null) { - lines.add(String.format(" %s", fluid.getFluidStack().getLocalizedName())); - } - } - } else { - lines.add(StatCollector.translateToLocal(NameConst.TT_CELL_EMPTY)); - } - } else { - lines.add(StatCollector.translateToLocal(NameConst.TT_CTRL_FOR_MORE)); - } - } + public boolean isEditable(ItemStack is) { + return true; } @Override diff --git a/src/main/java/com/glodblock/github/common/item/ItemInfinityWaterStorageCell.java b/src/main/java/com/glodblock/github/common/item/ItemInfinityWaterStorageCell.java new file mode 100644 index 00000000..3ae218b1 --- /dev/null +++ b/src/main/java/com/glodblock/github/common/item/ItemInfinityWaterStorageCell.java @@ -0,0 +1,68 @@ +package com.glodblock.github.common.item; + +import static com.glodblock.github.util.Util.FluidUtil.water_bucket; + +import java.util.EnumSet; + +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; + +import com.glodblock.github.FluidCraft; +import com.glodblock.github.common.storage.IStorageFluidCell; +import com.glodblock.github.common.tabs.FluidCraftingTabs; +import com.glodblock.github.loader.IRegister; +import com.glodblock.github.util.NameConst; + +import appeng.api.config.FuzzyMode; +import appeng.core.features.AEFeature; +import appeng.tile.inventory.AppEngInternalInventory; +import cpw.mods.fml.common.registry.GameRegistry; + +public class ItemInfinityWaterStorageCell extends ItemBaseInfinityStorageCell + implements IStorageFluidCell, IRegister { + + @Override + public IInventory getConfigInventory(ItemStack is) { + return new InfinityConfig(water_bucket); + } + + public static class InfinityConfig extends AppEngInternalInventory { + + public InfinityConfig(final ItemStack is) { + super(null, 1); + this.setInventorySlotContents(0, is); + } + + @Override + public void markDirty() {} + } + + public ItemInfinityWaterStorageCell() { + super(); + setUnlocalizedName(NameConst.ITEM_INFINITY_WATER_FLUID_STORAGE); + setTextureName(FluidCraft.resource(NameConst.ITEM_INFINITY_FLUID_STORAGE).toString()); + this.setFeature(EnumSet.of(AEFeature.StorageCells)); + this.setMaxStackSize(1); + } + + @Override + public ItemInfinityWaterStorageCell register() { + GameRegistry.registerItem(this, NameConst.ITEM_INFINITY_WATER_FLUID_STORAGE, FluidCraft.MODID); + setCreativeTab(FluidCraftingTabs.INSTANCE); + return this; + } + + @Override + public boolean isEditable(ItemStack is) { + return false; + } + + @Override + public FuzzyMode getFuzzyMode(ItemStack is) { + return FuzzyMode.IGNORE_ALL; + } + + @Override + public void setFuzzyMode(ItemStack is, FuzzyMode fzMode) {} + +} diff --git a/src/main/java/com/glodblock/github/common/storage/CreativeFluidCellInventory.java b/src/main/java/com/glodblock/github/common/storage/CreativeFluidCellInventory.java index a41001d8..fe9fceef 100644 --- a/src/main/java/com/glodblock/github/common/storage/CreativeFluidCellInventory.java +++ b/src/main/java/com/glodblock/github/common/storage/CreativeFluidCellInventory.java @@ -61,7 +61,7 @@ public class CreativeFluidCellInventory extends FluidCellInventory { if (fs == null) continue; IAEFluidStack iaeFluidStack = Util.FluidUtil.createAEFluidStack(fs); if (this.cellFluids.findPrecise(iaeFluidStack) == null) { - iaeFluidStack.setStackSize(Integer.MAX_VALUE); + iaeFluidStack.setStackSize(Integer.MAX_VALUE * 1_000_000L); this.cellFluids.add(iaeFluidStack); } } diff --git a/src/main/java/com/glodblock/github/common/storage/FluidCellInventory.java b/src/main/java/com/glodblock/github/common/storage/FluidCellInventory.java index 100a753a..bf6396af 100644 --- a/src/main/java/com/glodblock/github/common/storage/FluidCellInventory.java +++ b/src/main/java/com/glodblock/github/common/storage/FluidCellInventory.java @@ -12,7 +12,7 @@ import net.minecraft.nbt.NBTBase; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.fluids.FluidStack; -import com.glodblock.github.common.item.ItemCreativeFluidStorageCell; +import com.glodblock.github.common.item.ItemBaseInfinityStorageCell; import com.glodblock.github.crossmod.extracells.storage.ProxyFluidCellInventory; import com.glodblock.github.crossmod.extracells.storage.ProxyFluidStorageCell; @@ -82,7 +82,7 @@ public class FluidCellInventory implements IFluidCellInventory { public static IMEInventoryHandler getCell(final ItemStack o, final ISaveProvider container2) { try { - if (o.getItem() instanceof ItemCreativeFluidStorageCell) { + if (o.getItem() instanceof ItemBaseInfinityStorageCell) { return new FluidCellInventoryHandler(new CreativeFluidCellInventory(o, container2)); } else if (o.getItem() instanceof ProxyFluidStorageCell) { return new FluidCellInventoryHandler(new ProxyFluidCellInventory(o, container2)); diff --git a/src/main/java/com/glodblock/github/loader/ItemAndBlockHolder.java b/src/main/java/com/glodblock/github/loader/ItemAndBlockHolder.java index c9f230c2..0006e5e9 100644 --- a/src/main/java/com/glodblock/github/loader/ItemAndBlockHolder.java +++ b/src/main/java/com/glodblock/github/loader/ItemAndBlockHolder.java @@ -29,6 +29,7 @@ import com.glodblock.github.common.item.ItemFluidLevelEmitter; import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.common.item.ItemFluidStorageHousing; import com.glodblock.github.common.item.ItemFluidStorageMonitor; +import com.glodblock.github.common.item.ItemInfinityWaterStorageCell; import com.glodblock.github.common.item.ItemMultiFluidStorageCell; import com.glodblock.github.common.item.ItemPartFluidInterface; import com.glodblock.github.common.item.ItemPartFluidP2PInterface; @@ -134,6 +135,7 @@ public class ItemAndBlockHolder { 1, 5).register(); public static ItemCreativeFluidStorageCell CREATIVE_CELL = new ItemCreativeFluidStorageCell().register(); + public static ItemInfinityWaterStorageCell INFINITY_WATER_CELL = new ItemInfinityWaterStorageCell().register(); public static ItemBasicFluidStoragePart CELL_PART = new ItemBasicFluidStoragePart().register(); public static ItemFluidStorageHousing CELL_HOUSING = new ItemFluidStorageHousing().register(); diff --git a/src/main/java/com/glodblock/github/loader/RecipeLoader.java b/src/main/java/com/glodblock/github/loader/RecipeLoader.java index 81e61489..04c4a28b 100644 --- a/src/main/java/com/glodblock/github/loader/RecipeLoader.java +++ b/src/main/java/com/glodblock/github/loader/RecipeLoader.java @@ -37,6 +37,7 @@ import static com.glodblock.github.loader.ItemAndBlockHolder.FLUID_STORAGE_MONIT import static com.glodblock.github.loader.ItemAndBlockHolder.FLUID_TERM; import static com.glodblock.github.loader.ItemAndBlockHolder.FLUID_TERMINAL; import static com.glodblock.github.loader.ItemAndBlockHolder.FLUID_TERMINAL_EX; +import static com.glodblock.github.loader.ItemAndBlockHolder.INFINITY_WATER_CELL; import static com.glodblock.github.loader.ItemAndBlockHolder.INTERFACE; import static com.glodblock.github.loader.ItemAndBlockHolder.LARGE_BUFFER; import static com.glodblock.github.loader.ItemAndBlockHolder.LEVEL_MAINTAINER; @@ -167,6 +168,15 @@ public class RecipeLoader implements Runnable { .findItemStack("appliedenergistics2", "tile.BlockQuantumRing", 1); public static final ItemStack AE2_DENSE_ENERGY_CELL = GameRegistry .findItemStack("appliedenergistics2", "tile.BlockDenseEnergyCell", 1); + public static final ItemStack AE2_ANNIHILATION_CORE = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), + 1, + 44); + + public static final ItemStack AE2_FORMATION_CORE = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), + 1, + 43); public static final ItemStack THE_WIRELESS_TERM = GameRegistry .findItemStack("thaumicenergistics", "wireless.essentia.terminal", 1); private static final ItemStack WCT_WIRELESS_TERM = GameRegistry @@ -188,6 +198,7 @@ public class RecipeLoader implements Runnable { 1, 47); public static final ItemStack NETHER_STAR = new ItemStack(Items.nether_star, 1); + public static final ItemStack WATER_BUCKET = new ItemStack(Items.water_bucket, 1); @Override public void run() { @@ -689,6 +700,27 @@ public class RecipeLoader implements Runnable { AE2_WIRELESS_RECEIVER)); } + public static void addInfiniteWaterCell() { + GameRegistry.addRecipe( + new ShapedOreRecipe( + INFINITY_WATER_CELL, + "BKB", + "ACF", + "BMB", + 'B', + WATER_BUCKET, + 'K', + CellType.Cell64kPart.stack(1), + 'A', + AE2_ANNIHILATION_CORE, + 'C', + CELL_HOUSING.stack(1, 1), + 'F', + AE2_FORMATION_CORE, + 'M', + AE2_MATTER_CONDENSER)); + } + public static void runTerminalRecipe() { ItemStack[] fc2Terms = { WIRELESS_FLUID_TERM.stack(), WIRELESS_PATTERN_TERM.stack(), WIRELESS_INTERFACE_TERM.stack(), WIRELESS_LEVEL_TERM.stack() }; diff --git a/src/main/java/com/glodblock/github/util/NameConst.java b/src/main/java/com/glodblock/github/util/NameConst.java index aa03b39a..b148329d 100644 --- a/src/main/java/com/glodblock/github/util/NameConst.java +++ b/src/main/java/com/glodblock/github/util/NameConst.java @@ -40,6 +40,8 @@ public class NameConst { public static final String ITEM_MULTI_FLUID_STORAGE = "multi_fluid_storage"; public static final String ITEM_QUANTUM_FLUID_STORAGE = ITEM_FLUID_STORAGE + ".quantum"; public static final String ITEM_SINGULARITY_FLUID_STORAGE = ITEM_FLUID_STORAGE + ".singularity"; + public static final String ITEM_INFINITY_FLUID_STORAGE = ITEM_FLUID_STORAGE + ".infinity"; + public static final String ITEM_INFINITY_WATER_FLUID_STORAGE = ITEM_INFINITY_FLUID_STORAGE + ".water"; public static final String ITEM_CREATIVE_FLUID_STORAGE = "creative_" + ITEM_FLUID_STORAGE; public static final String ITEM_FLUID_PORTABLE_CELL = "portable_fluid_cell"; public static final String ITEM_WIRELESS_FLUID_TERMINAL = "wireless_fluid_terminal"; @@ -95,6 +97,7 @@ public class NameConst { public static final String TT_ULTRA_TERMINAL = TT_KEY + "ultra_terminal"; public static final String TT_ULTRA_TERMINAL_TIPS = TT_ULTRA_TERMINAL + ".tips"; public static final String TT_ULTRA_TERMINAL_TIPS_DESC = TT_ULTRA_TERMINAL_TIPS + ".desc"; + public static final String TT_INFINITY_FLUID_STORAGE_TIPS = TT_KEY + "infinity_fluid"; public static final String TT_ENERGY_CARD = TT_KEY + "energy_card"; public static final String TT_ENERGY_CARD_DESC = TT_ENERGY_CARD + ".desc"; public static final String TT_QUANTUM_BRIDGE_CARD = TT_KEY + "quantum_bridge_card"; diff --git a/src/main/java/com/glodblock/github/util/Util.java b/src/main/java/com/glodblock/github/util/Util.java index 2476096d..b4d0f701 100644 --- a/src/main/java/com/glodblock/github/util/Util.java +++ b/src/main/java/com/glodblock/github/util/Util.java @@ -11,6 +11,7 @@ import java.util.Map; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.init.Items; import net.minecraft.inventory.IInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -431,6 +432,8 @@ public final class Util { public static class FluidUtil { + public static final ItemStack water_bucket = new ItemStack(Items.water_bucket, 1); + public static void fluidTankInfoWriteToNBT(FluidTankInfo[] infos, NBTTagCompound data) { int i = 0; for (FluidTankInfo info : infos) { diff --git a/src/main/resources/assets/ae2fc/lang/en_US.lang b/src/main/resources/assets/ae2fc/lang/en_US.lang index 8d2ebf2a..f6464f19 100644 --- a/src/main/resources/assets/ae2fc/lang/en_US.lang +++ b/src/main/resources/assets/ae2fc/lang/en_US.lang @@ -46,6 +46,7 @@ item.multi_fluid_storage.4096.name=%s4096k%s ME Multi-Fluid Storage Cell item.multi_fluid_storage.16384.name=%s16384k%s ME Multi-Fluid Storage Cell item.fluid_storage.quantum.name=ME Fluid Quantum Storage Cell item.fluid_storage.singularity.name=ME Fluid Digital Singularity Storage Cell +item.fluid_storage.infinity.water.name=ME Fluid Infinity Water Storage Cell item.fluid_part.0.name=%s1k%s ME Fluid Storage Component item.fluid_part.1.name=%s4k%s ME Fluid Storage Component item.fluid_part.2.name=%s16k%s ME Fluid Storage Component @@ -111,6 +112,7 @@ ae2fc.tooltip.ultra_terminal.WIRELESS_FLUID_PATTERN_TERMINAL_EX=Mode: Processing ae2fc.tooltip.ultra_terminal=Right click + sneaking to switch mode. ae2fc.tooltip.ultra_terminal.tips=ToolTips: ae2fc.tooltip.ultra_terminal.tips.desc=1.You can put it to baubles slot and use hotkey to open.\n2.Interface mode hold §3Shift§7 toggle interface renamer button.\n3.When you are in the crafting plan screen.\nHold §3Shift§7 click cancel button will automatically add missing items to NEI bookmark. +ae2fc.tooltip.infinity_fluid=§aInfinity§r ae2fc.tooltip.quantum_bridge_card.desc=Allows wireless terminals to connect to a quantum bridge, allowing for unlimited range ae2fc.tooltip.energy_card.desc=Infinity Energy for the Wireless Terminal diff --git a/src/main/resources/assets/ae2fc/lang/ru_RU.lang b/src/main/resources/assets/ae2fc/lang/ru_RU.lang index 55297b05..28611ff3 100644 --- a/src/main/resources/assets/ae2fc/lang/ru_RU.lang +++ b/src/main/resources/assets/ae2fc/lang/ru_RU.lang @@ -43,6 +43,7 @@ item.multi_fluid_storage.4096.name=%s4096К%s МЭ мульти-жидкостн item.multi_fluid_storage.16384.name=%s16384К%s МЭ мульти-жидкостная ячейка хранения item.fluid_storage.quantum.name=МЭ жидкостная квантовая ячейка хранения item.fluid_storage.singularity.name=МЭ жидкостная цифровая сингулярность +item.fluid_storage.infinity.water.name=ME жидкостная ячейка хранения бесконечной воды item.fluid_part.0.name=%s1К%s МЭ жидкостный компонент хранения item.fluid_part.1.name=%s4К%s МЭ жидкостный компонент хранения item.fluid_part.2.name=%s16К%s МЭ жидкостный компонент хранения @@ -105,6 +106,7 @@ ae2fc.tooltip.ultra_terminal.WIRELESS_FLUID_PATTERN_TERMINAL_EX=Режим: Те ae2fc.tooltip.ultra_terminal=ПКМ+Shift, чтобы изменить режим. ae2fc.tooltip.ultra_terminal.tips=Подсказки: ae2fc.tooltip.ultra_terminal.tips.desc=1. Вы можете поместить его в слот Baubles и открыть с помощью привязанной клавиши.\n2. Режим интерфейсов. Удерживайте §3Shift§7 для переключения между кнопками подсветки и переименовывания интерфейсов.\n3. Экран "План создания".\nУдерживая §3Shift§7 нажмите кнопку "Отмена", чтобы автоматически добавить все недостающие ингредиенты в панель закладок NEI. +ae2fc.tooltip.infinity_fluid=§aБесконечная/ый§r ae2fc.tooltip.quantum_bridge_card.desc=Позволяет беспроводным терминалам подключаться к квантовому мосту, обеспечивая неограниченный радиус действия ae2fc.tooltip.energy_card.desc=Бесконечная энергия для беспроводного терминала diff --git a/src/main/resources/assets/ae2fc/textures/items/fluid_storage.infinity.png b/src/main/resources/assets/ae2fc/textures/items/fluid_storage.infinity.png new file mode 100644 index 0000000000000000000000000000000000000000..654f88a43b3781e1fada2f9b3312f1c659d76696 GIT binary patch literal 636 zcmV-?0)zdDP)P`SxLm5H5-184NPkOXePf-2x3D6fB8gI| zL_xX$Ou?X5mEhs007(>Fzj+IR_d`fNO+s6&MQSC5U-XlwIM^toki;lp1C&X(dajO0((PyG5caV=4%yydh z%u`)$9hr8RXvR51xi#WC%ON^3U%}kvIhu9NlIQqE*_p(>;v&)CFC%dr>!eG~=SWx* zB;b8DwyganMsn}n%{tnf$R7;z|0EE82;VX73*n5X9ZwEL5dWg)mX6j literal 0 HcmV?d00001