Skip to content

Commit c95f999

Browse files
committed
Re-add JADE support
1 parent 67f145d commit c95f999

File tree

5 files changed

+150
-158
lines changed

5 files changed

+150
-158
lines changed

gradle/mods.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ jei = "24.0.0.2"
55
# Jade
66
[libraries.jade]
77
module = "curse.maven:jade-324717"
8-
version = "6853386"
8+
version = "6902747"
99

1010
# Just Enough Items
1111
[libraries.jeiCommon]

neoforge-main/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ dependencies {
243243
// compileOnly(mods.rhino)
244244

245245
// Jade Support
246-
// compileOnly(mods.jade)
246+
compileOnly(mods.jade)
247247
}
248248

249249
tasks.withType<Test> {
Lines changed: 93 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -1,101 +1,93 @@
1-
//package dev.compactmods.machines.compat.jade;
2-
//
3-
//import com.mojang.authlib.GameProfile;
4-
//import com.mojang.serialization.Codec;
5-
//import dev.compactmods.machines.api.CompactMachines;
6-
//import dev.compactmods.machines.api.attachment.CMDataAttachments;
7-
//import dev.compactmods.machines.i18n.MachineTranslations;
8-
//import dev.compactmods.machines.machine.block.BoundCompactMachineBlockEntity;
9-
//import dev.compactmods.machines.room.Rooms;
10-
//import net.minecraft.ChatFormatting;
11-
//import net.minecraft.core.UUIDUtil;
12-
//import net.minecraft.nbt.CompoundTag;
13-
//import net.minecraft.network.chat.Component;
14-
//import net.minecraft.resources.ResourceLocation;
15-
//import net.minecraft.util.Mth;
16-
//import net.minecraft.world.item.ItemStack;
17-
//import net.minecraft.world.phys.Vec2;
18-
//import snownee.jade.api.BlockAccessor;
19-
//import snownee.jade.api.IBlockComponentProvider;
20-
//import snownee.jade.api.IServerDataProvider;
21-
//import snownee.jade.api.ITooltip;
22-
//import snownee.jade.api.config.IPluginConfig;
23-
//import snownee.jade.api.ui.BoxStyle;
24-
//import snownee.jade.api.ui.IBoxElement;
25-
//import snownee.jade.api.ui.IElement;
26-
//import snownee.jade.api.ui.IElementHelper;
27-
//import snownee.jade.api.ui.ScreenDirection;
28-
//import snownee.jade.impl.ui.ElementHelper;
29-
//
30-
//public class BoundMachineProviders {
31-
//
32-
// public static final ResourceLocation UID = CompactMachines.modRL("bound_machine");
33-
//
34-
// public static final IBlockComponentProvider COMPONENT_PROVIDER = new IBlockComponentProvider() {
35-
// @Override
36-
// public void appendTooltip(ITooltip tooltip, BlockAccessor blockAccessor, IPluginConfig config) {
37-
// final var serverData = blockAccessor.getServerData();
38-
//
39-
// final var el = IElementHelper.get();
40-
//
41-
// if (serverData.contains("room_code")) {
42-
// final var boundTxt = el.text(Component
43-
// .literal(serverData.getString("room_code"))
44-
// .withStyle(ChatFormatting.DARK_GRAY));
45-
//
46-
// tooltip.add(boundTxt);
47-
// }
48-
//
49-
// if (config.get(CompactMachines.modRL("show_owner")) && serverData.contains("owner")) {
50-
// final var owner = blockAccessor.getLevel().getPlayerByUUID(serverData.getUUID("owner"));
51-
// if (owner != null) {
52-
// GameProfile ownerProfile = owner.getGameProfile();
53-
//
54-
// final var face = new PlayerFaceElement(ownerProfile)
55-
// .size(new Vec2(12, 12))
56-
// .message(null);
57-
//
58-
// var ownerName = el.text(Component
59-
// .translatable(MachineTranslations.IDs.OWNER, ownerProfile.getName())
60-
// .withStyle(ChatFormatting.DARK_GRAY));
61-
//
62-
// int sizeDiffY = Mth.floor(face.getSize().y - ownerName.getSize().y) / 2;
63-
// ownerName.translate(new Vec2(0, sizeDiffY));
64-
//
65-
// var ownerTT = el.tooltip();
66-
// ownerTT.add(face);
67-
// ownerTT.append(el.spacer(4, 0));
68-
// ownerTT.append(ownerName);
69-
//
70-
// var box = el.box(ownerTT, BoxStyle.getTransparent());
71-
// tooltip.add(box);
72-
// }
73-
// }
74-
// }
75-
//
76-
// @Override
77-
// public ResourceLocation getUid() {
78-
// return UID;
79-
// }
80-
// };
81-
//
82-
// public static final IServerDataProvider<BlockAccessor> SERVER_DATA = new IServerDataProvider<>() {
83-
// @Override
84-
// public void appendServerData(CompoundTag tag, BlockAccessor blockAccessor) {
85-
// final var player = blockAccessor.getPlayer();
86-
// if (blockAccessor.getBlockEntity() instanceof BoundCompactMachineBlockEntity machine) {
87-
// CompactMachines.room(machine.connectedRoom()).ifPresent(inst -> {
88-
// tag.store("room_code", Codec.STRING, inst.code());
89-
// inst.getExistingData(CMDataAttachments.ROOM_OWNER).ifPresent(owner -> {
90-
// tag.store("owner", UUIDUtil.CODEC, owner);
91-
// });
92-
// });
93-
// }
94-
// }
95-
//
96-
// @Override
97-
// public ResourceLocation getUid() {
98-
// return UID;
99-
// }
100-
// };
101-
//}
1+
package dev.compactmods.machines.compat.jade;
2+
3+
import com.mojang.authlib.GameProfile;
4+
import com.mojang.serialization.Codec;
5+
import dev.compactmods.machines.api.CompactMachines;
6+
import dev.compactmods.machines.api.attachment.CMDataAttachments;
7+
import dev.compactmods.machines.i18n.MachineTranslations;
8+
import dev.compactmods.machines.machine.block.BoundCompactMachineBlockEntity;
9+
import net.minecraft.ChatFormatting;
10+
import net.minecraft.core.UUIDUtil;
11+
import net.minecraft.nbt.CompoundTag;
12+
import net.minecraft.network.chat.Component;
13+
import net.minecraft.resources.ResourceLocation;
14+
import net.minecraft.util.Mth;
15+
import snownee.jade.api.BlockAccessor;
16+
import snownee.jade.api.IBlockComponentProvider;
17+
import snownee.jade.api.IServerDataProvider;
18+
import snownee.jade.api.ITooltip;
19+
import snownee.jade.api.config.IPluginConfig;
20+
import snownee.jade.api.ui.BoxStyle;
21+
import snownee.jade.api.ui.JadeUI;
22+
23+
public class BoundMachineProviders {
24+
25+
public static final ResourceLocation UID = CompactMachines.modRL("bound_machine");
26+
27+
public static final IBlockComponentProvider COMPONENT_PROVIDER = new IBlockComponentProvider() {
28+
@Override
29+
public void appendTooltip(ITooltip tooltip, BlockAccessor blockAccessor, IPluginConfig config) {
30+
final var serverData = blockAccessor.getServerData();
31+
32+
serverData.getString("room_code").ifPresent(roomCode -> {
33+
final var boundTxt = JadeUI.text(Component
34+
.literal(roomCode)
35+
.withStyle(ChatFormatting.DARK_GRAY));
36+
37+
tooltip.add(boundTxt);
38+
});
39+
40+
if (config.get(CompactMachines.modRL("show_owner"))) {
41+
serverData.read("owner", UUIDUtil.CODEC).ifPresent(ownerID -> {
42+
43+
final var owner = blockAccessor.getLevel().getPlayerByUUID(ownerID);
44+
if (owner != null) {
45+
GameProfile ownerProfile = owner.getGameProfile();
46+
47+
final var face = new PlayerFaceElement(ownerProfile);
48+
49+
var ownerName = JadeUI.text(Component
50+
.translatable(MachineTranslations.IDs.OWNER, ownerProfile.getName())
51+
.withStyle(ChatFormatting.DARK_GRAY));
52+
53+
int sizeDiffY = Mth.floor(face.getHeight() - ownerName.getHeight()) / 2;
54+
// ownerName.(new Vec2(0, sizeDiffY));
55+
56+
var ownerTT = JadeUI.tooltip();
57+
ownerTT.add(face);
58+
ownerTT.append(JadeUI.spacer(2, 0));
59+
ownerTT.append(ownerName);
60+
61+
var box = JadeUI.box(ownerTT, BoxStyle.transparent());
62+
tooltip.add(box);
63+
}
64+
});
65+
}
66+
}
67+
68+
@Override
69+
public ResourceLocation getUid() {
70+
return UID;
71+
}
72+
};
73+
74+
public static final IServerDataProvider<BlockAccessor> SERVER_DATA = new IServerDataProvider<>() {
75+
@Override
76+
public void appendServerData(CompoundTag tag, BlockAccessor blockAccessor) {
77+
final var player = blockAccessor.getPlayer();
78+
if (blockAccessor.getBlockEntity() instanceof BoundCompactMachineBlockEntity machine) {
79+
CompactMachines.room(machine.connectedRoom()).ifPresent(inst -> {
80+
tag.store("room_code", Codec.STRING, inst.code());
81+
inst.getExistingData(CMDataAttachments.ROOM_OWNER).ifPresent(owner -> {
82+
tag.store("owner", UUIDUtil.CODEC, owner);
83+
});
84+
});
85+
}
86+
}
87+
88+
@Override
89+
public ResourceLocation getUid() {
90+
return UID;
91+
}
92+
};
93+
}
Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,26 @@
1-
//package dev.compactmods.machines.compat.jade;
2-
//
3-
//import dev.compactmods.machines.api.CompactMachines;
4-
//import dev.compactmods.machines.machine.block.BoundCompactMachineBlock;
5-
//import dev.compactmods.machines.machine.block.BoundCompactMachineBlockEntity;
6-
//import snownee.jade.api.IWailaClientRegistration;
7-
//import snownee.jade.api.IWailaCommonRegistration;
8-
//import snownee.jade.api.IWailaPlugin;
9-
//import snownee.jade.api.WailaPlugin;
10-
//
11-
//@WailaPlugin
12-
//public class CMJadePlugin implements IWailaPlugin {
13-
//
14-
// @Override
15-
// public void register(IWailaCommonRegistration registration) {
16-
// registration.registerBlockDataProvider(BoundMachineProviders.SERVER_DATA, BoundCompactMachineBlockEntity.class);
17-
// }
18-
//
19-
// @Override
20-
// public void registerClient(IWailaClientRegistration registration) {
21-
// registration.addConfig(CompactMachines.modRL("show_owner"), false);
22-
//
23-
// registration.registerBlockComponent(BoundMachineProviders.COMPONENT_PROVIDER, BoundCompactMachineBlock.class);
24-
// }
25-
//
26-
//}
1+
package dev.compactmods.machines.compat.jade;
2+
3+
import dev.compactmods.machines.api.CompactMachines;
4+
import dev.compactmods.machines.machine.block.BoundCompactMachineBlock;
5+
import dev.compactmods.machines.machine.block.BoundCompactMachineBlockEntity;
6+
import snownee.jade.api.IWailaClientRegistration;
7+
import snownee.jade.api.IWailaCommonRegistration;
8+
import snownee.jade.api.IWailaPlugin;
9+
import snownee.jade.api.WailaPlugin;
10+
11+
@WailaPlugin
12+
public class CMJadePlugin implements IWailaPlugin {
13+
14+
@Override
15+
public void register(IWailaCommonRegistration registration) {
16+
registration.registerBlockDataProvider(BoundMachineProviders.SERVER_DATA, BoundCompactMachineBlockEntity.class);
17+
}
18+
19+
@Override
20+
public void registerClient(IWailaClientRegistration registration) {
21+
registration.addConfig(CompactMachines.modRL("show_owner"), false);
22+
23+
registration.registerBlockComponent(BoundMachineProviders.COMPONENT_PROVIDER, BoundCompactMachineBlock.class);
24+
}
25+
26+
}
Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,29 @@
1-
//package dev.compactmods.machines.compat.jade;
2-
//
3-
//import com.mojang.authlib.GameProfile;
4-
//import dev.compactmods.machines.client.render.CMPlayerFaceRenderer;
5-
//import net.minecraft.client.gui.GuiGraphics;
6-
//import net.minecraft.world.phys.Vec2;
7-
//import snownee.jade.api.ui.Element;
8-
//
9-
//public class PlayerFaceElement extends Element {
10-
//
11-
// private final GameProfile profile;
12-
//
13-
// public PlayerFaceElement(GameProfile profile) {
14-
// this.profile = profile;
15-
// this.size = new Vec2(12, 12);
16-
// this.translation = Vec2.ZERO;
17-
// this.message = null;
18-
// }
19-
//
20-
// @Override
21-
// public Vec2 getSize() {
22-
// return size;
23-
// }
24-
//
25-
// @Override
26-
// public void render(GuiGraphics guiGraphics, float x, float y, float xMax, float yMax) {
27-
// CMPlayerFaceRenderer.render(profile, guiGraphics, (int) x, (int) y, (int) size.x);
28-
// }
29-
//}
1+
package dev.compactmods.machines.compat.jade;
2+
3+
import com.mojang.authlib.GameProfile;
4+
import dev.compactmods.machines.client.render.CMPlayerFaceRenderer;
5+
import net.minecraft.client.gui.GuiGraphics;
6+
import net.minecraft.network.chat.Component;
7+
import org.jetbrains.annotations.Nullable;
8+
import snownee.jade.api.ui.Element;
9+
10+
public class PlayerFaceElement extends Element {
11+
12+
private final GameProfile profile;
13+
14+
public PlayerFaceElement(GameProfile profile) {
15+
this.profile = profile;
16+
this.width = 12;
17+
this.height = 12;
18+
}
19+
20+
@Override
21+
public @Nullable Component getNarration() {
22+
return null;
23+
}
24+
25+
@Override
26+
public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTicks) {
27+
CMPlayerFaceRenderer.render(profile, guiGraphics, this.getX(), this.getY(), this.height);
28+
}
29+
}

0 commit comments

Comments
 (0)