From 6cf8e3cf210831f9aefbbb89fc636baee7d63d95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Tue, 19 Jan 2021 00:28:18 +0100 Subject: [PATCH] Automatically add description to items if loca key exists. --- .../cil/oc2/common/block/BusCableBlock.java | 9 ------- .../cil/oc2/common/block/ComputerBlock.java | 1 - .../oc2/common/item/AbstractStorageItem.java | 2 +- .../cil/oc2/common/item/BusInterfaceItem.java | 9 +------ .../java/li/cil/oc2/common/item/Items.java | 7 +++-- .../li/cil/oc2/common/item/ModBlockItem.java | 26 +++++++++++++++++++ .../java/li/cil/oc2/common/item/ModItem.java | 25 ++++++++++++++++++ .../cil/oc2/common/item/NetworkCableItem.java | 2 +- .../li/cil/oc2/common/item/RobotItem.java | 4 +-- .../li/cil/oc2/common/item/WrenchItem.java | 15 +---------- .../li/cil/oc2/common/util/TooltipUtils.java | 10 ++++--- src/main/resources/assets/oc2/lang/en_us.json | 2 +- 12 files changed, 67 insertions(+), 45 deletions(-) create mode 100644 src/main/java/li/cil/oc2/common/item/ModBlockItem.java create mode 100644 src/main/java/li/cil/oc2/common/item/ModItem.java diff --git a/src/main/java/li/cil/oc2/common/block/BusCableBlock.java b/src/main/java/li/cil/oc2/common/block/BusCableBlock.java index 9096d448..d44640a1 100644 --- a/src/main/java/li/cil/oc2/common/block/BusCableBlock.java +++ b/src/main/java/li/cil/oc2/common/block/BusCableBlock.java @@ -7,13 +7,11 @@ import li.cil.oc2.common.item.Items; import li.cil.oc2.common.tileentity.BusCableTileEntity; import li.cil.oc2.common.tileentity.TileEntities; import li.cil.oc2.common.util.ItemStackUtils; -import li.cil.oc2.common.util.TooltipUtils; import li.cil.oc2.common.util.WorldUtils; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; -import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.BlockItemUseContext; import net.minecraft.item.ItemStack; @@ -28,7 +26,6 @@ import net.minecraft.util.math.shapes.ISelectionContext; import net.minecraft.util.math.shapes.VoxelShape; import net.minecraft.util.math.shapes.VoxelShapes; import net.minecraft.util.math.vector.Vector3d; -import net.minecraft.util.text.ITextComponent; import net.minecraft.world.GameRules; import net.minecraft.world.IBlockReader; import net.minecraft.world.IWorld; @@ -123,12 +120,6 @@ public final class BusCableBlock extends Block { return false; } - @Override - public void addInformation(final ItemStack stack, @org.jetbrains.annotations.Nullable final IBlockReader worldIn, final List tooltip, final ITooltipFlag flagIn) { - super.addInformation(stack, worldIn, tooltip, flagIn); - TooltipUtils.addDescription(stack, tooltip); - } - @Override public boolean hasTileEntity(final BlockState state) { return true; diff --git a/src/main/java/li/cil/oc2/common/block/ComputerBlock.java b/src/main/java/li/cil/oc2/common/block/ComputerBlock.java index 272dab07..501f3183 100644 --- a/src/main/java/li/cil/oc2/common/block/ComputerBlock.java +++ b/src/main/java/li/cil/oc2/common/block/ComputerBlock.java @@ -76,7 +76,6 @@ public final class ComputerBlock extends HorizontalBlock { @Override public void addInformation(final ItemStack stack, @Nullable final IBlockReader world, final List tooltip, final ITooltipFlag advanced) { super.addInformation(stack, world, tooltip, advanced); - TooltipUtils.addDescription(stack, tooltip); TooltipUtils.addTileEntityInventoryInformation(stack, tooltip); } diff --git a/src/main/java/li/cil/oc2/common/item/AbstractStorageItem.java b/src/main/java/li/cil/oc2/common/item/AbstractStorageItem.java index f211d3b7..62bd0319 100644 --- a/src/main/java/li/cil/oc2/common/item/AbstractStorageItem.java +++ b/src/main/java/li/cil/oc2/common/item/AbstractStorageItem.java @@ -11,7 +11,7 @@ import net.minecraft.util.text.StringTextComponent; import javax.annotation.Nullable; -public abstract class AbstractStorageItem extends Item { +public abstract class AbstractStorageItem extends ModItem { private static final String CAPACITY_TAG_NAME = "size"; /////////////////////////////////////////////////////////////////// diff --git a/src/main/java/li/cil/oc2/common/item/BusInterfaceItem.java b/src/main/java/li/cil/oc2/common/item/BusInterfaceItem.java index 688d726e..e508c51c 100644 --- a/src/main/java/li/cil/oc2/common/item/BusInterfaceItem.java +++ b/src/main/java/li/cil/oc2/common/item/BusInterfaceItem.java @@ -5,7 +5,6 @@ import li.cil.oc2.common.block.BusCableBlock; import li.cil.oc2.common.util.TooltipUtils; import net.minecraft.block.BlockState; import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemUseContext; import net.minecraft.util.ActionResultType; @@ -18,19 +17,13 @@ import org.jetbrains.annotations.Nullable; import java.util.List; -public final class BusInterfaceItem extends Item { +public final class BusInterfaceItem extends ModItem { public BusInterfaceItem(final Properties properties) { super(properties); } /////////////////////////////////////////////////////////////////// - @Override - public void addInformation(final ItemStack stack, @Nullable final World worldIn, final List tooltip, final ITooltipFlag flagIn) { - super.addInformation(stack, worldIn, tooltip, flagIn); - TooltipUtils.addDescription(stack, tooltip); - } - @Override public ActionResultType onItemUse(final ItemUseContext context) { final World world = context.getWorld(); diff --git a/src/main/java/li/cil/oc2/common/item/Items.java b/src/main/java/li/cil/oc2/common/item/Items.java index 96124c44..17bc6040 100644 --- a/src/main/java/li/cil/oc2/common/item/Items.java +++ b/src/main/java/li/cil/oc2/common/item/Items.java @@ -5,7 +5,6 @@ import li.cil.oc2.client.renderer.tileentity.RobotItemStackRenderer; import li.cil.oc2.common.Constants; import li.cil.oc2.common.block.Blocks; import net.minecraft.block.Block; -import net.minecraft.item.BlockItem; import net.minecraft.item.Item; import net.minecraftforge.fml.RegistryObject; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; @@ -51,11 +50,11 @@ public final class Items { /////////////////////////////////////////////////////////////////// private static RegistryObject register(final String name) { - return register(name, Item::new); + return register(name, ModItem::new); } private static RegistryObject register(final String name, final Item.Properties properties) { - return register(name, Item::new, properties); + return register(name, ModItem::new, properties); } private static RegistryObject register(final String name, final Function factory) { @@ -67,7 +66,7 @@ public final class Items { } private static RegistryObject register(final String name, final RegistryObject block) { - return register(name, (properties) -> new BlockItem(block.get(), properties)); + return register(name, (properties) -> new ModBlockItem(block.get(), properties)); } private static Item.Properties commonProperties() { diff --git a/src/main/java/li/cil/oc2/common/item/ModBlockItem.java b/src/main/java/li/cil/oc2/common/item/ModBlockItem.java new file mode 100644 index 00000000..de2b8fa1 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/item/ModBlockItem.java @@ -0,0 +1,26 @@ +package li.cil.oc2.common.item; + +import li.cil.oc2.common.util.TooltipUtils; +import net.minecraft.block.Block; +import net.minecraft.client.util.ITooltipFlag; +import net.minecraft.item.BlockItem; +import net.minecraft.item.ItemStack; +import net.minecraft.util.text.ITextComponent; +import net.minecraft.world.World; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +public class ModBlockItem extends BlockItem { + public ModBlockItem(final Block block, final Properties properties) { + super(block, properties); + } + + /////////////////////////////////////////////////////////////////// + + @Override + public void addInformation(final ItemStack stack, @Nullable final World world, final List tooltip, final ITooltipFlag flag) { + TooltipUtils.tryAddDescription(stack, tooltip); + this.getBlock().addInformation(stack, world, tooltip, flag); + } +} diff --git a/src/main/java/li/cil/oc2/common/item/ModItem.java b/src/main/java/li/cil/oc2/common/item/ModItem.java new file mode 100644 index 00000000..f78496a0 --- /dev/null +++ b/src/main/java/li/cil/oc2/common/item/ModItem.java @@ -0,0 +1,25 @@ +package li.cil.oc2.common.item; + +import li.cil.oc2.common.util.TooltipUtils; +import net.minecraft.client.util.ITooltipFlag; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.text.ITextComponent; +import net.minecraft.world.World; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +public class ModItem extends Item { + public ModItem(final Properties properties) { + super(properties); + } + + /////////////////////////////////////////////////////////////////// + + @Override + public void addInformation(final ItemStack stack, @Nullable final World world, final List tooltip, final ITooltipFlag flag) { + super.addInformation(stack, world, tooltip, flag); + TooltipUtils.tryAddDescription(stack, tooltip); + } +} diff --git a/src/main/java/li/cil/oc2/common/item/NetworkCableItem.java b/src/main/java/li/cil/oc2/common/item/NetworkCableItem.java index eea1007d..032cd7ab 100644 --- a/src/main/java/li/cil/oc2/common/item/NetworkCableItem.java +++ b/src/main/java/li/cil/oc2/common/item/NetworkCableItem.java @@ -19,7 +19,7 @@ import net.minecraft.world.World; import java.util.Objects; import java.util.WeakHashMap; -public final class NetworkCableItem extends Item { +public final class NetworkCableItem extends ModItem { private static final WeakHashMap LINK_STARTS = new WeakHashMap<>(); /////////////////////////////////////////////////////////////////// diff --git a/src/main/java/li/cil/oc2/common/item/RobotItem.java b/src/main/java/li/cil/oc2/common/item/RobotItem.java index ce56f44c..391f4c0e 100644 --- a/src/main/java/li/cil/oc2/common/item/RobotItem.java +++ b/src/main/java/li/cil/oc2/common/item/RobotItem.java @@ -8,7 +8,6 @@ import li.cil.oc2.common.util.WorldUtils; import net.minecraft.block.SoundType; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.item.BlockItemUseContext; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemUseContext; import net.minecraft.stats.Stats; @@ -22,7 +21,7 @@ import org.jetbrains.annotations.Nullable; import java.util.List; -public final class RobotItem extends Item { +public final class RobotItem extends ModItem { public RobotItem(final Properties properties) { super(properties); } @@ -32,7 +31,6 @@ public final class RobotItem extends Item { @Override public void addInformation(final ItemStack stack, @Nullable final World world, final List tooltip, final ITooltipFlag flags) { super.addInformation(stack, world, tooltip, flags); - TooltipUtils.addDescription(stack, tooltip); TooltipUtils.addEntityInventoryInformation(stack, tooltip); } diff --git a/src/main/java/li/cil/oc2/common/item/WrenchItem.java b/src/main/java/li/cil/oc2/common/item/WrenchItem.java index 636938d5..641f0fba 100644 --- a/src/main/java/li/cil/oc2/common/item/WrenchItem.java +++ b/src/main/java/li/cil/oc2/common/item/WrenchItem.java @@ -1,40 +1,27 @@ package li.cil.oc2.common.item; import li.cil.oc2.api.API; -import li.cil.oc2.common.util.TooltipUtils; import li.cil.oc2.common.util.WorldUtils; import net.minecraft.block.BlockState; import net.minecraft.block.SoundType; -import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; import net.minecraft.item.ItemUseContext; import net.minecraft.server.management.PlayerInteractionManager; import net.minecraft.util.ActionResultType; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.ITextComponent; import net.minecraft.world.World; -import org.jetbrains.annotations.Nullable; -import java.util.List; import java.util.Objects; -public final class WrenchItem extends Item { +public final class WrenchItem extends ModItem { public WrenchItem(final Properties properties) { super(properties); } /////////////////////////////////////////////////////////////////// - @Override - public void addInformation(final ItemStack stack, @Nullable final World worldIn, final List tooltip, final ITooltipFlag flagIn) { - super.addInformation(stack, worldIn, tooltip, flagIn); - TooltipUtils.addDescription(stack, tooltip); - } - @Override public ActionResultType onItemUse(final ItemUseContext context) { final World world = context.getWorld(); diff --git a/src/main/java/li/cil/oc2/common/util/TooltipUtils.java b/src/main/java/li/cil/oc2/common/util/TooltipUtils.java index 81b0431e..12207a19 100644 --- a/src/main/java/li/cil/oc2/common/util/TooltipUtils.java +++ b/src/main/java/li/cil/oc2/common/util/TooltipUtils.java @@ -21,9 +21,13 @@ public final class TooltipUtils { /////////////////////////////////////////////////////////////////// - public static void addDescription(final ItemStack stack, final List tooltip) { - final TranslationTextComponent description = new TranslationTextComponent(stack.getTranslationKey() + Constants.DESCRIPTION_SUFFIX); - tooltip.add(new StringTextComponent("").modifyStyle(s -> s.setColor(Color.fromTextFormatting(TextFormatting.GRAY))).append(description)); + public static void tryAddDescription(final ItemStack stack, final List tooltip) { + final String translationKey = stack.getTranslationKey() + Constants.DESCRIPTION_SUFFIX; + final LanguageMap languagemap = LanguageMap.getInstance(); + if (languagemap.func_230506_b_(translationKey)) { + final TranslationTextComponent description = new TranslationTextComponent(translationKey); + tooltip.add(new StringTextComponent("").modifyStyle(s -> s.setColor(Color.fromTextFormatting(TextFormatting.GRAY))).append(description)); + } } public static void addTileEntityInventoryInformation(final ItemStack stack, final List tooltip) { diff --git a/src/main/resources/assets/oc2/lang/en_us.json b/src/main/resources/assets/oc2/lang/en_us.json index 59389268..cc83362c 100644 --- a/src/main/resources/assets/oc2/lang/en_us.json +++ b/src/main/resources/assets/oc2/lang/en_us.json @@ -22,7 +22,7 @@ "item.oc2.robot": "Robot", "item.oc2.robot.desc": "Use a Scrench or compatible wrench to add and remove components.", "item.oc2.inventory_operations_module": "Inventory Operations Module", - "item.oc2.inventory_operations_module.desc": "Enables robots to move items in their inventory, including to and from adjacent inventories.", + "item.oc2.inventory_operations_module.desc": "Enables robots to move items in, into and out of their inventory.", "item.oc2.block_operations_module": "Block Operations Module", "item.oc2.block_operations_module.desc": "Enables robots to break and place blocks.",