提交
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
package thaumicenergistics.common.items;
|
||||
|
||||
import net.minecraft.core.GlobalPos;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.TooltipFlag;
|
||||
import appeng.api.features.IGridLinkableHandler;
|
||||
import appeng.api.ids.AEComponents;
|
||||
import appeng.core.localization.GuiText;
|
||||
import appeng.core.localization.Tooltips;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class ItemGolemWirelessBackpack extends Item {
|
||||
|
||||
public static final IGridLinkableHandler LINKABLE_HANDLER = new LinkableHandler();
|
||||
|
||||
public ItemGolemWirelessBackpack() {
|
||||
super(new Item.Properties().stacksTo(1).durability(0));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void appendHoverText(ItemStack stack, TooltipContext context, List<Component> lines, TooltipFlag flag) {
|
||||
super.appendHoverText(stack, context, lines, flag);
|
||||
if (getLinkedPosition(stack) == null) {
|
||||
lines.add(Tooltips.of(GuiText.Unlinked, Tooltips.RED));
|
||||
} else {
|
||||
lines.add(Tooltips.of(GuiText.Linked, Tooltips.GREEN));
|
||||
}
|
||||
}
|
||||
|
||||
public GlobalPos getLinkedPosition(ItemStack stack) {
|
||||
return stack.get(AEComponents.WIRELESS_LINK_TARGET);
|
||||
}
|
||||
|
||||
public static boolean isLinked(ItemStack stack) {
|
||||
return stack.get(AEComponents.WIRELESS_LINK_TARGET) != null;
|
||||
}
|
||||
|
||||
private static class LinkableHandler implements IGridLinkableHandler {
|
||||
@Override
|
||||
public boolean canLink(ItemStack stack) {
|
||||
return stack.getItem() instanceof ItemGolemWirelessBackpack;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void link(ItemStack stack, GlobalPos pos) {
|
||||
stack.set(AEComponents.WIRELESS_LINK_TARGET, pos);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unlink(ItemStack stack) {
|
||||
stack.remove(AEComponents.WIRELESS_LINK_TARGET);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user