OverlayTexture.java

net.minecraft.client.renderer.texture.OverlayTexture

信息

  • 全限定名:net.minecraft.client.renderer.texture.OverlayTexture
  • 类型:public class
  • 包:net.minecraft.client.renderer.texture
  • 源码路径:src/main/java/net/minecraft/client/renderer/texture/OverlayTexture.java
  • 起始行号:L10
  • 实现:AutoCloseable
  • 职责:

    TODO

字段/常量

  • SIZE

    • 类型: int
    • 修饰符: private static final
    • 源码定位: L11
    • 说明:

      TODO

  • NO_WHITE_U

    • 类型: int
    • 修饰符: public static final
    • 源码定位: L12
    • 说明:

      TODO

  • RED_OVERLAY_V

    • 类型: int
    • 修饰符: public static final
    • 源码定位: L13
    • 说明:

      TODO

  • WHITE_OVERLAY_V

    • 类型: int
    • 修饰符: public static final
    • 源码定位: L14
    • 说明:

      TODO

  • NO_OVERLAY

    • 类型: int
    • 修饰符: public static final
    • 源码定位: L15
    • 说明:

      TODO

  • texture

    • 类型: DynamicTexture
    • 修饰符: private final
    • 源码定位: L16
    • 说明:

      TODO

内部类/嵌套类型

构造器

public OverlayTexture() @ L18

  • 构造器名:OverlayTexture
  • 源码定位:L18
  • 修饰符:public

参数:

说明:

TODO

方法

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

public void close() @ L35

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

参数:

说明:

TODO

public static int u(float whiteOverlayProgress) @ L40

  • 方法名:u
  • 源码定位:L40
  • 返回类型:int
  • 修饰符:public static

参数:

  • whiteOverlayProgress: float

说明:

TODO

public static int v(boolean hurtOverlay) @ L44

  • 方法名:v
  • 源码定位:L44
  • 返回类型:int
  • 修饰符:public static

参数:

  • hurtOverlay: boolean

说明:

TODO

public static int pack(int u, int v) @ L48

  • 方法名:pack
  • 源码定位:L48
  • 返回类型:int
  • 修饰符:public static

参数:

  • u: int
  • v: int

说明:

TODO

public static int pack(float whiteOverlayProgress, boolean redOverlay) @ L52

  • 方法名:pack
  • 源码定位:L52
  • 返回类型:int
  • 修饰符:public static

参数:

  • whiteOverlayProgress: float
  • redOverlay: boolean

说明:

TODO

public GpuTextureView getTextureView() @ L56

  • 方法名:getTextureView
  • 源码定位:L56
  • 返回类型:GpuTextureView
  • 修饰符:public

参数:

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public class OverlayTexture implements AutoCloseable {
    private static final int SIZE = 16;
    public static final int NO_WHITE_U = 0;
    public static final int RED_OVERLAY_V = 3;
    public static final int WHITE_OVERLAY_V = 10;
    public static final int NO_OVERLAY = pack(0, 10);
    private final DynamicTexture texture = new DynamicTexture("Entity Color Overlay", 16, 16, false);
 
    public OverlayTexture() {
        NativeImage pixels = this.texture.getPixels();
 
        for (int y = 0; y < 16; y++) {
            for (int x = 0; x < 16; x++) {
                if (y < 8) {
                    pixels.setPixel(x, y, -1291911168);
                } else {
                    int a = (int)((1.0F - x / 15.0F * 0.75F) * 255.0F);
                    pixels.setPixel(x, y, ARGB.white(a));
                }
            }
        }
 
        this.texture.upload();
    }
 
    @Override
    public void close() {
        this.texture.close();
    }
 
    public static int u(float whiteOverlayProgress) {
        return (int)(whiteOverlayProgress * 15.0F);
    }
 
    public static int v(boolean hurtOverlay) {
        return hurtOverlay ? 3 : 10;
    }
 
    public static int pack(int u, int v) {
        return u | v << 16;
    }
 
    public static int pack(float whiteOverlayProgress, boolean redOverlay) {
        return pack(u(whiteOverlayProgress), v(redOverlay));
    }
 
    public GpuTextureView getTextureView() {
        return this.texture.getTextureView();
    }
}

引用的其他类

  • GpuTextureView

    • 引用位置: 返回值
  • DynamicTexture

    • 引用位置: 字段/构造调用
    • 关联成员: DynamicTexture()
  • ARGB

    • 引用位置: 方法调用
    • 关联成员: ARGB.white()