package com.arslaancodes.arslaansmagichax.modules.impl; import com.arslaancodes.arslaansmagichax.modules.Category; import com.arslaancodes.arslaansmagichax.modules.Module; import com.arslaancodes.arslaansmagichax.modules.settings.ModeSetting; import java.util.ArrayList; import java.util.List; import java.util.Objects; import net.minecraft.network.chat.Component; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.BlockState; public class Xray extends Module { private List interestingBlocks = new ArrayList<>(); public Xray() { super("Xray", "Allows you to see through blocks.", -1, Category.RENDER); // Add ores, spawners, liquids, etc. interestingBlocks.add(Blocks.DIAMOND_ORE.defaultBlockState()); interestingBlocks.add(Blocks.DEEPSLATE_DIAMOND_ORE.defaultBlockState()); interestingBlocks.add(Blocks.GOLD_ORE.defaultBlockState()); interestingBlocks.add(Blocks.DEEPSLATE_GOLD_ORE.defaultBlockState()); interestingBlocks.add(Blocks.IRON_ORE.defaultBlockState()); interestingBlocks.add(Blocks.DEEPSLATE_IRON_ORE.defaultBlockState()); interestingBlocks.add(Blocks.REDSTONE_ORE.defaultBlockState()); interestingBlocks.add(Blocks.DEEPSLATE_REDSTONE_ORE.defaultBlockState()); interestingBlocks.add(Blocks.LAPIS_ORE.defaultBlockState()); interestingBlocks.add(Blocks.DEEPSLATE_LAPIS_ORE.defaultBlockState()); interestingBlocks.add(Blocks.EMERALD_ORE.defaultBlockState()); interestingBlocks.add(Blocks.DEEPSLATE_EMERALD_ORE.defaultBlockState()); interestingBlocks.add(Blocks.COAL_ORE.defaultBlockState()); interestingBlocks.add(Blocks.DEEPSLATE_COAL_ORE.defaultBlockState()); interestingBlocks.add(Blocks.COPPER_ORE.defaultBlockState()); interestingBlocks.add(Blocks.DEEPSLATE_COPPER_ORE.defaultBlockState()); interestingBlocks.add(Blocks.NETHER_QUARTZ_ORE.defaultBlockState()); interestingBlocks.add(Blocks.NETHER_GOLD_ORE.defaultBlockState()); interestingBlocks.add(Blocks.SPAWNER.defaultBlockState()); interestingBlocks.add(Blocks.CHEST.defaultBlockState()); interestingBlocks.add(Blocks.ANCIENT_DEBRIS.defaultBlockState()); interestingBlocks.add(Blocks.GLOWSTONE.defaultBlockState()); interestingBlocks.add(Blocks.WATER.defaultBlockState()); interestingBlocks.add(Blocks.LAVA.defaultBlockState()); } @Override protected void onEnable() { if (mc.levelRenderer != null) mc.levelRenderer.allChanged(); if (mc.player != null) mc.player.displayClientMessage(Component.literal("[Xray] It is recommended to use this hack with Fullbright for a better experience."), false); } @Override protected void onDisable() { if (mc.levelRenderer != null) mc.levelRenderer.allChanged(); } public boolean isInterestingBlock(BlockState state) { return interestingBlocks.contains(state); } // xraying is handled in BlockMixin.java }