Skip to content

Commit

Permalink
Fix WTHIT compatibility (#124)
Browse files Browse the repository at this point in the history
* fix wthit compat

* Update polymer-core/build.gradle
  • Loading branch information
deirn committed May 26, 2024
1 parent f1a3ab4 commit 3d7d9bf
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 5 deletions.
2 changes: 1 addition & 1 deletion polymer-core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ dependencies {


modCompileOnly /*modLocalRuntime*/("maven.modrinth:jade:14.1.0+fabric")
modCompileOnly /*modLocalRuntime*/("mcp.mobius.waila:wthit:fabric-11.1.3")
modCompileOnly /*modLocalRuntime*/("mcp.mobius.waila:wthit:fabric-11.2.0")

modCompileOnly /*modLocalRuntime*/ ("me.shedaniel:RoughlyEnoughItems-fabric:15.0.728")
modCompileOnly /*modLocalRuntime*/("dev.emi:emi-fabric:1.1.6+1.20.6")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,14 +25,15 @@

@ApiStatus.Internal
public class WthitCompatibility implements IWailaPlugin {
private static final Identifier BLOCK_STATES = Identifier.tryParse("waila:show_states");
private static final Identifier BLOCK_STATES = Identifier.tryParse("attribute.block_state");

@Override
public void register(IRegistrar registrar) {
registrar.addRedirect(BlockOverride.INSTANCE, Block.class, 400);
registrar.addComponent(BlockOverride.INSTANCE, TooltipPosition.HEAD, Block.class, 100000);
registrar.addComponent(BlockOverride.INSTANCE, TooltipPosition.BODY, Block.class, 100000);
registrar.addComponent(BlockOverride.INSTANCE, TooltipPosition.TAIL, Block.class, 100000);
registrar.addOverride(BlockOverride.INSTANCE, Block.class, 1000);
registrar.addIcon(BlockOverride.INSTANCE, Block.class, 500);

registrar.addComponent(ItemEntityOverride.INSTANCE, TooltipPosition.HEAD, ItemEntity.class, 100000);
registrar.addComponent(ItemEntityOverride.INSTANCE, TooltipPosition.TAIL, ItemEntity.class, 100000);
Expand All @@ -56,7 +57,13 @@ private static class BlockOverride implements IBlockComponentProvider {
public static final BlockOverride INSTANCE = new BlockOverride();

@Override
public ITooltipComponent getIcon(IBlockAccessor accessor, IPluginConfig config) {
public @Nullable ITargetRedirector.Result redirect(ITargetRedirector redirect, IBlockAccessor accessor, IPluginConfig config) {
if (InternalClientRegistry.getBlockAt(accessor.getPosition()) != ClientPolymerBlock.NONE_STATE) return redirect.toSelf();
return null;
}

@Override
public @Nullable ITooltipComponent getIcon(IBlockAccessor accessor, IPluginConfig config) {
var block = InternalClientRegistry.getBlockAt(accessor.getPosition());
if (block != ClientPolymerBlock.NONE_STATE) {
BlockState state = accessor.getWorld().getBlockState(accessor.getPosition());
Expand All @@ -73,7 +80,7 @@ public ITooltipComponent getIcon(IBlockAccessor accessor, IPluginConfig config)

return new ItemComponent(itemStack);
}
return EmptyComponent.INSTANCE;
return null;
}

@Override
Expand Down Expand Up @@ -163,6 +170,12 @@ public void appendTail(ITooltip tooltip, IEntityAccessor accessor, IPluginConfig
private static final class EntityOverride implements IEntityComponentProvider {
public static final EntityOverride INSTANCE = new EntityOverride();

@Override
public @Nullable ITargetRedirector.Result redirect(ITargetRedirector redirect, IEntityAccessor accessor, IPluginConfig config) {
if (PolymerClientUtils.getEntityType(accessor.getEntity()) != null) return redirect.toSelf();
return null;
}

@Override
public void appendHead(ITooltip tooltip, IEntityAccessor accessor, IPluginConfig config) {
if (config.getBoolean(WailaConstants.CONFIG_SHOW_REGISTRY)) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package eu.pb4.polymer.core.mixin.client.compat;

import eu.pb4.polymer.core.api.client.ClientPolymerBlock;
import eu.pb4.polymer.core.impl.client.InternalClientRegistry;
import mcp.mobius.waila.api.IBlockAccessor;
import mcp.mobius.waila.api.IPluginConfig;
import mcp.mobius.waila.api.ITooltip;
import mcp.mobius.waila.plugin.harvest.provider.HarvestProvider;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

@Mixin(HarvestProvider.class)
public class wthit_HarvestProviderMixin {

@Inject(method = "appendBody", at = @At("HEAD"), remap = false, cancellable = true)
private void polymer$disableHarvestTooltip(ITooltip tooltip, IBlockAccessor accessor, IPluginConfig config, CallbackInfo ci) {
if (InternalClientRegistry.getBlockAt(accessor.getPosition()) != ClientPolymerBlock.NONE_STATE) ci.cancel();
}

}
1 change: 1 addition & 0 deletions polymer-core/src/main/resources/polymer-core.mixins.json
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,7 @@
"client.compat.emi_ItemStackMixin",
"client.compat.jei_StackHelperMixin",
"client.compat.rei_ItemEntryDefinitionMixin",
"client.compat.wthit_HarvestProviderMixin",
"client.entity.EntityMixin",
"client.item.ItemGroupMixin",
"client.item.ItemGroupsMixin",
Expand Down

0 comments on commit 3d7d9bf

Please sign in to comment.