Skip to content
This repository was archived by the owner on Aug 6, 2023. It is now read-only.

Commit 9953edd

Browse files
authored
Merge pull request #10 from faceofcat/master
item block tooltips
2 parents 1594f46 + 6d1fc67 commit 9953edd

2 files changed

Lines changed: 41 additions & 4 deletions

File tree

src/main/java/com/mcmoddev/mmdlogger/MMDLoggerConfig.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ public static class Options {
1919

2020
@Config.Comment("If true, then item stack's nbt is displayed in tooltips.")
2121
public boolean nbtTooltipsOn = false;
22+
23+
@Config.Comment("If true, then item block stack's block info is displayed in tooltips.")
24+
public boolean blockTooltipsOn = false;
2225
}
2326

2427
@Mod.EventBusSubscriber(modid = MMDLogger.MODID)

src/main/java/com/mcmoddev/mmdlogger/MMDLoggerEventBusSubscriber.java

Lines changed: 38 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
package com.mcmoddev.mmdlogger;
22

3+
import java.lang.reflect.Field;
34
import java.util.List;
5+
import net.minecraft.block.Block;
6+
import net.minecraft.block.state.IBlockState;
7+
import net.minecraft.init.Blocks;
48
import net.minecraft.item.Item;
9+
import net.minecraft.item.ItemBlock;
510
import net.minecraft.item.ItemStack;
611
import net.minecraft.nbt.NBTTagCompound;
712
import net.minecraft.util.text.TextFormatting;
@@ -15,15 +20,21 @@ public class MMDLoggerEventBusSubscriber {
1520
public static void onToolTip(ItemTooltipEvent event)
1621
{
1722
List<String> tooltips = event.getToolTip();
23+
ItemStack stack = event.getItemStack();
24+
//noinspection ConstantConditions
25+
if ((stack == null) || stack.isEmpty()) {
26+
return;
27+
}
28+
29+
// TODO: consider testing for advanced tooltips being turned on also
30+
// if (!event.getFlags().isAdvanced()) return;
1831

1932
if (MMDLoggerConfig.options.oreDictTooltipsOn) {
20-
ItemStack stack = event.getItemStack();
2133
Item item = stack.getItem();
22-
34+
//noinspection ConstantConditions
2335
if (item == null)
2436
return;
2537

26-
// ore dictionary
2738
String blockName = item.getRegistryName().getResourceDomain() + ":" + item.getRegistryName().getResourcePath();
2839
int meta = item.getMetadata(stack);
2940

@@ -35,11 +46,34 @@ public static void onToolTip(ItemTooltipEvent event)
3546
}
3647

3748
if (MMDLoggerConfig.options.nbtTooltipsOn) {
38-
// nbt
3949
NBTTagCompound stackNbt = event.getItemStack().getTagCompound();
4050
if ((stackNbt != null) && !stackNbt.hasNoTags()) {
4151
tooltips.add(TextFormatting.GRAY + "NBT: " + stackNbt.toString());
4252
}
4353
}
54+
55+
if (MMDLoggerConfig.options.blockTooltipsOn && (stack.getItem() instanceof ItemBlock)) {
56+
Block block = ((ItemBlock)stack.getItem()).getBlock();
57+
IBlockState state = block.getDefaultState();
58+
59+
tooltips.add(TextFormatting.GRAY + "Occlusion: " + state.getAmbientOcclusionLightValue());
60+
tooltips.add(TextFormatting.DARK_GRAY + "Light: " + state.getLightValue());
61+
62+
try {
63+
Field hardness = Block.class.getDeclaredField("blockHardness");
64+
hardness.setAccessible(true);
65+
tooltips.add(TextFormatting.GRAY + "Hardness: " + hardness.get(block));
66+
} catch (NoSuchFieldException | IllegalAccessException ignored) {}
67+
68+
try {
69+
Field resistance = Block.class.getDeclaredField("blockResistance");
70+
resistance.setAccessible(true);
71+
tooltips.add(TextFormatting.GRAY + "Resistance: " + resistance.get(block));
72+
} catch (NoSuchFieldException | IllegalAccessException ignored) {}
73+
74+
tooltips.add(TextFormatting.DARK_GRAY + "Flammability: " + Blocks.FIRE.getFlammability(block));
75+
76+
tooltips.add(TextFormatting.GRAY + "Max stack size: " + stack.getMaxStackSize());
77+
}
4478
}
4579
}

0 commit comments

Comments
 (0)