Skip to content

Commit bae72d3

Browse files
committed
added chunk borders
1 parent 0f5592b commit bae72d3

File tree

4 files changed

+140
-1
lines changed

4 files changed

+140
-1
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ Better Place || Allows you to place blocks in weird ways
3232
Bayblade || People see you spin
3333
Bonemeal Aura || Automatically bonemeal crops around the player
3434
Chat Encryption || Encrypts messages using a user-provided key
35+
Chunk Borders || Customizable chunk border rendering.
3536
Condition Toggle || Toggles modules based on conditions
3637
Confetti || Changes the color of totem pop particles
3738
Game Settings || Allows you to change some game settings

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@ yarn_mappings=1.21.11+build.3
88
loader_version=0.18.2
99

1010
# Mod Properties
11-
mod_version=2.6.10
11+
mod_version=2.6.11
1212
maven_group=cqb13.NumbyHack
1313
archives_base_name=Numby-Hack

src/main/java/cqb13/NumbyHack/NumbyHack.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ public void onInitialize() {
4949
modules.add(new BonemealAura());
5050
modules.add(new CarpetPlacer());
5151
modules.add(new ChatEncryption());
52+
modules.add(new ChunkBorders());
5253
modules.add(new ConditionToggle());
5354
modules.add(new Confetti());
5455
modules.add(new LogOutSpots());
Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
package cqb13.NumbyHack.modules.general;
2+
3+
import cqb13.NumbyHack.NumbyHack;
4+
import meteordevelopment.meteorclient.events.render.Render3DEvent;
5+
import meteordevelopment.meteorclient.renderer.ShapeMode;
6+
import meteordevelopment.meteorclient.settings.ColorSetting;
7+
import meteordevelopment.meteorclient.settings.EnumSetting;
8+
import meteordevelopment.meteorclient.settings.IntSetting;
9+
import meteordevelopment.meteorclient.settings.Setting;
10+
import meteordevelopment.meteorclient.settings.SettingGroup;
11+
import meteordevelopment.meteorclient.systems.modules.Module;
12+
import meteordevelopment.meteorclient.utils.render.color.SettingColor;
13+
import meteordevelopment.orbit.EventHandler;
14+
import net.minecraft.util.math.ChunkPos;
15+
16+
public class ChunkBorders extends Module {
17+
private final SettingGroup sgGeneral = settings.getDefaultGroup();
18+
private final SettingGroup sgRender = settings.createGroup("Render");
19+
20+
private final Setting<Integer> range = sgGeneral.add(new IntSetting.Builder()
21+
.name("chunk-radius")
22+
.description("How many chunks around the current chunk to render borders.")
23+
.defaultValue(1)
24+
.min(0)
25+
.sliderRange(0, 32)
26+
.build());
27+
28+
// Render
29+
private final Setting<ShapeMode> shapeMode = sgRender.add(new EnumSetting.Builder<ShapeMode>()
30+
.name("shape-mode")
31+
.description("How the shapes are rendered.")
32+
.defaultValue(ShapeMode.Both)
33+
.build());
34+
35+
private final Setting<SettingColor> sideColor = sgRender.add(new ColorSetting.Builder()
36+
.name("side-color")
37+
.description("The color of the sides of the blocks being rendered.")
38+
.defaultValue(new SettingColor(146, 188, 98, 75))
39+
.build());
40+
41+
private final Setting<SettingColor> lineColor = sgRender.add(new ColorSetting.Builder()
42+
.name("line-color")
43+
.description("The color of the lines of the blocks being rendered.")
44+
.defaultValue(new SettingColor(146, 188, 98, 255))
45+
.build());
46+
47+
private final Setting<RenderPosition> renderPosition = sgRender.add(new EnumSetting.Builder<RenderPosition>()
48+
.name("render-position")
49+
.description("The Y level at which chunk borders begin to render")
50+
.defaultValue(RenderPosition.PlayerHeight)
51+
.build());
52+
53+
private final Setting<Integer> playerHeightOffset = sgRender.add(new IntSetting.Builder()
54+
.name("player-height-offset")
55+
.description("The vertical offset from player height to start rendering")
56+
.defaultValue(0)
57+
.sliderRange(-384, 384)
58+
.visible(() -> renderPosition.get() == RenderPosition.PlayerHeightOffset)
59+
.build());
60+
61+
private final Setting<Integer> customY = sgRender.add(new IntSetting.Builder()
62+
.name("custom-y")
63+
.description("The Y level aat which chunk borders begin to render")
64+
.defaultValue(64)
65+
.min(0)
66+
.sliderRange(0, 384)
67+
.visible(() -> renderPosition.get() == RenderPosition.Custom)
68+
.build());
69+
70+
private final Setting<Integer> height = sgRender.add(new IntSetting.Builder()
71+
.name("chunk-height")
72+
.description("Height of the chunk borders")
73+
.defaultValue(0)
74+
.min(0)
75+
.sliderRange(-384, 384)
76+
.build());
77+
78+
public ChunkBorders() {
79+
super(NumbyHack.CATEGORY, "chunk-borders", "Customizable chunk border rendering.");
80+
}
81+
82+
@EventHandler
83+
private void onRender(Render3DEvent event) {
84+
if (mc.world == null || mc.player == null)
85+
return;
86+
87+
ChunkPos center = new ChunkPos(mc.player.getBlockPos());
88+
int r = range.get();
89+
90+
double y;
91+
switch (renderPosition.get()) {
92+
case RenderPosition.PlayerHeight:
93+
y = mc.player.getY();
94+
break;
95+
case RenderPosition.PlayerHeightOffset:
96+
y = mc.player.getY() + playerHeightOffset.get();
97+
break;
98+
case RenderPosition.WorldBottom:
99+
y = -64;
100+
break;
101+
case RenderPosition.Custom:
102+
y = customY.get();
103+
break;
104+
default:
105+
y = 0;
106+
break;
107+
}
108+
109+
double endY = y + height.get();
110+
111+
for (int dx = -r; dx <= r; dx++) {
112+
for (int dz = -r; dz <= r; dz++) {
113+
ChunkPos chunk = new ChunkPos(
114+
center.x + dx,
115+
center.z + dz);
116+
117+
int startX = chunk.getStartX();
118+
int startZ = chunk.getStartZ();
119+
120+
event.renderer.box(
121+
startX, y, startZ,
122+
startX + 16, endY, startZ + 16,
123+
sideColor.get(),
124+
lineColor.get(),
125+
shapeMode.get(),
126+
0);
127+
}
128+
}
129+
}
130+
131+
private enum RenderPosition {
132+
PlayerHeight,
133+
PlayerHeightOffset,
134+
WorldBottom,
135+
Custom,
136+
}
137+
}

0 commit comments

Comments
 (0)