Skip to content

Commit 6177d6d

Browse files
committed
Add room dimensions back to unbound machine item
1 parent c888a6f commit 6177d6d

File tree

2 files changed

+27
-3
lines changed

2 files changed

+27
-3
lines changed

core-api/src/main/java/dev/compactmods/machines/api/room/template/RoomTemplateHelper.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package dev.compactmods.machines.api.room.template;
22

33
import net.minecraft.core.Holder;
4+
import net.minecraft.core.HolderLookup;
45
import net.minecraft.core.RegistryAccess;
56
import net.minecraft.resources.ResourceKey;
67
import net.minecraft.resources.ResourceLocation;
@@ -21,6 +22,13 @@ public static RoomTemplate getTemplate(RegistryAccess registryAccess, ResourceLo
2122
.orElse(RoomTemplate.INVALID_TEMPLATE);
2223
}
2324

25+
public static RoomTemplate getTemplate(HolderLookup.Provider lookup, ResourceLocation id) {
26+
return lookup.lookupOrThrow(RoomTemplate.REGISTRY_KEY)
27+
.get(ResourceKey.create(RoomTemplate.REGISTRY_KEY, id))
28+
.map(Holder.Reference::value)
29+
.orElse(RoomTemplate.INVALID_TEMPLATE);
30+
}
31+
2432
public static Stream<RoomTemplate> getTemplates(RegistryAccess registryAccess) {
2533
return registryAccess.registryOrThrow(RoomTemplate.REGISTRY_KEY).stream();
2634
}

neoforge-main/src/main/java/dev/compactmods/machines/machine/item/UnboundCompactMachineItem.java

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,24 @@
11
package dev.compactmods.machines.machine.item;
22

33
import dev.compactmods.machines.api.component.CMDataComponents;
4+
import dev.compactmods.machines.api.room.template.RoomTemplateHelper;
45
import dev.compactmods.machines.i18n.MachineTranslations;
56
import dev.compactmods.machines.api.room.template.RoomTemplate;
67
import dev.compactmods.machines.machine.MachineColors;
78
import dev.compactmods.machines.machine.Machines;
9+
import net.minecraft.ChatFormatting;
810
import net.minecraft.Util;
911
import net.minecraft.network.chat.Component;
1012
import net.minecraft.resources.ResourceLocation;
13+
import net.minecraft.util.CommonColors;
14+
import net.minecraft.util.FastColor;
1115
import net.minecraft.world.item.BlockItem;
1216
import net.minecraft.world.item.ItemStack;
1317
import net.minecraft.world.item.TooltipFlag;
1418
import org.jetbrains.annotations.NotNull;
1519

1620
import java.util.List;
21+
import java.util.Objects;
1722

1823
/**
1924
* Represents a machine item that has not been bound to a room yet,
@@ -52,11 +57,22 @@ private ResourceLocation getTemplateId(ItemStack stack) {
5257
public void appendHoverText(ItemStack stack, TooltipContext context, List<Component> tooltip, TooltipFlag flags) {
5358
super.appendHoverText(stack, context, tooltip, flags);
5459

55-
tooltip.add(Component.translatableWithFallback(MachineTranslations.IDs.NEW_MACHINE, "New Machine"));
60+
tooltip.add(Component.translatableWithFallback(MachineTranslations.IDs.NEW_MACHINE, "New Machine")
61+
.withColor(CommonColors.LIGHT_GRAY));
5662

5763
if(stack.has(CMDataComponents.ROOM_TEMPLATE_ID)) {
58-
// TODO Room Dimensions
59-
Component.literal(stack.get(CMDataComponents.ROOM_TEMPLATE_ID).toString());
64+
var templateID = stack.get(CMDataComponents.ROOM_TEMPLATE_ID);
65+
var template = RoomTemplateHelper.getTemplate(Objects.requireNonNull(context.registries()), templateID);
66+
if(template != RoomTemplate.INVALID_TEMPLATE) {
67+
if(flags.hasShiftDown())
68+
tooltip.add(Component.translatable(MachineTranslations.IDs.SIZE,
69+
template.internalDimensions().toString())
70+
.withColor(FastColor.ARGB32.color(120, 120, 120)));
71+
72+
if(flags.hasShiftDown())
73+
tooltip.add(Component.literal(templateID.toString())
74+
.withColor(FastColor.ARGB32.color(50, 50, 50)));
75+
}
6076
}
6177
}
6278
}

0 commit comments

Comments
 (0)