FogDensity

1,057
50
234
Сообственно.
Есть данный код:

Код:
package blessentumble.core.tick;

import net.minecraft.client.Minecraft;
import net.minecraft.client.multiplayer.WorldClient;
import net.minecraftforge.client.event.EntityViewRenderEvent.FogDensity;
import blessentumble.planets.SolarSystem.venus.dimension.WorldProviderVenus;
import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.gameevent.TickEvent.ClientTickEvent;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

public class FogEvent {

 @SideOnly(Side.CLIENT)
 @SubscribeEvent
 public void onFogRendererTick(FogDensity e) 
 {
 Minecraft minecraft = FMLClientHandler.instance().getClient();
 WorldClient world = minecraft.theWorld;
 
 if(world != null) 
 {
 if(world.provider instanceof WorldProviderVenus) 
 {
 e.density = 0.96F;
 e.setCanceled(true);
 } 
 }
 
 
 }

}

Но никак не могу заставить его работать.

Регистр в ClientProxy есть.

this.register_event(new FogEvent());
Код:
 public void register_event(Object obj)
 {
 FMLCommonHandler.instance().bus().register(this);
 MinecraftForge.EVENT_BUS.register(this);
 }

Но работать отказыватся....
 
1,057
50
234
Да, действительно. Исправил.

Вот только не могу понять, почему ограничение на Provider не работает.
И работает код всего 1 раз.

Тоесть зашел в игру - есть туман. Перешел в другой дименс и вернулся обратно - нет тумана...
 
905
5
Эээ. Ты же его отменяешь, странно, что вообще работает.
 
1,057
50
234
BlesseNtumble написал(а):
Да, действительно. Исправил.

Вот только не могу понять, почему ограничение на Provider не работает.
И работает код всего 1 раз.

Тоесть зашел в игру - есть туман. Перешел в другой дименс и вернулся обратно - нет тумана...
Сообственно. Что по поводу этого?
 
503
3
Смотри,я имею такой код.
Код:
@SubscribeEvent
    public void fogDistance(EntityViewRenderEvent.RenderFogEvent e) {
        EntityPlayer player = mc.thePlayer;
        if (player.isPotionActive(flashbang)) {
            GL11.glFogf(GL11.GL_FOG_START, 0.7F);
            GL11.glFogf(GL11.GL_FOG_END, 3.5F);
        }
    }

    @SubscribeEvent
    public void fogColor(EntityViewRenderEvent.FogColors e) {
        EntityPlayer player = mc.thePlayer;
        if (player.isPotionActive(flashbang)) {
            e.red = 1F;
            e.green = 1F;
            e.blue = 1F;
        }
    }

Он проверяет поушн и делает БЕЛЫЙ туман,который работает при переходе.Копируй это,меняй цвет на серый и проверяй по-правильному где игрок.Я думаю,пробуй по dimenseID
 
1,057
50
234
krok написал(а):
Смотри,я имею такой код.
Код:
@SubscribeEvent
    public void fogDistance(EntityViewRenderEvent.RenderFogEvent e) {
        EntityPlayer player = mc.thePlayer;
        if (player.isPotionActive(flashbang)) {
            GL11.glFogf(GL11.GL_FOG_START, 0.7F);
            GL11.glFogf(GL11.GL_FOG_END, 3.5F);
        }
    }

    @SubscribeEvent
    public void fogColor(EntityViewRenderEvent.FogColors e) {
        EntityPlayer player = mc.thePlayer;
        if (player.isPotionActive(flashbang)) {
            e.red = 1F;
            e.green = 1F;
            e.blue = 1F;
        }
    }

Он проверяет поушн и делает БЕЛЫЙ туман,который работает при переходе.Копируй это,меняй цвет на серый и проверяй по-правильному где игрок.Я думаю,пробуй по dimenseID
Если я не ошибаюсь, dimensionID берет значение присвоеного ID дименсу, но ведь если банально заменить ID в конфиге, туман "перекочует" в другой дименс? Или я не прав?
 
Сверху