Skip to content

Commit a4bb718

Browse files
committed
Prevent elevation-based entity filtering
VoxelMap considers elevation in a distance calculation which filters out far-away entities from being rendered on the minimap. This has been fixed by pretending the entity's Y-level is the same as the player's.
1 parent 8bfe93c commit a4bb718

File tree

3 files changed

+52
-0
lines changed

3 files changed

+52
-0
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package uk.protonull.civvoxelmap.mixins.elevation;
2+
3+
import com.mamiyaotaru.voxelmap.Radar;
4+
import com.mamiyaotaru.voxelmap.util.GameVariableAccessShim;
5+
import net.minecraft.world.phys.Vec3;
6+
import org.jetbrains.annotations.NotNull;
7+
import org.spongepowered.asm.mixin.Mixin;
8+
import org.spongepowered.asm.mixin.injection.At;
9+
import org.spongepowered.asm.mixin.injection.Redirect;
10+
11+
@Mixin(Radar.class)
12+
public abstract class RadarPreventElevationFilteringMixin {
13+
@Redirect(
14+
method = "calculateMobs",
15+
at = @At(
16+
value = "INVOKE",
17+
target = "Lnet/minecraft/world/phys/Vec3;y()D"
18+
)
19+
)
20+
protected double civvoxelmap$useSameElevationAsPlayer(
21+
final @NotNull Vec3 instance
22+
) {
23+
return GameVariableAccessShim.yCoord();
24+
}
25+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package uk.protonull.civvoxelmap.mixins.elevation;
2+
3+
import com.mamiyaotaru.voxelmap.RadarSimple;
4+
import com.mamiyaotaru.voxelmap.util.GameVariableAccessShim;
5+
import net.minecraft.world.phys.Vec3;
6+
import org.jetbrains.annotations.NotNull;
7+
import org.spongepowered.asm.mixin.Mixin;
8+
import org.spongepowered.asm.mixin.injection.At;
9+
import org.spongepowered.asm.mixin.injection.Redirect;
10+
11+
@Mixin(RadarSimple.class)
12+
public abstract class RadarSimplePreventElevationFilteringMixin {
13+
@Redirect(
14+
method = "calculateMobs",
15+
at = @At(
16+
value = "INVOKE",
17+
target = "Lnet/minecraft/world/phys/Vec3;y()D"
18+
)
19+
)
20+
protected double civvoxelmap$useSameElevationAsPlayer(
21+
final @NotNull Vec3 instance
22+
) {
23+
return GameVariableAccessShim.yCoord();
24+
}
25+
}

src/main/resources/civvoxelmap.mixins.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
"commands.DisableVoxelMapCommands",
1313
"commands.ReplaceVoxelMapCommands",
1414
"elevation.ObscureElevationMixin",
15+
"elevation.RadarPreventElevationFilteringMixin",
16+
"elevation.RadarSimplePreventElevationFilteringMixin",
1517
"radar.RadarMixin",
1618
"radar.RadarSimpleMixin",
1719
"settings.GuiMinimapOptionsMixin",

0 commit comments

Comments
 (0)