WaterFogEnvironment.java

net.minecraft.client.renderer.fog.environment.WaterFogEnvironment

信息

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

    TODO

字段/常量

内部类/嵌套类型

构造器

方法

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

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

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

参数:

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

说明:

TODO

public boolean isApplicable(FogType fogType, Entity entity) @ L30

  • 方法名:isApplicable
  • 源码定位:L30
  • 返回类型:boolean
  • 修饰符:public

参数:

  • fogType: FogType
  • entity: Entity

说明:

TODO

public int getBaseColor(ClientLevel level, Camera camera, int renderDistance, float partialTicks) @ L35

  • 方法名:getBaseColor
  • 源码定位:L35
  • 返回类型:int
  • 修饰符:public

参数:

  • level: ClientLevel
  • camera: Camera
  • renderDistance: int
  • partialTicks: float

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public class WaterFogEnvironment extends FogEnvironment {
    @Override
    public void setupFog(FogData fog, Camera camera, ClientLevel level, float renderDistance, DeltaTracker deltaTracker) {
        float partialTicks = deltaTracker.getGameTimeDeltaPartialTick(false);
        fog.environmentalStart = camera.attributeProbe().getValue(EnvironmentAttributes.WATER_FOG_START_DISTANCE, partialTicks);
        fog.environmentalEnd = camera.attributeProbe().getValue(EnvironmentAttributes.WATER_FOG_END_DISTANCE, partialTicks);
        if (camera.entity() instanceof LocalPlayer player) {
            fog.environmentalEnd = fog.environmentalEnd * Math.max(0.25F, player.getWaterVision());
        }
 
        fog.skyEnd = fog.environmentalEnd;
        fog.cloudEnd = fog.environmentalEnd;
    }
 
    @Override
    public boolean isApplicable(@Nullable FogType fogType, Entity entity) {
        return fogType == FogType.WATER;
    }
 
    @Override
    public int getBaseColor(ClientLevel level, Camera camera, int renderDistance, float partialTicks) {
        return camera.attributeProbe().getValue(EnvironmentAttributes.WATER_FOG_COLOR, partialTicks);
    }
}

引用的其他类