DarknessFogEnvironment.java

net.minecraft.client.renderer.fog.environment.DarknessFogEnvironment

信息

  • 全限定名:net.minecraft.client.renderer.fog.environment.DarknessFogEnvironment
  • 类型:public class
  • 包:net.minecraft.client.renderer.fog.environment
  • 源码路径:src/main/java/net/minecraft/client/renderer/fog/environment/DarknessFogEnvironment.java
  • 起始行号:L17
  • 继承:MobEffectFogEnvironment
  • 职责:

    TODO

字段/常量

内部类/嵌套类型

构造器

方法

下面的方法块按源码顺序生成。

public Holder<MobEffect> getMobEffect() @ L18

  • 方法名:getMobEffect
  • 源码定位:L18
  • 返回类型:Holder
  • 修饰符:public

参数:

说明:

TODO

public void setupFog(FogData fog, Camera camera, ClientLevel level, float renderDistance, DeltaTracker deltaTracker) @ L23

  • 方法名:setupFog
  • 源码定位:L23
  • 返回类型:void
  • 修饰符:public

参数:

  • fog: FogData
  • camera: Camera
  • level: ClientLevel
  • renderDistance: float
  • deltaTracker: DeltaTracker

说明:

TODO

public float getModifiedDarkness(LivingEntity entity, float darkness, float partialTickTime) @ L37

  • 方法名:getModifiedDarkness
  • 源码定位:L37
  • 返回类型:float
  • 修饰符:public

参数:

  • entity: LivingEntity
  • darkness: float
  • partialTickTime: float

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public class DarknessFogEnvironment extends MobEffectFogEnvironment {
    @Override
    public Holder<MobEffect> getMobEffect() {
        return MobEffects.DARKNESS;
    }
 
    @Override
    public void setupFog(FogData fog, Camera camera, ClientLevel level, float renderDistance, DeltaTracker deltaTracker) {
        if (camera.entity() instanceof LivingEntity livingEntity) {
            MobEffectInstance effect = livingEntity.getEffect(this.getMobEffect());
            if (effect != null) {
                float distance = Mth.lerp(effect.getBlendFactor(livingEntity, deltaTracker.getGameTimeDeltaPartialTick(false)), renderDistance, 15.0F);
                fog.environmentalStart = distance * 0.75F;
                fog.environmentalEnd = distance;
                fog.skyEnd = distance;
                fog.cloudEnd = distance;
            }
        }
    }
 
    @Override
    public float getModifiedDarkness(LivingEntity entity, float darkness, float partialTickTime) {
        MobEffectInstance instance = entity.getEffect(this.getMobEffect());
        return instance != null ? Math.max(instance.getBlendFactor(entity, partialTickTime), darkness) : darkness;
    }
}

引用的其他类