Skip to content

Commit aca971c

Browse files
committed
Fixed and Look at waypoint in xaero map
1 parent 1112eff commit aca971c

File tree

8 files changed

+44
-23
lines changed

8 files changed

+44
-23
lines changed

src/main/java/nekiplay/meteorplus/mixin/xaero/worldmap/GuiMapMixin.java

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -118,12 +118,7 @@ public void onAction(Screen screen) {
118118
public void onAction(Screen screen) {
119119
GoalBlock goal = new GoalBlock(new BlockPos(rightClickX, rightClickY, rightClickZ).up());
120120
BaritoneAPI.getProvider().getPrimaryBaritone().getCustomGoalProcess().setGoal(goal);
121-
for (IBaritone baritone : BaritoneAPI.getProvider().getAllBaritones()) {
122-
if (!baritone.getCommandManager().getRegistry().stream().filter((a) -> a.getNames().get(0).equalsIgnoreCase("elytra")).findAny().isEmpty()) {
123-
baritone.getCommandManager().execute("elytra");
124-
break;
125-
}
126-
}
121+
BaritoneAPI.getProvider().getPrimaryBaritone().getCommandManager().execute("elytra");
127122
}
128123
}
129124
));
@@ -139,12 +134,7 @@ public void onAction(Screen screen) {
139134
public void onAction(Screen screen) {
140135
GoalBlock goal = new GoalBlock(new BlockPos(rightClickX, rightClickY, rightClickZ).up());
141136
BaritoneAPI.getProvider().getPrimaryBaritone().getCustomGoalProcess().setGoal(goal);
142-
for (IBaritone baritone : BaritoneAPI.getProvider().getAllBaritones()) {
143-
if (!baritone.getCommandManager().getRegistry().stream().filter((a) -> a.getNames().get(0).equalsIgnoreCase("elytra")).findAny().isEmpty()) {
144-
baritone.getCommandManager().execute("elytra");
145-
break;
146-
}
147-
}
137+
BaritoneAPI.getProvider().getPrimaryBaritone().getCommandManager().execute("elytra");
148138
}
149139
}
150140
));

src/main/java/nekiplay/meteorplus/mixin/xaero/worldmap/WaypointRendererMixin.java

Lines changed: 34 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,13 @@
55
import baritone.api.pathing.goals.GoalBlock;
66
import meteordevelopment.meteorclient.systems.modules.Modules;
77
import meteordevelopment.meteorclient.utils.player.PlayerUtils;
8+
import meteordevelopment.meteorclient.utils.world.BlockUtils;
89
import meteordevelopment.meteorclient.utils.world.Dimension;
910
import nekiplay.meteorplus.features.modules.integrations.MapIntegration;
11+
import nekiplay.meteorplus.utils.RotationUtils;
1012
import net.minecraft.client.gui.screen.Screen;
1113
import net.minecraft.util.math.BlockPos;
14+
import net.minecraft.util.math.Vec3d;
1215
import org.spongepowered.asm.mixin.Mixin;
1316
import org.spongepowered.asm.mixin.injection.At;
1417
import org.spongepowered.asm.mixin.injection.Inject;
@@ -23,6 +26,8 @@
2326

2427
import java.util.ArrayList;
2528

29+
import static meteordevelopment.meteorclient.MeteorClient.mc;
30+
2631
@Mixin(WaypointReader.class)
2732
public class WaypointRendererMixin {
2833
@Inject(method = "getRightClickOptions(Lxaero/map/mods/gui/Waypoint;Lxaero/map/gui/IRightClickableElement;)Ljava/util/ArrayList;", at = @At("HEAD"), remap = false, cancellable = true)
@@ -63,6 +68,33 @@ public boolean isActive() {
6368
}
6469
}).setNameFormatArgs(new Object[]{"G"}));
6570

