From d80127933a21351e2195a2dec968553443212c53 Mon Sep 17 00:00:00 2001 From: Quetz4l Date: Tue, 18 Jun 2024 12:38:37 +0300 Subject: [PATCH] add energy and quantum bridge cards (#210) Co-authored-by: Zereff06 --- .../java/com/glodblock/github/FluidCraft.java | 3 + .../common/item/ItemBaseWirelessTerminal.java | 9 ++- .../github/common/item/ItemEnergyCard.java | 45 +++++++++++ .../common/item/ItemQuantumBridgeCard.java | 46 ++++++++++++ .../github/loader/ItemAndBlockHolder.java | 5 ++ .../glodblock/github/loader/RecipeLoader.java | 67 +++++++++++++++-- .../recipe/WirelessTerminalEnergyRecipe.java | 69 +++++++++++++++++ .../WirelessTerminalQuantumBridgeRecipe.java | 70 ++++++++++++++++++ .../github/util/ModAndClassUtil.java | 3 + .../com/glodblock/github/util/NameConst.java | 6 ++ .../java/com/glodblock/github/util/Util.java | 18 ++++- .../resources/assets/ae2fc/lang/en_US.lang | 5 ++ .../resources/assets/ae2fc/lang/ru_RU.lang | 7 +- .../ae2fc/textures/items/energy_card.png | Bin 0 -> 419 bytes .../textures/items/quantum_bridge_card.png | Bin 0 -> 487 bytes 15 files changed, 343 insertions(+), 10 deletions(-) create mode 100644 src/main/java/com/glodblock/github/common/item/ItemEnergyCard.java create mode 100644 src/main/java/com/glodblock/github/common/item/ItemQuantumBridgeCard.java create mode 100644 src/main/java/com/glodblock/github/loader/recipe/WirelessTerminalEnergyRecipe.java create mode 100644 src/main/java/com/glodblock/github/loader/recipe/WirelessTerminalQuantumBridgeRecipe.java create mode 100644 src/main/resources/assets/ae2fc/textures/items/energy_card.png create mode 100644 src/main/resources/assets/ae2fc/textures/items/quantum_bridge_card.png diff --git a/src/main/java/com/glodblock/github/FluidCraft.java b/src/main/java/com/glodblock/github/FluidCraft.java index 5cbaff6b..5c157012 100644 --- a/src/main/java/com/glodblock/github/FluidCraft.java +++ b/src/main/java/com/glodblock/github/FluidCraft.java @@ -76,6 +76,9 @@ public class FluidCraft { if (!Config.removeRecipe) { RecipeLoader.INSTANCE.run(); } + if (!ModAndClassUtil.NEW_HORIZONS_CORE_MOD) { + RecipeLoader.addTerminalCards(); + } RecipeLoader.runTerminalRecipe(); if (ModAndClassUtil.isV2) { diff --git a/src/main/java/com/glodblock/github/common/item/ItemBaseWirelessTerminal.java b/src/main/java/com/glodblock/github/common/item/ItemBaseWirelessTerminal.java index 749264a4..db3284dd 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemBaseWirelessTerminal.java +++ b/src/main/java/com/glodblock/github/common/item/ItemBaseWirelessTerminal.java @@ -1,6 +1,8 @@ package com.glodblock.github.common.item; +import static com.glodblock.github.loader.recipe.WirelessTerminalEnergyRecipe.getEnergyCard; import static com.glodblock.github.loader.recipe.WirelessTerminalRecipe.getInfinityBoosterCard; +import static com.glodblock.github.util.Util.DimensionalCoordSide.hasEnergyCard; import static com.glodblock.github.util.Util.hasInfinityBoosterCard; import java.util.List; @@ -33,6 +35,7 @@ public class ItemBaseWirelessTerminal extends ToolWirelessTerminal implements II protected GuiType type; public static String infinityBoosterCard = "infinityBoosterCard"; + public static String infinityEnergyCard = "InfinityEnergyCard"; public ItemBaseWirelessTerminal(GuiType t) { super(); @@ -41,7 +44,8 @@ public class ItemBaseWirelessTerminal extends ToolWirelessTerminal implements II @Override public ItemStack onItemRightClick(final ItemStack item, final World w, final EntityPlayer player) { - if (player.isSneaking()) return removeInfinityBoosterCard(player, item); + if (player.isSneaking()) return removeInfinityBoosterCard(player, item); // todo: doesn't work in universal + // terminal if (ForgeEventFactory.onItemUseStart(player, item, 1) > 0) { if (Platform.isClient()) { return item; @@ -98,6 +102,9 @@ public class ItemBaseWirelessTerminal extends ToolWirelessTerminal implements II if (hasInfinityBoosterCard(stack)) { lines.add(" " + EnumChatFormatting.GOLD + getInfinityBoosterCard().getDisplayName()); } + if (hasEnergyCard(stack)) { + lines.add(" " + EnumChatFormatting.GOLD + getEnergyCard().getDisplayName()); + } } else { lines.add(NameConst.i18n(NameConst.TT_CTRL_FOR_MORE)); } diff --git a/src/main/java/com/glodblock/github/common/item/ItemEnergyCard.java b/src/main/java/com/glodblock/github/common/item/ItemEnergyCard.java new file mode 100644 index 00000000..b78c8b9e --- /dev/null +++ b/src/main/java/com/glodblock/github/common/item/ItemEnergyCard.java @@ -0,0 +1,45 @@ +package com.glodblock.github.common.item; + +import static net.minecraft.client.gui.GuiScreen.isShiftKeyDown; + +import java.util.List; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; + +import com.glodblock.github.FluidCraft; +import com.glodblock.github.common.tabs.FluidCraftingTabs; +import com.glodblock.github.util.NameConst; +import com.glodblock.github.util.RenderUtil; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class ItemEnergyCard extends FCBaseItem { + + public ItemEnergyCard() { + super(); + this.setMaxStackSize(64); + this.setUnlocalizedName(NameConst.ITEM_ENERGY_CARD); + this.setTextureName(FluidCraft.resource(NameConst.ITEM_ENERGY_CARD).toString()); + } + + @Override + public ItemEnergyCard register() { + GameRegistry.registerItem(this, NameConst.ITEM_ENERGY_CARD, FluidCraft.MODID); + setCreativeTab(FluidCraftingTabs.INSTANCE); + return this; + } + + @Override + @SuppressWarnings("unchecked") + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack stack, EntityPlayer player, List toolTip, boolean flag) { + if (isShiftKeyDown()) { + toolTip.addAll(RenderUtil.listFormattedStringToWidth(NameConst.i18n(NameConst.TT_ENERGY_CARD_DESC))); + } else { + toolTip.add(NameConst.i18n(NameConst.TT_SHIFT_FOR_MORE)); + } + } +} diff --git a/src/main/java/com/glodblock/github/common/item/ItemQuantumBridgeCard.java b/src/main/java/com/glodblock/github/common/item/ItemQuantumBridgeCard.java new file mode 100644 index 00000000..0923402d --- /dev/null +++ b/src/main/java/com/glodblock/github/common/item/ItemQuantumBridgeCard.java @@ -0,0 +1,46 @@ +package com.glodblock.github.common.item; + +import static net.minecraft.client.gui.GuiScreen.isShiftKeyDown; + +import java.util.List; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; + +import com.glodblock.github.FluidCraft; +import com.glodblock.github.common.tabs.FluidCraftingTabs; +import com.glodblock.github.util.NameConst; +import com.glodblock.github.util.RenderUtil; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class ItemQuantumBridgeCard extends FCBaseItem { + + public ItemQuantumBridgeCard() { + super(); + this.setMaxStackSize(64); + this.setUnlocalizedName(NameConst.ITEM_QUANTUM_BRIDGE_CARD); + this.setTextureName(FluidCraft.resource(NameConst.ITEM_QUANTUM_BRIDGE_CARD).toString()); + } + + @Override + public ItemQuantumBridgeCard register() { + GameRegistry.registerItem(this, NameConst.ITEM_QUANTUM_BRIDGE_CARD, FluidCraft.MODID); + setCreativeTab(FluidCraftingTabs.INSTANCE); + return this; + } + + @Override + @SuppressWarnings("unchecked") + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack stack, EntityPlayer player, List toolTip, boolean flag) { + if (isShiftKeyDown()) { + toolTip.addAll( + RenderUtil.listFormattedStringToWidth(NameConst.i18n(NameConst.TT_QUANTUM_BRIDGE_CARD_DESC))); + } else { + toolTip.add(NameConst.i18n(NameConst.TT_SHIFT_FOR_MORE)); + } + } +} diff --git a/src/main/java/com/glodblock/github/loader/ItemAndBlockHolder.java b/src/main/java/com/glodblock/github/loader/ItemAndBlockHolder.java index 466bc82f..c9f230c2 100644 --- a/src/main/java/com/glodblock/github/loader/ItemAndBlockHolder.java +++ b/src/main/java/com/glodblock/github/loader/ItemAndBlockHolder.java @@ -18,6 +18,7 @@ import com.glodblock.github.common.block.BlockWalrus; import com.glodblock.github.common.item.ItemBasicFluidStorageCell; import com.glodblock.github.common.item.ItemBasicFluidStoragePart; import com.glodblock.github.common.item.ItemCreativeFluidStorageCell; +import com.glodblock.github.common.item.ItemEnergyCard; import com.glodblock.github.common.item.ItemFluidConversionMonitor; import com.glodblock.github.common.item.ItemFluidDrop; import com.glodblock.github.common.item.ItemFluidEncodedPattern; @@ -37,6 +38,7 @@ import com.glodblock.github.common.item.ItemPartFluidStorageBus; import com.glodblock.github.common.item.ItemPartFluidTerminal; import com.glodblock.github.common.item.ItemPartLevelTerminal; import com.glodblock.github.common.item.ItemPortableFluidCell; +import com.glodblock.github.common.item.ItemQuantumBridgeCard; import com.glodblock.github.common.item.ItemWirelessFluidTerminal; import com.glodblock.github.common.item.ItemWirelessInterfaceTerminal; import com.glodblock.github.common.item.ItemWirelessLevelTerminal; @@ -135,6 +137,9 @@ public class ItemAndBlockHolder { public static ItemBasicFluidStoragePart CELL_PART = new ItemBasicFluidStoragePart().register(); public static ItemFluidStorageHousing CELL_HOUSING = new ItemFluidStorageHousing().register(); + public static ItemEnergyCard ENERGY_CARD = new ItemEnergyCard().register(); + public static ItemQuantumBridgeCard QUANTUM_BRIDGE_CARD = new ItemQuantumBridgeCard().register(); + public static void loadSetting() { if (!Config.fluidCells) return; CellType.Cell1kPart.setItemInstance(CELL_PART); diff --git a/src/main/java/com/glodblock/github/loader/RecipeLoader.java b/src/main/java/com/glodblock/github/loader/RecipeLoader.java index 878a3bf8..81e61489 100644 --- a/src/main/java/com/glodblock/github/loader/RecipeLoader.java +++ b/src/main/java/com/glodblock/github/loader/RecipeLoader.java @@ -23,6 +23,7 @@ import static com.glodblock.github.loader.ItemAndBlockHolder.CERTUS_QUARTZ_TANK; import static com.glodblock.github.loader.ItemAndBlockHolder.DECODER; import static com.glodblock.github.loader.ItemAndBlockHolder.DISCRETIZER; import static com.glodblock.github.loader.ItemAndBlockHolder.ENCODER; +import static com.glodblock.github.loader.ItemAndBlockHolder.ENERGY_CARD; import static com.glodblock.github.loader.ItemAndBlockHolder.FLUID_AUTO_FILLER; import static com.glodblock.github.loader.ItemAndBlockHolder.FLUID_BUFFER; import static com.glodblock.github.loader.ItemAndBlockHolder.FLUID_CONVERSION_MONITOR; @@ -43,6 +44,7 @@ import static com.glodblock.github.loader.ItemAndBlockHolder.LEVEL_TERMINAL; import static com.glodblock.github.loader.ItemAndBlockHolder.OC_EDITOR; import static com.glodblock.github.loader.ItemAndBlockHolder.PATTERN; import static com.glodblock.github.loader.ItemAndBlockHolder.PORTABLE_FLUID_CELL; +import static com.glodblock.github.loader.ItemAndBlockHolder.QUANTUM_BRIDGE_CARD; import static com.glodblock.github.loader.ItemAndBlockHolder.QUANTUM_CELL; import static com.glodblock.github.loader.ItemAndBlockHolder.SINGULARITY_CELL; import static com.glodblock.github.loader.ItemAndBlockHolder.WALRUS; @@ -67,6 +69,8 @@ import net.minecraftforge.oredict.ShapelessOreRecipe; import com.glodblock.github.common.Config; import com.glodblock.github.common.item.FCBaseItemCell; import com.glodblock.github.common.storage.CellType; +import com.glodblock.github.loader.recipe.WirelessTerminalEnergyRecipe; +import com.glodblock.github.loader.recipe.WirelessTerminalQuantumBridgeRecipe; import com.glodblock.github.loader.recipe.WirelessTerminalRecipe; import com.glodblock.github.util.ModAndClassUtil; @@ -169,6 +173,21 @@ public class RecipeLoader implements Runnable { .findItemStack("ae2wct", "wirelessCraftingTerminal", 1); public static final ItemStack BUCKET = new ItemStack(Items.bucket, 1); public static final ItemStack IRON_BAR = new ItemStack(Blocks.iron_bars, 1); + public static final ItemStack AE2_ADVANCED_CARD = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), + 1, + 28); + public static final ItemStack AE2_WIRELESS_RECEIVER = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), + 1, + 41); + public static final ItemStack AE2_BLOCK_CHARGER = GameRegistry + .findItemStack("appliedenergistics2", "tile.BlockCharger", 1); + public static final ItemStack AE2_SINGULARITY = new ItemStack( + GameRegistry.findItem("appliedenergistics2", "item.ItemMultiMaterial"), + 1, + 47); + public static final ItemStack NETHER_STAR = new ItemStack(Items.nether_star, 1); @Override public void run() { @@ -639,13 +658,49 @@ public class RecipeLoader implements Runnable { } } + public static void addTerminalCards() { + GameRegistry.addRecipe( + new ShapedOreRecipe( + ENERGY_CARD.stack(), + "DSD", + "HAH", + "DSD", + 'H', + AE2_BLOCK_CHARGER, + 'D', + AE2_DENSE_ENERGY_CELL, + 'A', + AE2_ADVANCED_CARD, + 'S', + AE2_SINGULARITY)); + GameRegistry.addRecipe( + new ShapedOreRecipe( + QUANTUM_BRIDGE_CARD.stack(), + "QSQ", + "WAW", + "QSQ", + 'Q', + AE2_QUANTUM_RING, + 'A', + AE2_ADVANCED_CARD, + 'S', + NETHER_STAR, + 'W', + AE2_WIRELESS_RECEIVER)); + } + public static void runTerminalRecipe() { - if (ModAndClassUtil.WCT) { - GameRegistry.addRecipe(new WirelessTerminalRecipe(WIRELESS_PATTERN_TERM.stack())); - GameRegistry.addRecipe(new WirelessTerminalRecipe(WIRELESS_FLUID_TERM.stack())); - GameRegistry.addRecipe(new WirelessTerminalRecipe(WIRELESS_ULTRA_TERM.stack())); - GameRegistry.addRecipe(new WirelessTerminalRecipe(WIRELESS_INTERFACE_TERM.stack())); - GameRegistry.addRecipe(new WirelessTerminalRecipe(WIRELESS_LEVEL_TERM.stack())); + ItemStack[] fc2Terms = { WIRELESS_FLUID_TERM.stack(), WIRELESS_PATTERN_TERM.stack(), + WIRELESS_INTERFACE_TERM.stack(), WIRELESS_LEVEL_TERM.stack() }; + + for (ItemStack fc2term : fc2Terms) { + if (fc2term != null) { + if (ModAndClassUtil.WCT) { // deprecated, adding Infinity Booster Card from WCT mod + GameRegistry.addRecipe(new WirelessTerminalRecipe(fc2term)); + } + GameRegistry.addRecipe(new WirelessTerminalQuantumBridgeRecipe(fc2term)); + GameRegistry.addRecipe(new WirelessTerminalEnergyRecipe(fc2term)); + } } ItemStack[] term = { AE2_WIRELESS_TERMINAL, WIRELESS_FLUID_TERM.stack(), WIRELESS_PATTERN_TERM.stack(), diff --git a/src/main/java/com/glodblock/github/loader/recipe/WirelessTerminalEnergyRecipe.java b/src/main/java/com/glodblock/github/loader/recipe/WirelessTerminalEnergyRecipe.java new file mode 100644 index 00000000..431bb694 --- /dev/null +++ b/src/main/java/com/glodblock/github/loader/recipe/WirelessTerminalEnergyRecipe.java @@ -0,0 +1,69 @@ +package com.glodblock.github.loader.recipe; + +import static com.glodblock.github.loader.ItemAndBlockHolder.ENERGY_CARD; +import static com.glodblock.github.util.Util.DimensionalCoordSide.hasEnergyCard; + +import java.util.Arrays; +import java.util.Objects; + +import net.minecraft.inventory.InventoryCrafting; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.ShapelessRecipes; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +import com.glodblock.github.common.item.ItemBaseWirelessTerminal; + +import appeng.util.Platform; + +public class WirelessTerminalEnergyRecipe extends ShapelessRecipes { + + private final ItemStack installedTerm; + public static ItemStack energyCard = ENERGY_CARD.stack(); + + public WirelessTerminalEnergyRecipe(ItemStack term) { + super(term, Arrays.asList(term, getEnergyCard())); + this.installedTerm = installEnergyCard(term); + } + + private boolean isEnergyCard(ItemStack is) { + if (is == null || is.getItem() == null) return false; + return (Objects.equals(energyCard.getItem(), is.getItem())); + } + + public static ItemStack getEnergyCard() { + return energyCard; + } + + @Override + public boolean matches(InventoryCrafting inv, World w) { + ItemStack term = inv.getStackInSlot(0); + ItemStack card = inv.getStackInSlot(1); + return term != null && term.getItem() instanceof ItemBaseWirelessTerminal + && !hasEnergyCard(term) + && isEnergyCard(card); + } + + @Override + public ItemStack getCraftingResult(InventoryCrafting inv) { + return installEnergyCard(inv.getStackInSlot(0)); + } + + @Override + public int getRecipeSize() { + return 2; + } + + private ItemStack installEnergyCard(ItemStack is) { + is = is.copy(); + NBTTagCompound data = Platform.openNbtData(is); + data.setBoolean(ItemBaseWirelessTerminal.infinityEnergyCard, true); + is.setTagCompound(data); + return is; + } + + @Override + public ItemStack getRecipeOutput() { + return installedTerm; + } +} diff --git a/src/main/java/com/glodblock/github/loader/recipe/WirelessTerminalQuantumBridgeRecipe.java b/src/main/java/com/glodblock/github/loader/recipe/WirelessTerminalQuantumBridgeRecipe.java new file mode 100644 index 00000000..c9c5e4c9 --- /dev/null +++ b/src/main/java/com/glodblock/github/loader/recipe/WirelessTerminalQuantumBridgeRecipe.java @@ -0,0 +1,70 @@ +package com.glodblock.github.loader.recipe; + +import static com.glodblock.github.loader.ItemAndBlockHolder.QUANTUM_BRIDGE_CARD; +import static com.glodblock.github.util.Util.hasInfinityBoosterCard; + +import java.util.Arrays; +import java.util.Objects; + +import net.minecraft.inventory.InventoryCrafting; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.ShapelessRecipes; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +import com.glodblock.github.common.item.ItemBaseWirelessTerminal; + +import appeng.util.Platform; + +public class WirelessTerminalQuantumBridgeRecipe extends ShapelessRecipes { + + private final ItemStack installedTerm; + public static ItemStack quantumBridgeCard = QUANTUM_BRIDGE_CARD.stack(); + + public boolean isQuantumBridgeCard(ItemStack is) { + if (is == null || is.getItem() == null) return false; + return Objects.equals(quantumBridgeCard.getItem(), is.getItem()); + } + + public WirelessTerminalQuantumBridgeRecipe(ItemStack term) { + super(term, Arrays.asList(term, getQuantumBridgeCard())); + this.installedTerm = installQuantumBridgeCard(term); + } + + @Override + public boolean matches(InventoryCrafting inv, World w) { + ItemStack term = inv.getStackInSlot(0); + ItemStack infinityBoosterCard = inv.getStackInSlot(1); + return term != null && term.getItem() instanceof ItemBaseWirelessTerminal + && !hasInfinityBoosterCard(term) + && isQuantumBridgeCard(infinityBoosterCard); + } + + public static ItemStack getQuantumBridgeCard() { + return quantumBridgeCard; + } + + @Override + public ItemStack getCraftingResult(InventoryCrafting inv) { + return installQuantumBridgeCard(inv.getStackInSlot(0)); + } + + @Override + public int getRecipeSize() { + return 2; + } + + private ItemStack installQuantumBridgeCard(ItemStack is) { + is = is.copy(); + NBTTagCompound data = Platform.openNbtData(is); + data.setBoolean(ItemBaseWirelessTerminal.infinityBoosterCard, true); + is.setTagCompound(data); + return is; + } + + @Override + public ItemStack getRecipeOutput() { + return installedTerm; + } + +} diff --git a/src/main/java/com/glodblock/github/util/ModAndClassUtil.java b/src/main/java/com/glodblock/github/util/ModAndClassUtil.java index ed1b18b2..8e4d3e74 100644 --- a/src/main/java/com/glodblock/github/util/ModAndClassUtil.java +++ b/src/main/java/com/glodblock/github/util/ModAndClassUtil.java @@ -9,6 +9,7 @@ import appeng.core.AEConfig; import appeng.core.localization.ButtonToolTips; import appeng.core.localization.GuiText; import cpw.mods.fml.common.Loader; +import gregtech.api.enums.Mods; public final class ModAndClassUtil { @@ -34,6 +35,7 @@ public final class ModAndClassUtil { public static boolean WAILA = false; public static boolean AVARITIA = false; public static boolean HODGEPODGE = false; + public static boolean NEW_HORIZONS_CORE_MOD = false; public static boolean isV2; public static boolean isTypeFilter; @@ -148,5 +150,6 @@ public final class ModAndClassUtil { if (Loader.isModLoaded("Waila")) WAILA = true; if (Loader.isModLoaded("Avaritia")) AVARITIA = true; if (Loader.isModLoaded("hodgepodge")) HODGEPODGE = true; + if (Loader.isModLoaded(Mods.Names.NEW_HORIZONS_CORE_MOD)) NEW_HORIZONS_CORE_MOD = true; } } diff --git a/src/main/java/com/glodblock/github/util/NameConst.java b/src/main/java/com/glodblock/github/util/NameConst.java index f5644bfa..aa03b39a 100644 --- a/src/main/java/com/glodblock/github/util/NameConst.java +++ b/src/main/java/com/glodblock/github/util/NameConst.java @@ -49,6 +49,8 @@ public class NameConst { public static final String ITEM_WIRELESS_FLUID_PATTERN_TERMINAL = "wireless_fluid_pattern_terminal"; public static final String ITEM_FLUID_PART = "fluid_part"; public static final String ITEM_FLUID_STORAGE_HOUSING = "fluid_storage_housing"; + public static final String ITEM_QUANTUM_BRIDGE_CARD = "quantum_bridge_card"; + public static final String ITEM_ENERGY_CARD = "energy_card"; public static final String TT_KEY = FluidCraft.MODID + ".tooltip."; public static final String TT_FLUID_TERMINAL = TT_KEY + "fluid_terminal"; @@ -93,6 +95,10 @@ 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_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"; + public static final String TT_QUANTUM_BRIDGE_CARD_DESC = TT_QUANTUM_BRIDGE_CARD + ".desc"; public static final String WAILA_KEY = FluidCraft.MODID + ".waila."; public static final String WAILA_ENABLE = WAILA_KEY + "enable"; diff --git a/src/main/java/com/glodblock/github/util/Util.java b/src/main/java/com/glodblock/github/util/Util.java index 0bb4207e..2476096d 100644 --- a/src/main/java/com/glodblock/github/util/Util.java +++ b/src/main/java/com/glodblock/github/util/Util.java @@ -1,6 +1,8 @@ package com.glodblock.github.util; import static com.glodblock.github.common.item.ItemBaseWirelessTerminal.infinityBoosterCard; +import static com.glodblock.github.common.item.ItemBaseWirelessTerminal.infinityEnergyCard; +import static com.glodblock.github.util.Util.DimensionalCoordSide.hasEnergyCard; import java.io.IOException; import java.util.ArrayList; @@ -91,15 +93,19 @@ public final class Util { c.setValidContainer(false); } ticks++; + if (ticks > 10 && wt != null) { - wt.extractAEPower(pm * ticks, Actionable.MODULATE, PowerMultiplier.CONFIG); + if (!hasEnergyCard(wt.getItemStack())) { + wt.extractAEPower(pm * ticks, Actionable.MODULATE, PowerMultiplier.CONFIG); + } ticks = 0; } + return ticks; } public static boolean hasInfinityBoosterCard(ItemStack is) { - if (ModAndClassUtil.WCT && is.getItem() instanceof ItemBaseWirelessTerminal) { + if (is.getItem() instanceof ItemBaseWirelessTerminal) { NBTTagCompound data = Platform.openNbtData(is); return data.hasKey(infinityBoosterCard) && data.getBoolean(infinityBoosterCard); } @@ -632,5 +638,13 @@ public final class Util { data.getString("name")); } + public static boolean hasEnergyCard(ItemStack is) { + if (is.getItem() instanceof ItemBaseWirelessTerminal) { + NBTTagCompound data = Platform.openNbtData(is); + return (data.hasKey(infinityEnergyCard) && data.getBoolean(infinityEnergyCard)); + } + return false; + } + } } diff --git a/src/main/resources/assets/ae2fc/lang/en_US.lang b/src/main/resources/assets/ae2fc/lang/en_US.lang index 58ae1a02..8d2ebf2a 100644 --- a/src/main/resources/assets/ae2fc/lang/en_US.lang +++ b/src/main/resources/assets/ae2fc/lang/en_US.lang @@ -25,6 +25,8 @@ item.wireless_ultra_terminal.WIRELESS_ESSENTIA_TERMINAL.name=Universal Wireless item.wireless_ultra_terminal.WIRELESS_INTERFACE_TERMINAL.name=Universal Wireless Terminal - Interface item.wireless_ultra_terminal.WIRELESS_FLUID_PATTERN_TERMINAL_EX.name=Universal Wireless Terminal - Processing Pattern item.fluid_packet.name=Fluid Packet +item.quantum_bridge_card.name=Quantum Bridge Card +item.energy_card.name=Energy Card item.creative_fluid_storage.name=Creative ME Fluid Storage Cell item.fluid_storage.1.name=%s1k%s ME Fluid Storage Cell item.fluid_storage.4.name=%s4k%s ME Fluid Storage Cell @@ -110,6 +112,9 @@ 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.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 + ae2fc.tooltip.cell_contents=Contains Fluid: ae2fc.tooltip.cell_empty=Cell is empty ae2fc.tooltip.cell_portable=Right click to open its GUI. It works like a backpack, but you need to charge it before using. diff --git a/src/main/resources/assets/ae2fc/lang/ru_RU.lang b/src/main/resources/assets/ae2fc/lang/ru_RU.lang index 2a9d31df..55297b05 100644 --- a/src/main/resources/assets/ae2fc/lang/ru_RU.lang +++ b/src/main/resources/assets/ae2fc/lang/ru_RU.lang @@ -22,6 +22,8 @@ item.wireless_ultra_terminal.WIRELESS_ESSENTIA_TERMINAL.name=Беспровод item.wireless_ultra_terminal.WIRELESS_INTERFACE_TERMINAL.name=Беспроводной универсальный терминал - Интерфейс item.wireless_ultra_terminal.WIRELESS_FLUID_PATTERN_TERMINAL_EX.name=Беспроводной универсальный терминал - Шаблон обработки item.fluid_packet.name=Жидкостный пакет +item.quantum_bridge_card.name=Карта квантового моста +item.energy_card.name=Карта бесконечной энергии item.creative_fluid_storage.name=Творческая МЭ жидкостная ячейка хранения item.fluid_storage.1.name=%s1К%s МЭ жидкостная ячейка хранения item.fluid_storage.4.name=%s4К%s МЭ жидкостная ячейка хранения @@ -82,7 +84,7 @@ ae2fc.tooltip.fluid_auto_filler=Автоматически создаёт шаб ae2fc.tooltip.level_maintainer.Who_Am_I=Кто я? ae2fc.tooltip.level_maintainer.title=§6Статус запроса§r ae2fc.tooltip.level_maintainer.desc=Автоматически поддерживает заданное количество предметов и жидкостей в хранилище, запрашивая новые при необходимости. Должен быть подключен к МЭ сети. -ae2fc.tooltip.level_maintainer.current=Текущее состояние: +ae2fc.tooltip.level_maintainer.current=Текущее состояние: ae2fc.tooltip.level_maintainer.none=Запрос не настроен. ae2fc.tooltip.level_maintainer.idle=§aБездействие§r ae2fc.tooltip.level_maintainer.idle_desc=Запрашиватель бездействует, когда запрошенное количество уже достигнуто, нет шаблона создания этого предмета или жидкости или если недостаточно ингредиентов, чтобы запросить больше. @@ -104,6 +106,9 @@ 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.quantum_bridge_card.desc=Позволяет беспроводным терминалам подключаться к квантовому мосту, обеспечивая неограниченный радиус действия +ae2fc.tooltip.energy_card.desc=Бесконечная энергия для беспроводного терминала + ae2fc.tooltip.cell_contents=Содержит жидкость: ae2fc.tooltip.cell_empty=Ячейка пуста ae2fc.tooltip.cell_portable=Нажмите ПКМ для открытия её интерфейса. Работает как рюкзак, но её необходимо зарядить перед использованием. diff --git a/src/main/resources/assets/ae2fc/textures/items/energy_card.png b/src/main/resources/assets/ae2fc/textures/items/energy_card.png new file mode 100644 index 0000000000000000000000000000000000000000..e15204234ca4b67d29ee518fda3136320bdb1b27 GIT binary patch literal 419 zcmV;U0bKrxP)Px$T}ebiR5*>TlfO#>VI0Ok7dGTw9!NtC`6ncigwUVR7KGrSU@qAvRNNFzR)WLP zk3olUb1^~s6WW@Znt~u~lYG6iCAbFf&htEtsAqX!zI>nO`@GNlzVJs#&PLNT3&1qZ zu?EvH0O)qR0IbGh$g)hSRFYf)P1CGIJU(^GTc^Wou}D&txP5sBAQe%`&M!+LZ)4w{ z=0`XjrulGBd~<`8T}y-_0L(eI{p5DD&Z43KFc=Kj+1h4dX@!R9(GWczzXSkd4!q=a zrr?Usaxfv#Zr1q_g6qpO4D*xygTs*nPX-M6lLF~X0f3A16ON8g=^MuH9P|x?o2#-* zb~0EmS7}it8jT_=3Rzv3re@$J1E`VVw7XVI^7n>d^jMzq`5-;kYPG;R*w^SFsY-$C zEQ}ptw`YMWO|0)i{4CHD0=-fJK(}jp5W@%8<6bUj!RXWY5ftFR;2Z1tis*E9Tmb+8 N002ovPDHLkV1hQfyCMJp literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/ae2fc/textures/items/quantum_bridge_card.png b/src/main/resources/assets/ae2fc/textures/items/quantum_bridge_card.png new file mode 100644 index 0000000000000000000000000000000000000000..59b5bfd2871add53f05dfb4663eb2e052aa382c5 GIT binary patch literal 487 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>lVtR#xWazfCh4u1o?p+1qR!n2Q36L7?Zr+T^Kr8Wj%l#&H|6fVg?3oVGw3ym^DWN zD9B#o>Fdh=lub@RjPuOS=y^b)GEW!B5Q)pV{eeQw3OuYUMY%auK3(}8ztwZ;+P-(s z)!wuS=-C9FViPR((+j$}Qpsw2f5R%K?seI>eNtAO72VG(%aXB8oT*M3!~x0bQV4 z;u=wsl30>zm0Xkxq!^40j0|-R%yf+nLJZBUjEt-dEVT^`tPBhkB^?w|H00)|WTsW( V))3(GV=hnwgQu&X%Q~loCIDLOo#Oxi literal 0 HcmV?d00001