Skip to content

Commit 3b16659

Browse files
committed
fix positioning
1 parent 4cf3cd1 commit 3b16659

3 files changed

Lines changed: 14 additions & 7 deletions

File tree

src/main/java/com/sorkopiko/teammatestracker/config/ModMenuIntegration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public ConfigScreenFactory<?> getModConfigScreenFactory() {
3939
scale -> TeammatesConfig.HANDLER.instance().markerScale = scale)
4040
.controller(opt -> FloatSliderControllerBuilder.create(opt)
4141
.range(0.25f, 4.0f)
42-
.step(0.1f)
42+
.step(0.05f)
4343
.formatValue(val -> Text.literal(String.format("%.1f", val))))
4444
.build())
4545
.build())

src/main/java/com/sorkopiko/teammatestracker/model/InterpolatedLocation.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.sorkopiko.teammatestracker.model;
22

3+
import net.minecraft.client.render.Camera;
34
import net.minecraft.entity.player.PlayerEntity;
45
import net.minecraft.util.math.MathHelper;
56

@@ -20,7 +21,11 @@ public static InterpolatedLocation fromPlayer(PlayerEntity player, double tickDe
2021
);
2122
}
2223

23-
public InterpolatedLocation withYOffset(double offset) {
24-
return new InterpolatedLocation(x(), y() + offset, z());
24+
public InterpolatedLocation withOffset(double xOffset, double yOffset, double zOffset) {
25+
return new InterpolatedLocation(x() + xOffset, y() + yOffset, z() + zOffset);
26+
}
27+
28+
public InterpolatedLocation relativeToCamera(Camera camera) {
29+
return this.withOffset(-camera.getPos().x, -camera.getPos().y, -camera.getPos().z);
2530
}
2631
}

src/main/java/com/sorkopiko/teammatestracker/render/TeammateRenderer.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,8 @@ public static void render(MatrixStack matrices, Camera camera, Map<UUID, Teammat
6969
})
7070
.forEach(teammate -> {
7171
InterpolatedLocation location = getLocation(teammate, currentTime, tickDelta)
72-
.withYOffset(ARROW_OFFSET_Y);
72+
.withOffset(0, ARROW_OFFSET_Y, 0)
73+
.relativeToCamera(camera);
7374

7475
double distance = calculateDistance(location, cameraPos);
7576
renderTeammateMarker(matrices, location, teammate, distance);
@@ -96,7 +97,7 @@ private static void renderTeammateMarker(MatrixStack matrices, InterpolatedLocat
9697

9798
EntityRenderDispatcher dispatcher = client.getEntityRenderDispatcher();
9899
matrices.multiply(dispatcher.getRotation());
99-
float scale = (float) getScale(distance, TeammatesConfig.HANDLER.instance().markerScale);
100+
float scale = (float) getScale(distance, TeammatesConfig.HANDLER.instance().markerScale * 0.25f);
100101
matrices.scale(scale, scale, scale);
101102
int backgroundColor = (int)(MinecraftClient.getInstance().options.getTextBackgroundOpacity(0.25F) * 255.0F) << 24 | 0x666666;
102103

@@ -141,7 +142,7 @@ private static void renderArrow(MatrixStack matrices, Color color) {
141142

142143
private static void renderText(MatrixStack matrices, Text text, float x, float y, int color, int backgroundColor, boolean centered, double distance) {
143144
matrices.push();
144-
float scale = 0.02f;
145+
float scale = 0.015f;
145146
matrices.scale(scale, -scale, scale);
146147

147148
TextRenderer textRenderer = client.textRenderer;
@@ -157,7 +158,8 @@ private static void renderText(MatrixStack matrices, Text text, float x, float y
157158

158159
private static double getScale(double distance, float scaleFactor) {
159160
if (distance < 10.f) return scaleFactor;
160-
return scaleFactor * (distance / 10.f);
161+
// return scaleFactor * (distance / 10.f);
162+
return scaleFactor * (distance - 9.f);
161163
}
162164

163165
private static double calculateDistance(InterpolatedLocation location, Vec3d cameraPos) {

0 commit comments

Comments
 (0)