- 53
- 2
- 2
Всех приветствую.
Некоторые знают про мод Immersive Engineering? Там есть такие провода (пример на картинке)

И у меня встала задача отрисовать какие-нибудь такие провода, но без провисания. Получается этакая линия с текстурой.
Я написал подобный код:
У меня есть две точки: link и pos (каждая из них состоит из 3 целых чисел: X, Y и Z). Они находятся в мире и мне надо между ними срендерить эту самую линию.
Но когда я захожу в игру, я вижу такой очень странный результат...

Это была та попытка, где у меня не подгрузилась текстура. Сейчас же, у меня каждый блок "красится" в текстуру, которую я подкидываю.
Подскажите пожалуйста, что я делаю не так и как это исправить?
Некоторые знают про мод Immersive Engineering? Там есть такие провода (пример на картинке)

И у меня встала задача отрисовать какие-нибудь такие провода, но без провисания. Получается этакая линия с текстурой.
Я написал подобный код:
Код, где я пытаюсь отрендерить это:
public class RenderHandler {
public static final ResourceLocation POWER_TEXTURE = new ResourceLocation(TechnoTrees.MOD_ID, "textures/power.png");
@SideOnly(Side.CLIENT)
@SubscribeEvent
public void onRender(RenderWorldEvent.Post event) {
for (TechnoConsumerTileEntity tile : TechnoTrees.proxy.getConsumers()) {
BlockPos pos = new BlockPos(tile.xCoord, tile.yCoord, tile.zCoord);
EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer;
BlockPos playerPos = new BlockPos((int) player.posX, (int) player.posY, (int) player.posZ);
if (pos.getDistance(playerPos) > Minecraft.getMinecraft().gameSettings.renderDistanceChunks*16) {
return;
} // Checking to be in caps
Minecraft.getMinecraft().renderEngine.bindTexture(POWER_TEXTURE);
Tessellator tessellator = Tessellator.instance;
for (BlockPos link : tile.getLinks()) {
tessellator.startDrawingQuads();
tessellator.addVertexWithUV(pos.getX() + 0.4, pos.getY() + 0.5, pos.getZ() + 0.5, 0, 0);
tessellator.addVertexWithUV(pos.getX() + 0.6, pos.getY() + 0.5, pos.getZ() + 0.5, 0, 4);
tessellator.addVertexWithUV(link.getX() + 0.4, link.getY() + 0.5, link.getZ() + 0.5, 16, 0);
tessellator.addVertexWithUV(link.getX() + 0.6, link.getY() + 0.5, link.getZ() + 0.5, 16, 4);
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.addVertexWithUV(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.4, 0, 0);
tessellator.addVertexWithUV(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.6, 0, 4);
tessellator.addVertexWithUV(link.getX() + 0.5, link.getY() + 0.5, link.getZ() + 0.4, 16, 0);
tessellator.addVertexWithUV(link.getX() + 0.5, link.getY() + 0.5, link.getZ() + 0.6, 16, 4);
tessellator.draw();
}
}
}
}
У меня есть две точки: link и pos (каждая из них состоит из 3 целых чисел: X, Y и Z). Они находятся в мире и мне надо между ними срендерить эту самую линию.
Но когда я захожу в игру, я вижу такой очень странный результат...

Это была та попытка, где у меня не подгрузилась текстура. Сейчас же, у меня каждый блок "красится" в текстуру, которую я подкидываю.
Подскажите пожалуйста, что я делаю не так и как это исправить?