Skip to content
This repository has been archived by the owner on Oct 4, 2024. It is now read-only.

Commit

Permalink
finished probe info for mass storages
Browse files Browse the repository at this point in the history
  • Loading branch information
Trinsdar committed Nov 6, 2023
1 parent a77f892 commit d7cf846
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import io.github.gregtechintergalactical.gtcore.datagen.GTCoreBlockTagProvider;
import io.github.gregtechintergalactical.gtcore.datagen.GTCoreItemTagProvider;
import io.github.gregtechintergalactical.gtcore.datagen.GTCoreLang;
import io.github.gregtechintergalactical.gtcore.integration.top.MassStorageProvider;
import io.github.gregtechintergalactical.gtcore.loader.crafting.CircuitRecipes;
import io.github.gregtechintergalactical.gtcore.loader.crafting.MachineRecipes;
import io.github.gregtechintergalactical.gtcore.loader.crafting.MaterialRecipes;
Expand All @@ -24,6 +25,7 @@
import io.github.gregtechintergalactical.gtcore.tree.RubberTreeWorldGen;
import muramasa.antimatter.AntimatterAPI;
import muramasa.antimatter.AntimatterMod;
import muramasa.antimatter.Ref;
import muramasa.antimatter.data.AntimatterDefaultTools;
import muramasa.antimatter.data.AntimatterMaterials;
import muramasa.antimatter.datagen.AntimatterDynamics;
Expand Down Expand Up @@ -92,6 +94,9 @@ public void onRegistrationEvent(RegistrationEvent event, Side side) {
if (side.isClient()) RecipeMaps.clientMaps();
RubberTree.init();
RubberTreeWorldGen.init();
if (AntimatterAPI.isModLoaded(Ref.MOD_TOP)){
MassStorageProvider.createTopProvider();
}
AntimatterNetwork.NETWORK.registerPacket(NetworkDirection.CLIENT_TO_SERVER, SYNC_ID, MessageCraftingSync.HANDLER, MessageCraftingSync.class);
AntimatterNetwork.NETWORK.registerPacket(NetworkDirection.SERVER_TO_CLIENT, INV_SYNC_ID, MessageInventorySync.HANDLER, MessageInventorySync.class);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,24 @@
import io.github.gregtechintergalactical.gtcore.GTCore;
import io.github.gregtechintergalactical.gtcore.blockentity.BlockEntityMassStorage;
import io.github.gregtechintergalactical.gtcore.data.SlotTypes;
import mcjty.theoneprobe.api.CompoundText;
import mcjty.theoneprobe.api.ElementAlignment;
import mcjty.theoneprobe.api.IProbeHitData;
import mcjty.theoneprobe.api.IProbeInfo;
import mcjty.theoneprobe.api.IProbeInfoProvider;
import mcjty.theoneprobe.api.ProbeMode;
import mcjty.theoneprobe.apiimpl.elements.ElementHorizontal;
import mcjty.theoneprobe.apiimpl.elements.ElementItemLabel;
import mcjty.theoneprobe.apiimpl.elements.ElementItemStack;
import mcjty.theoneprobe.apiimpl.elements.ElementVertical;
import mcjty.theoneprobe.apiimpl.styles.ItemStyle;
import mcjty.theoneprobe.apiimpl.styles.LayoutStyle;
import mcjty.theoneprobe.config.Config;
import muramasa.antimatter.gui.SlotType;
import muramasa.antimatter.integration.top.TheOneProbePlugin;
import net.minecraft.ChatFormatting;
import net.minecraft.network.chat.MutableComponent;
import net.minecraft.network.chat.TextComponent;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
Expand All @@ -19,27 +31,35 @@
import java.awt.*;

public class MassStorageProvider implements IProbeInfoProvider {

public static void createTopProvider(){
TheOneProbePlugin.addProbeInfoProvider(MassStorageProvider::new);
}

@Override
public ResourceLocation getID() {
return new ResourceLocation(GTCore.ID, "mass_Storage");
return new ResourceLocation(GTCore.ID, "mass_storage");
}

@Override
public void addProbeInfo(ProbeMode probeMode, IProbeInfo iProbeInfo, Player player, Level level, BlockState blockState, IProbeHitData iProbeHitData) {
BlockEntity blockEntity = level.getBlockEntity(iProbeHitData.getPos());
if (blockEntity instanceof BlockEntityMassStorage massStorage){
var handler = massStorage.itemHandler.map(i -> i.getHandler(SlotTypes.UNLIMITED)).orElse(null);
var handler = massStorage.itemHandler.map(i -> {
var h = i.getHandler(SlotTypes.UNLIMITED);
if (h.getItem(0).isEmpty()) return i.getHandler(SlotType.DISPLAY);
return h;
}).orElse(null);
if (handler != null){
iProbeInfo.getElements().removeIf(iElement -> iElement instanceof ElementVertical);
ElementVertical vertical = new ElementVertical();
ElementVertical elementVertical = new ElementVertical(iProbeInfo.defaultLayoutStyle().spacing(2).leftPadding(7).rightPadding(7));
elementVertical.getStyle().borderColor(Color.CYAN.darker().getRGB());
IProbeInfo vertical = iProbeInfo.vertical(iProbeInfo.defaultLayoutStyle().borderColor(Config.chestContentsBorderColor).spacing(0));
IProbeInfo horizontal = vertical.horizontal((new LayoutStyle()).spacing(10).alignment(ElementAlignment.ALIGN_CENTER));
ItemStack stack = handler.getItem(0);
if (stack.getCount() > 0){
elementVertical.element(new ElementItemStack(stack, iProbeInfo.defaultItemStyle()));
MutableComponent text = new TextComponent("").append(stack.getHoverName());
if (stack.hasCustomHoverName()) text.withStyle(ChatFormatting.ITALIC);
horizontal.item(stack, new ItemStyle().width(16).height(16)).text(CompoundText.create().text(text));
}
if (!elementVertical.getElements().isEmpty()) vertical.element(elementVertical);
vertical.element(new ElementVertical(iProbeInfo.defaultLayoutStyle().topPadding(4)));
}
}
}
Expand Down

0 comments on commit d7cf846

Please sign in to comment.