package com.matt.forgehax.mods; import com.matt.forgehax.asm.events.DrawBlockBoundingBoxEvent; import com.matt.forgehax.util.command.Setting; import com.matt.forgehax.util.mod.Category; import com.matt.forgehax.util.mod.ToggleMod; import com.matt.forgehax.util.mod.loader.RegisterMod; import net.minecraft.client.renderer.GlStateManager; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; @RegisterMod public class BlockHighlightMod extends ToggleMod { private final Setting<Integer> alpha = getCommandStub() .builders() .<Integer>newSettingBuilder() .name("alpha") .description("alpha") .min(0) .max(255) .defaultTo(255) .build(); private final Setting<Integer> red = getCommandStub() .builders() .<Integer>newSettingBuilder() .name("red") .description("red") .min(0) .max(255) .defaultTo(0) .build(); private final Setting<Integer> green = getCommandStub() .builders() .<Integer>newSettingBuilder() .name("green") .description("green") .min(0) .max(255) .defaultTo(0) .build(); private final Setting<Integer> blue = getCommandStub() .builders() .<Integer>newSettingBuilder() .name("blue") .description("blue") .min(0) .max(255) .defaultTo(0) .build(); private final Setting<Float> width = getCommandStub() .builders() .<Float>newSettingBuilder() .name("width") .description("line width") .min(0.f) .defaultTo(5.f) .build(); public BlockHighlightMod() { super( Category.RENDER, "BlockHighlight", false, "Make selected block bounding box more visible"); } private float toFloat(int colorVal) { return colorVal / 255.f; } @SubscribeEvent public void onRenderBoxPre(DrawBlockBoundingBoxEvent.Pre event) { GlStateManager.disableDepth(); GlStateManager.glLineWidth(width.get()); event.alpha = toFloat(alpha.get()); event.red = toFloat(red.get()); event.green = toFloat(green.get()); event.blue = toFloat(blue.get()); } @SubscribeEvent public void onRenderBoxPost(DrawBlockBoundingBoxEvent.Post event) { GlStateManager.enableDepth(); } }