- 65
- 1
- 2
Подскажите как просто можно отрисововать в мире метки на 1.16 фордж
или возможно есть примери как ето делать либо гайди
или возможно есть примери как ето делать либо гайди
package com.example.examplemod;
import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.vertex.IVertexBuilder;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.IRenderTypeBuffer;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.WorldRenderer;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.BlockPos;
import net.minecraftforge.client.event.RenderWorldLastEvent;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.IModBusEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
@Mod("examplemod")
public class ExampleMod {
public ExampleMod() {
MinecraftForge.EVENT_BUS.register(this);
}
private static final double RENDER_DISTANCE = 64.0;
@SubscribeEvent
public void onRenderWorldLast(RenderWorldLastEvent event) {
// Заданные абсолютные координаты метки
BlockPos waypointPos = new BlockPos(100, 70, -50); // Примерные координаты
// Вызываем метод для рендеринга метки
renderWaypoint(waypointPos, event.getMatrixStack());
}
public static void renderWaypoint(BlockPos waypointPos, MatrixStack matrices) {
// Создаем ограничивающий параллелепипед для метки с абсолютными координатами
AxisAlignedBB boundingBox = new AxisAlignedBB(waypointPos.getX(), waypointPos.getY(), waypointPos.getZ(),
waypointPos.getX() + 6, waypointPos.getY() + 6, waypointPos.getZ() + 6);
// Устанавливаем цвет метки
float red = 1.0f;
float green = 0.0f;
float blue = 0.0f;
float alpha = 1.0f;
// Получаем буфер вершин для рендера линий
IRenderTypeBuffer irendertypebuffer1 = Minecraft.getInstance().renderBuffers().bufferSource();
IVertexBuilder vb = irendertypebuffer1.getBuffer(RenderType.lines());
WorldRenderer.renderLineBox(matrices, vb, boundingBox, red, green, blue, alpha);
}
}
отнимай от точки в мире координаты игрокаполучилось такое но квадрат отображает относительно игрока а не по кординатам в мире