Камера.

Версия Minecraft
1.12.2
Как опустить камеру? я уменьшил себя, сделал AABB. но камера подняла для обычного игрока.
1531811524560.png
 
Решение
@hohserg1, указанное тобой событие не позволяет менять положение камеры, только углы.

@stakanchik21, хоть бы исходники просмотрел что ли - правок на одну минуту работы. Изменилось только одно единственное поле (EntityPlayer#yOffset на EntityPlayer#eyeHeight) и методу EntityRenderer#updateCameraAndRender() второй аргумент добавился...
Java:
public class EntityRendererTest extends EntityRenderer {

    private final Minecraft mc;
 
    private float eyeHeightOffset = 0.62F;

    public EntityRendererTest(Minecraft mc) {
     
        super(mc, mc.getResourceManager());
     
        this.mc = mc;
    }

    @Override
    public void updateCameraAndRender(float partialTick, long nanoTime) {
     
        if...
3,005
192
592
3,005
192
592
7,099
324
1,510
Хоть бы учебник прочитал...
1531826645048.png
 
243
28
202
@hohserg1, указанное тобой событие не позволяет менять положение камеры, только углы.

@stakanchik21, хоть бы исходники просмотрел что ли - правок на одну минуту работы. Изменилось только одно единственное поле (EntityPlayer#yOffset на EntityPlayer#eyeHeight) и методу EntityRenderer#updateCameraAndRender() второй аргумент добавился...
Java:
public class EntityRendererTest extends EntityRenderer {

    private final Minecraft mc;
 
    private float eyeHeightOffset = 0.62F;

    public EntityRendererTest(Minecraft mc) {
     
        super(mc, mc.getResourceManager());
     
        this.mc = mc;
    }

    @Override
    public void updateCameraAndRender(float partialTick, long nanoTime) {
     
        if (this.mc.player == null || this.mc.player.isPlayerSleeping()) {
         
            super.updateCameraAndRender(partialTick, nanoTime);
         
            return;
        }

        this.mc.player.eyeHeight -= this.eyeHeightOffset;
     
        super.updateCameraAndRender(partialTick, nanoTime);
     
        this.mc.player.eyeHeight = 1.62F;
    }

    @Override
    public void getMouseOver(float partialTick) {
     
        if (this.mc.player == null || this.mc.player.isPlayerSleeping()) {
         
            super.getMouseOver(partialTick);
         
            return;
        }

        this.mc.player.posY -= this.eyeHeightOffset;
        this.mc.player.prevPosY -= this.eyeHeightOffset;
        this.mc.player.lastTickPosY -= this.eyeHeightOffset;
     
        super.getMouseOver(partialTick);
     
        this.mc.player.posY += this.eyeHeightOffset;
        this.mc.player.prevPosY += this.eyeHeightOffset;
        this.mc.player.lastTickPosY += this.eyeHeightOffset;
    }
}
Java:
public class TestEvents {

    @SideOnly(Side.CLIENT)
    private Minecraft mc;
 
    @SideOnly(Side.CLIENT)
    private EntityRenderer customRenderer, vanillaRenderer;
 
    @SideOnly(Side.CLIENT)
    @SubscribeEvent
    public void onPlayerUpdate(LivingUpdateEvent event) {
     
        if (event.getEntityLiving().world.isRemote && event.getEntityLiving() instanceof EntityPlayer) {
         
            EntityPlayer player = (EntityPlayer) event.getEntityLiving();                                                      
                             
            if (player.isSneaking()) {
             
                if (customRenderer == null) {
                 
                    mc = Minecraft.getMinecraft();
                                     
                    customRenderer = new EntityRendererTest(mc);
                }
             
                if (mc.entityRenderer != customRenderer) {

                    vanillaRenderer = mc.entityRenderer;
                 
                    mc.entityRenderer = customRenderer;                    
                }
             
            }
         
            else if (vanillaRenderer != null && mc.entityRenderer != vanillaRenderer) {
                 
                mc.entityRenderer = vanillaRenderer;
            }
        }
    }
}
2018-07-19_12.26.50.png
 
Последнее редактирование:
7,099
324
1,510
не позволяет менять положение камеры
Да что вы говорите?
Java:
@SubscribeEvent
public void onCameraUpdate(EntityViewRenderEvent.CameraSetup ev) {
    GL11.glTranslatef(x, y, z);
}
Полей и методов для работы с положением у этого события нет, но функции opengl работают, можно было догадаться посмотрев, откуда вызывается это событие
 
Сверху