summaryrefslogtreecommitdiff
path: root/src/main/java/lv/enes/mc/eris_alchemy/client/ErisAlchemyClient.java
blob: bb5de4fdc17ee7569ecfa28447357826267c4507 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package lv.enes.mc.eris_alchemy.client;

import lv.enes.mc.eris_alchemy.EMC;
import lv.enes.mc.eris_alchemy.ErisAlchemyItems;
import lv.enes.mc.eris_alchemy.block.ErisAlchemyBlocks;
import lv.enes.mc.eris_alchemy.block.entity.AlchemicalChestBlockEntity;
import lv.enes.mc.eris_alchemy.block.entity.ErisAlchemyBlockEntities;
import lv.enes.mc.eris_alchemy.menu.ErisAlchemyMenus;
import net.fabricmc.fabric.api.client.rendering.v1.BuiltinItemRendererRegistry;
import net.minecraft.client.gui.screens.MenuScreens;
import net.minecraft.client.renderer.blockentity.BlockEntityRenderers;
import net.minecraft.client.renderer.blockentity.ChestRenderer;
import net.minecraft.network.chat.Component;
import org.quiltmc.loader.api.ModContainer;
import org.quiltmc.qsl.base.api.entrypoint.client.ClientModInitializer;
import org.quiltmc.qsl.tooltip.api.client.ItemTooltipCallback;

import java.text.DecimalFormat;

@SuppressWarnings("unused")
public class ErisAlchemyClient implements ClientModInitializer {
	@Override
	public void onInitializeClient(ModContainer mod) {
		BlockEntityRenderers.register(ErisAlchemyBlockEntities.ALCHEMICAL_CHEST, ChestRenderer::new);

		BuiltinItemRendererRegistry.INSTANCE.register(
				ErisAlchemyItems.ALCHEMICAL_CHEST,
				new ChestItemRenderer<>(ErisAlchemyBlocks.ALCHEMICAL_CHEST, AlchemicalChestBlockEntity::new)::renderByItem
		);

		MenuScreens.register(ErisAlchemyMenus.ALCHEMICAL_CHEST, AlchemicalChestScreen::new);

		var doubleFormat = new DecimalFormat("0");
		doubleFormat.setMaximumFractionDigits(1);
		ItemTooltipCallback.EVENT.register((stack, player, context, tooltip) -> {
			var world = player == null ? null : player.level();
			var emc = EMC.getInstance(world).get(stack.getItem());
			emc.ifPresent(value -> tooltip.add(Component.literal("EMC %s".formatted(doubleFormat.format(value)))));
		});
	}
}