more rendering options to New Chunks (#142)
This commit is contained in:
@@ -1,7 +1,6 @@
|
|||||||
package anticope.rejects.modules;
|
package anticope.rejects.modules;
|
||||||
|
|
||||||
import anticope.rejects.MeteorRejectsAddon;
|
import anticope.rejects.MeteorRejectsAddon;
|
||||||
import meteordevelopment.orbit.EventHandler;
|
|
||||||
import meteordevelopment.meteorclient.events.packets.PacketEvent;
|
import meteordevelopment.meteorclient.events.packets.PacketEvent;
|
||||||
import meteordevelopment.meteorclient.events.render.Render3DEvent;
|
import meteordevelopment.meteorclient.events.render.Render3DEvent;
|
||||||
import meteordevelopment.meteorclient.renderer.ShapeMode;
|
import meteordevelopment.meteorclient.renderer.ShapeMode;
|
||||||
@@ -9,10 +8,16 @@ import meteordevelopment.meteorclient.settings.*;
|
|||||||
import meteordevelopment.meteorclient.systems.modules.Module;
|
import meteordevelopment.meteorclient.systems.modules.Module;
|
||||||
import meteordevelopment.meteorclient.utils.render.color.Color;
|
import meteordevelopment.meteorclient.utils.render.color.Color;
|
||||||
import meteordevelopment.meteorclient.utils.render.color.SettingColor;
|
import meteordevelopment.meteorclient.utils.render.color.SettingColor;
|
||||||
|
import meteordevelopment.orbit.EventHandler;
|
||||||
import net.minecraft.fluid.FluidState;
|
import net.minecraft.fluid.FluidState;
|
||||||
import net.minecraft.nbt.NbtCompound;
|
import net.minecraft.nbt.NbtCompound;
|
||||||
import net.minecraft.network.packet.s2c.play.*;
|
import net.minecraft.network.packet.s2c.play.BlockUpdateS2CPacket;
|
||||||
import net.minecraft.util.math.*;
|
import net.minecraft.network.packet.s2c.play.ChunkDataS2CPacket;
|
||||||
|
import net.minecraft.network.packet.s2c.play.ChunkDeltaUpdateS2CPacket;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.util.math.Box;
|
||||||
|
import net.minecraft.util.math.ChunkPos;
|
||||||
|
import net.minecraft.util.math.Direction;
|
||||||
import net.minecraft.world.chunk.WorldChunk;
|
import net.minecraft.world.chunk.WorldChunk;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@@ -23,6 +28,9 @@ import java.util.*;
|
|||||||
public class NewChunks extends Module {
|
public class NewChunks extends Module {
|
||||||
|
|
||||||
private final SettingGroup sgGeneral = settings.getDefaultGroup();
|
private final SettingGroup sgGeneral = settings.getDefaultGroup();
|
||||||
|
private final SettingGroup sgRender = settings.createGroup("Render");
|
||||||
|
|
||||||
|
// general
|
||||||
|
|
||||||
private final Setting<Boolean> remove = sgGeneral.add(new BoolSetting.Builder()
|
private final Setting<Boolean> remove = sgGeneral.add(new BoolSetting.Builder()
|
||||||
.name("remove")
|
.name("remove")
|
||||||
@@ -31,22 +39,57 @@ public class NewChunks extends Module {
|
|||||||
.build()
|
.build()
|
||||||
);
|
);
|
||||||
|
|
||||||
private final Setting<SettingColor> newChunksColor = sgGeneral.add(new ColorSetting.Builder()
|
// render
|
||||||
.name("new-chunks-color")
|
public final Setting<Integer> renderHeight = sgRender.add(new IntSetting.Builder()
|
||||||
|
.name("render-height")
|
||||||
|
.description("The height at which new chunks will be rendered")
|
||||||
|
.defaultValue(0)
|
||||||
|
.min(-64)
|
||||||
|
.sliderRange(-64,319)
|
||||||
|
.build()
|
||||||
|
);
|
||||||
|
|
||||||
|
private final Setting<ShapeMode> shapeMode = sgRender.add(new EnumSetting.Builder<ShapeMode>()
|
||||||
|
.name("shape-mode")
|
||||||
|
.description("How the shapes are rendered.")
|
||||||
|
.defaultValue(ShapeMode.Both)
|
||||||
|
.build()
|
||||||
|
);
|
||||||
|
|
||||||
|
private final Setting<SettingColor> newChunksSideColor = sgRender.add(new ColorSetting.Builder()
|
||||||
|
.name("new-chunks-side-color")
|
||||||
.description("Color of the chunks that are (most likely) completely new.")
|
.description("Color of the chunks that are (most likely) completely new.")
|
||||||
.defaultValue(new SettingColor(204, 153, 217))
|
.defaultValue(new SettingColor(255, 0, 0, 75))
|
||||||
|
.visible(() -> shapeMode.get() == ShapeMode.Sides || shapeMode.get() == ShapeMode.Both)
|
||||||
.build()
|
.build()
|
||||||
);
|
);
|
||||||
|
|
||||||
private final Setting<SettingColor> oldChunksColor = sgGeneral.add(new ColorSetting.Builder()
|
private final Setting<SettingColor> oldChunksSideColor = sgRender.add(new ColorSetting.Builder()
|
||||||
.name("old-chunks-color")
|
.name("old-chunks-side-color")
|
||||||
.description("Color of the chunks that have (most likely) been loaded before.")
|
.description("Color of the chunks that have (most likely) been loaded before.")
|
||||||
.defaultValue(new SettingColor(230, 51, 51))
|
.defaultValue(new SettingColor(0, 255, 0, 75))
|
||||||
|
.visible(() -> shapeMode.get() == ShapeMode.Sides || shapeMode.get() == ShapeMode.Both)
|
||||||
.build()
|
.build()
|
||||||
);
|
);
|
||||||
|
|
||||||
private Set<ChunkPos> newChunks = Collections.synchronizedSet(new HashSet<>());
|
private final Setting<SettingColor> newChunksLineColor = sgRender.add(new ColorSetting.Builder()
|
||||||
private Set<ChunkPos> oldChunks = Collections.synchronizedSet(new HashSet<>());
|
.name("new-chunks-line-color")
|
||||||
|
.description("Color of the chunks that are (most likely) completely new.")
|
||||||
|
.defaultValue(new SettingColor(255, 0, 0, 255))
|
||||||
|
.visible(() -> shapeMode.get() == ShapeMode.Lines || shapeMode.get() == ShapeMode.Both)
|
||||||
|
.build()
|
||||||
|
);
|
||||||
|
|
||||||
|
private final Setting<SettingColor> oldChunksLineColor = sgRender.add(new ColorSetting.Builder()
|
||||||
|
.name("old-chunks-line-color")
|
||||||
|
.description("Color of the chunks that have (most likely) been loaded before.")
|
||||||
|
.defaultValue(new SettingColor(0, 255, 0, 255))
|
||||||
|
.visible(() -> shapeMode.get() == ShapeMode.Lines || shapeMode.get() == ShapeMode.Both)
|
||||||
|
.build()
|
||||||
|
);
|
||||||
|
|
||||||
|
private final Set<ChunkPos> newChunks = Collections.synchronizedSet(new HashSet<>());
|
||||||
|
private final Set<ChunkPos> oldChunks = Collections.synchronizedSet(new HashSet<>());
|
||||||
private static final Direction[] searchDirs = new Direction[] { Direction.EAST, Direction.NORTH, Direction.WEST, Direction.SOUTH, Direction.UP };
|
private static final Direction[] searchDirs = new Direction[] { Direction.EAST, Direction.NORTH, Direction.WEST, Direction.SOUTH, Direction.UP };
|
||||||
|
|
||||||
public NewChunks() {
|
public NewChunks() {
|
||||||
@@ -64,32 +107,30 @@ public class NewChunks extends Module {
|
|||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
private void onRender(Render3DEvent event) {
|
private void onRender(Render3DEvent event) {
|
||||||
if (newChunksColor.get().a > 5) {
|
if (newChunksLineColor.get().a > 5 || newChunksSideColor.get().a > 5) {
|
||||||
synchronized (newChunks) {
|
synchronized (newChunks) {
|
||||||
for (ChunkPos c : newChunks) {
|
for (ChunkPos c : newChunks) {
|
||||||
if (mc.getCameraEntity().getBlockPos().isWithinDistance(c.getStartPos(), 1024)) {
|
if (mc.getCameraEntity().getBlockPos().isWithinDistance(c.getStartPos(), 1024)) {
|
||||||
drawBoxOutline(new Box(c.getStartPos(), c.getStartPos().add(16, 0, 16)), newChunksColor.get(), event);
|
render(new Box(c.getStartPos(), c.getStartPos().add(16, renderHeight.get(), 16)), newChunksSideColor.get(), newChunksLineColor.get(), shapeMode.get(), event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (oldChunksColor.get().a > 5){
|
if (oldChunksLineColor.get().a > 5 || oldChunksSideColor.get().a > 5){
|
||||||
synchronized (oldChunks) {
|
synchronized (oldChunks) {
|
||||||
for (ChunkPos c : oldChunks) {
|
for (ChunkPos c : oldChunks) {
|
||||||
if (mc.getCameraEntity().getBlockPos().isWithinDistance(c.getStartPos(), 1024)) {
|
if (mc.getCameraEntity().getBlockPos().isWithinDistance(c.getStartPos(), 1024)) {
|
||||||
drawBoxOutline(new Box(c.getStartPos(), c.getStartPos().add(16, 0, 16)), oldChunksColor.get(), event);
|
render(new Box(c.getStartPos(), c.getStartPos().add(16, renderHeight.get(), 16)), oldChunksSideColor.get(), oldChunksLineColor.get(), shapeMode.get(), event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void drawBoxOutline(Box box, Color color, Render3DEvent event) {
|
private void render(Box box, Color sides, Color lines, ShapeMode shapeMode, Render3DEvent event) {
|
||||||
event.renderer.box(
|
event.renderer.box(
|
||||||
box.minX, box.minY, box.minZ, box.maxX, box.maxY, box.maxZ,
|
box.minX, box.minY, box.minZ, box.maxX, box.maxY, box.maxZ, sides, lines, shapeMode, 0);
|
||||||
new Color(0,0,0,0), color, ShapeMode.Lines, 0
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
|
|||||||
Reference in New Issue
Block a user