Skip to content

Commit 4b20b8f

Browse files
committed
Tooltip for mass when advanced tooltips is enabled. Also fixed many bugs with the Mass Calculator.
1 parent 38d9ade commit 4b20b8f

3 files changed

Lines changed: 213 additions & 43 deletions

File tree

src/client/java/dev/manifold/ManifoldClient.java

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
package dev.manifold;
22

33
import dev.manifold.gui.MassScreen;
4-
import dev.manifold.network.packets.ConstructSectionDataS2CPacket;
5-
import dev.manifold.network.packets.MassGuiDataRefreshS2CPacket;
6-
import dev.manifold.network.packets.MassGuiDataS2CPacket;
7-
import dev.manifold.network.packets.PickConstructBlockWithDataS2CPacket;
4+
import dev.manifold.mass.MassManager;
5+
import dev.manifold.network.packets.*;
86
import dev.manifold.render.ManifoldRenderChunk;
97
import dev.manifold.render.ManifoldRenderChunkRegion;
108
import io.netty.buffer.Unpooled;
119
import net.fabricmc.api.ClientModInitializer;
1210
import net.fabricmc.api.EnvType;
1311
import net.fabricmc.api.Environment;
1412
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientWorldEvents;
13+
import net.fabricmc.fabric.api.client.item.v1.ItemTooltipCallback;
1514
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
1615
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents;
16+
import net.minecraft.ChatFormatting;
1717
import net.minecraft.client.Camera;
1818
import net.minecraft.client.Minecraft;
1919
import net.minecraft.client.player.LocalPlayer;
@@ -22,11 +22,14 @@
2222
import net.minecraft.nbt.CompoundTag;
2323
import net.minecraft.nbt.Tag;
2424
import net.minecraft.network.FriendlyByteBuf;
25+
import net.minecraft.network.chat.Component;
2526
import net.minecraft.util.Mth;
2627
import net.minecraft.world.InteractionHand;
2728
import net.minecraft.world.entity.Entity;
2829
import net.minecraft.world.entity.player.Inventory;
30+
import net.minecraft.world.item.Item;
2931
import net.minecraft.world.item.ItemStack;
32+
import net.minecraft.world.item.TooltipFlag;
3033
import net.minecraft.world.level.ChunkPos;
3134
import net.minecraft.world.level.ClipContext;
3235
import net.minecraft.world.level.Level;
@@ -41,6 +44,7 @@
4144
import org.jetbrains.annotations.Nullable;
4245
import org.joml.Quaternionf;
4346
import org.joml.Vector3f;
47+
import org.w3c.dom.Text;
4448

4549
import java.util.*;
4650

@@ -207,6 +211,20 @@ public void onInitializeClient() {
207211
}
208212
})
209213
);
214+
215+
ItemTooltipCallback.EVENT.register((ItemStack stack, Item.TooltipContext context, TooltipFlag type, List<Component> lines) -> {
216+
if (type.isAdvanced()) {
217+
MassManager.getMass(stack.getItem()).ifPresentOrElse(mass -> {
218+
lines.add(1, Component.literal("Mass: " + mass + " kg")
219+
.withStyle(style -> style.withColor(ChatFormatting.DARK_GRAY))
220+
);
221+
}, () -> {
222+
lines.add(1, Component.literal("Mass: 1000 kg")
223+
.withStyle(style -> style.withColor(ChatFormatting.DARK_GRAY))
224+
);
225+
});
226+
}
227+
});
210228
}
211229

212230
private void handlePickConstructData(PickConstructBlockWithDataS2CPacket packet) {

src/client/java/dev/manifold/gui/MassScreen.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ public void renderWidget(GuiGraphics graphics, int mouseX, int mouseY, float del
250250
graphics.renderItemDecorations(mc.font, stack, this.getX(), this.getY());
251251

252252
// Set mass color
253-
int color = 0xFFFFFF;
253+
int color;
254254
String mode;
255255
if (MassManager.isBase(entry.item(), server)) {
256256
if (!MassManager.isOverridden(entry.item())) {
@@ -264,13 +264,14 @@ public void renderWidget(GuiGraphics graphics, int mouseX, int mouseY, float del
264264
} else {
265265
mode = MassManager.isAuto(entry.item()) ? "Auto" : "Manual";
266266
color = MassManager.isAuto(entry.item()) ? 0xFF00FF00 : 0xFF0000FF;
267-
}
268-
269-
if (!((mode.equals("Auto") && autoEnabled) || (mode.equals("Manual") && !autoEnabled))) {
270-
if (autoEnabled) {
271-
mode = "Auto";
272-
} else {
273-
mode = "Manual";
267+
if (!((mode.equals("Auto") && autoEnabled) || (mode.equals("Manual") && !autoEnabled))) {
268+
if (autoEnabled) {
269+
mode = "Auto";
270+
color = 0xFF00FF00;
271+
} else {
272+
mode = "Manual";
273+
color = 0xFF0000FF;
274+
}
274275
}
275276
}
276277

0 commit comments

Comments
 (0)