71+
rightClickOptions.add((new RightClickOption("gui.world_map.look_at_waypoint", rightClickOptions.size(), target) {
72+
public void onAction(Screen screen) {
73+
Vec3d playerPos = mc.player.getPos();
74+
Vec3d blockCenter = new Vec3d(
75+
element.getX() + 0.5,
76+
element.getY() + 0.5,
77+
element.getZ() + 0.5
78+
);
79+
80+
// Вычисляем вектор направления от игрока к блоку
81+
Vec3d direction = blockCenter.subtract(playerPos).normalize();
82+
83+
// Преобразуем вектор направления в углы поворота (yaw и pitch)
84+
double distanceXZ = Math.sqrt(direction.x * direction.x + direction.z * direction.z);
85+
float yaw = (float)Math.toDegrees(Math.atan2(direction.z, direction.x)) - 90.0F;
86+
float pitch = (float)Math.toDegrees(-Math.atan2(direction.y, distanceXZ));
87+
88+
// Устанавливаем поворот игрока
89+
mc.player.setYaw(yaw);
90+
mc.player.setPitch(pitch);
91+
}
92+
93+
public boolean isActive() {
94+
return true;
95+
}
96+
}).setNameFormatArgs(new Object[]{"L"}));
97+
6698
rightClickOptions.add((new RightClickOption("gui.world_map.baritone_path_here", rightClickOptions.size(), target) {
6799
public void onAction(Screen screen) {
68100
GoalBlock goal = new GoalBlock(new BlockPos(element.getX(), element.getY(), element.getZ()));
@@ -78,15 +110,8 @@ public boolean isActive() {
78110
rightClickOptions.add((new RightClickOption("gui.world_map.baritone_elytra_here", rightClickOptions.size(), target) {
79111
public void onAction(Screen screen) {
80112
GoalBlock goal = new GoalBlock(new BlockPos(element.getX(), element.getY(), element.getZ()));
81-
if (goal.getGoalPos().getY() > 0 && goal.getGoalPos().getY() < 128) {
82-
BaritoneAPI.getProvider().getPrimaryBaritone().getCustomGoalProcess().setGoal(goal);
83-
for (IBaritone baritone : BaritoneAPI.getProvider().getAllBaritones()) {
84-
if (!baritone.getCommandManager().getRegistry().stream().filter((a) -> a.getNames().get(0).equalsIgnoreCase("elytra")).findAny().isEmpty()) {
85-
baritone.getCommandManager().execute("elytra");
86-
break;
87-
}
88-
}
89-
}
113+
BaritoneAPI.getProvider().getPrimaryBaritone().getCustomGoalProcess().setGoal(goal);
114+
BaritoneAPI.getProvider().getPrimaryBaritone().getCommandManager().execute("elytra");
90115
}
91116

92117
public boolean isActive() {

src/main/resources/assets/meteorplus/lang/de_de.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
"gui.world_map.baritone_goal_here": "Baritone das ziel hier",
33
"gui.world_map.baritone_path_here": "Baritone der weg ist hier",
44
"gui.world_map.baritone_elytra_here": "Baritone elitra ist hier",
5+
"gui.world_map.look_at_waypoint": "Siehe den tag",
56

67
"item.meteorplus.logo": "Meteor+ logo",
78
"item.meteorplus.logo_mods": "Meteor+ Integrations logo",
@@ -19,4 +20,4 @@
1920

2021
"modules.meteor-client.inventory-tweaks.dump": "Falten",
2122
"modules.meteor-client.inventory-tweaks.steal": "Nehmen"
22-
}
23+
}

src/main/resources/assets/meteorplus/lang/en_us.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
"gui.world_map.baritone_goal_here": "Baritone goal Here",
33
"gui.world_map.baritone_path_here": "Baritone path Here",
44
"gui.world_map.baritone_elytra_here": "Baritone elytra Here",
5+
"gui.world_map.look_at_waypoint": "Look at waypoint",
56

67
"item.meteorplus.logo": "Meteor+ logo",
78
"item.meteorplus.logo_mods": "Meteor+ Integrations logo",

src/main/resources/assets/meteorplus/lang/ru_ru.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
"gui.world_map.baritone_goal_here": "Baritone цель тут",
33
"gui.world_map.baritone_path_here": "Baritone путь тут",
44
"gui.world_map.baritone_elytra_here": "Baritone элитра тут",
5+
"gui.world_map.look_at_waypoint": "Смотреть на метку",
56

67
"item.meteorplus.logo": "Meteor+ логотип",
78
"item.meteorplus.logo_mods": "Meteor+ Integrations логотип",

src/main/resources/assets/meteorplus/lang/uk_ua.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
"gui.world_map.baritone_goal_here": "Baritone мета тут",
33
"gui.world_map.baritone_path_here": "Baritone путь тут",
44
"gui.world_map.baritone_elytra_here": "Baritone елітра тут",
5+
"gui.world_map.look_at_waypoint": "Дивитися на мітку",
56

67
"item.meteorplus.logo": "Meteor+ логотип",
78
"item.meteorplus.logo_mods": "Meteor+ Integrations логотип",
@@ -19,4 +20,4 @@
1920

2021
"modules.meteor-client.inventory-tweaks.dump": "Скласти",
2122
"modules.meteor-client.inventory-tweaks.steal": "Взяти"
22-
}
23+
}

src/main/resources/assets/meteorplus/lang/zh_cn.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
"gui.world_map.baritone_goal_here": "Baritone 目标标记",
33
"gui.world_map.baritone_path_here": "Baritone 路径标记",
44
"gui.world_map.baritone_elytra_here": "Baritone 鞘翅飞行标记",
5+
"gui.world_map.look_at_waypoint": "查看标签",
56

67
"item.meteorplus.logo": "Meteor+ 主标识",
78
"item.meteorplus.logo_mods": "Meteor+ 整合包标识",

src/main/resources/assets/meteorplus/lang/zh_tw.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
"gui.world_map.baritone_goal_here": "Baritone 目標標記",
33
"gui.world_map.baritone_path_here": "Baritone 路徑標記",
44
"gui.world_map.baritone_elytra_here": "Baritone 鞘翅飛行標記",
5+
"gui.world_map.look_at_waypoint": "查看標籤",
56

67
"item.meteorplus.logo": "Meteor+ 主標誌",
78
"item.meteorplus.logo_mods": "Meteor+ 整合包標誌",

0 commit comments

Comments
 (0)