-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Сделал его за минут 8-10 и то 2 минуты искал картинки.
Java:
package im.expensive.ui.display.impl;
import com.mojang.blaze3d.matrix.MatrixStack;
import im.expensive.events.EventDisplay;
import im.expensive.ui.display.ElementRenderer;
import im.expensive.utils.render.rect.DisplayUtils;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.ResourceLocation;
public class RadarRenderer implements ElementRenderer {
private final Minecraft mc = Minecraft.getInstance();
private float radarSize = 100;
private float maxDistance = 50.0f;
@Override
public void render(EventDisplay eventDisplay) {
MatrixStack ms = eventDisplay.getMatrixStack();
float centerX = mc.getMainWindow().getScaledWidth() / 2f - 425;
float centerY = mc.getMainWindow().getScaledHeight() / 2f - 180;
float radarPosX = centerX - radarSize / 2;
float radarPosY = centerY - radarSize / 2;
DisplayUtils.drawStyledShadowRect(radarPosX, radarPosY, radarSize, radarSize);
DisplayUtils.drawImage(new ResourceLocation("eva/images/self.png"), centerX - 8, centerY - 8, 12, 12, -1);
for (PlayerEntity player : mc.world.getPlayers()) {
if (player == mc.player) continue;
double deltaX = player.getPosX() - mc.player.getPosX();
double deltaZ = player.getPosZ() - mc.player.getPosZ();
double distance = Math.sqrt(deltaX * deltaX + deltaZ * deltaZ);
if (distance > maxDistance) continue;
double angle = Math.atan2(deltaZ, deltaX) - Math.toRadians(mc.player.rotationYaw - 180);
double scaledDistance = (distance / maxDistance) * (radarSize / 2);
float radarPlayerX = (float) (centerX + scaledDistance * Math.cos(angle));
float radarPlayerY = (float) (centerY + scaledDistance * Math.sin(angle));
DisplayUtils.drawImage(new ResourceLocation("eva/images/player.png"), radarPlayerX, radarPlayerY, 5, 5, -1);
}
}
}