Automatically add description to items if loca key exists.

This commit is contained in:
Florian Nücke
2021-01-19 00:28:18 +01:00
parent afaa373ea5
commit 6cf8e3cf21
12 changed files with 67 additions and 45 deletions

View File

@@ -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<ITextComponent> tooltip, final ITooltipFlag flagIn) {
super.addInformation(stack, worldIn, tooltip, flagIn);
TooltipUtils.addDescription(stack, tooltip);
}
@Override
public boolean hasTileEntity(final BlockState state) {
return true;

View File

@@ -76,7 +76,6 @@ public final class ComputerBlock extends HorizontalBlock {
@Override
public void addInformation(final ItemStack stack, @Nullable final IBlockReader world, final List<ITextComponent> tooltip, final ITooltipFlag advanced) {
super.addInformation(stack, world, tooltip, advanced);
TooltipUtils.addDescription(stack, tooltip);
TooltipUtils.addTileEntityInventoryInformation(stack, tooltip);
}

View File

@@ -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";
///////////////////////////////////////////////////////////////////

View File

@@ -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<ITextComponent> 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();

View File

@@ -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<Item> register(final String name) {
return register(name, Item::new);
return register(name, ModItem::new);
}
private static RegistryObject<Item> register(final String name, final Item.Properties properties) {
return register(name, Item::new, properties);
return register(name, ModItem::new, properties);
}
private static <T extends Item> RegistryObject<T> register(final String name, final Function<Item.Properties, T> factory) {
@@ -67,7 +66,7 @@ public final class Items {
}
private static <T extends Block> RegistryObject<Item> register(final String name, final RegistryObject<T> block) {
return register(name, (properties) -> new BlockItem(block.get(), properties));
return register(name, (properties) -> new ModBlockItem(block.get(), properties));
}
private static Item.Properties commonProperties() {

View File

@@ -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<ITextComponent> tooltip, final ITooltipFlag flag) {
TooltipUtils.tryAddDescription(stack, tooltip);
this.getBlock().addInformation(stack, world, tooltip, flag);
}
}

View File

@@ -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<ITextComponent> tooltip, final ITooltipFlag flag) {
super.addInformation(stack, world, tooltip, flag);
TooltipUtils.tryAddDescription(stack, tooltip);
}
}

View File

@@ -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<ServerPlayerEntity, BlockPos> LINK_STARTS = new WeakHashMap<>();
///////////////////////////////////////////////////////////////////

View File

@@ -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<ITextComponent> tooltip, final ITooltipFlag flags) {
super.addInformation(stack, world, tooltip, flags);
TooltipUtils.addDescription(stack, tooltip);
TooltipUtils.addEntityInventoryInformation(stack, tooltip);
}

View File

@@ -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<ITextComponent> 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();

View File

@@ -21,9 +21,13 @@ public final class TooltipUtils {
///////////////////////////////////////////////////////////////////
public static void addDescription(final ItemStack stack, final List<ITextComponent> 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<ITextComponent> 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<ITextComponent> tooltip) {

View File

@@ -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.",