AnimationMetadataSection.java
net.minecraft.client.resources.metadata.animation.AnimationMetadataSection
信息
- 全限定名:net.minecraft.client.resources.metadata.animation.AnimationMetadataSection
- 类型:public record
- 包:net.minecraft.client.resources.metadata.animation
- 源码路径:src/main/java/net/minecraft/client/resources/metadata/animation/AnimationMetadataSection.java
- 起始行号:L13
- 职责:
TODO
字段/常量
-
CODEC- 类型:
Codec<AnimationMetadataSection> - 修饰符:
public static final - 源码定位:
L16 - 说明:
TODO
- 类型:
-
TYPE- 类型:
MetadataSectionType<AnimationMetadataSection> - 修饰符:
public static final - 源码定位:
L26 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
- 无
方法
下面的方法块按源码顺序生成。
public FrameSize calculateFrameSize(int spriteWidth, int spriteHeight) @ L28
- 方法名:calculateFrameSize
- 源码定位:L28
- 返回类型:FrameSize
- 修饰符:public
参数:
- spriteWidth: int
- spriteHeight: int
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public record AnimationMetadataSection(
Optional<List<AnimationFrame>> frames, Optional<Integer> frameWidth, Optional<Integer> frameHeight, int defaultFrameTime, boolean interpolatedFrames
) {
public static final Codec<AnimationMetadataSection> CODEC = RecordCodecBuilder.create(
i -> i.group(
AnimationFrame.CODEC.listOf().optionalFieldOf("frames").forGetter(AnimationMetadataSection::frames),
ExtraCodecs.POSITIVE_INT.optionalFieldOf("width").forGetter(AnimationMetadataSection::frameWidth),
ExtraCodecs.POSITIVE_INT.optionalFieldOf("height").forGetter(AnimationMetadataSection::frameHeight),
ExtraCodecs.POSITIVE_INT.optionalFieldOf("frametime", 1).forGetter(AnimationMetadataSection::defaultFrameTime),
Codec.BOOL.optionalFieldOf("interpolate", false).forGetter(AnimationMetadataSection::interpolatedFrames)
)
.apply(i, AnimationMetadataSection::new)
);
public static final MetadataSectionType<AnimationMetadataSection> TYPE = new MetadataSectionType<>("animation", CODEC);
public FrameSize calculateFrameSize(int spriteWidth, int spriteHeight) {
if (this.frameWidth.isPresent()) {
return this.frameHeight.isPresent()
? new FrameSize(this.frameWidth.get(), this.frameHeight.get())
: new FrameSize(this.frameWidth.get(), spriteHeight);
} else if (this.frameHeight.isPresent()) {
return new FrameSize(spriteWidth, this.frameHeight.get());
} else {
int minDimension = Math.min(spriteWidth, spriteHeight);
return new FrameSize(minDimension, minDimension);
}
}
}引用的其他类
-
- 引用位置:
构造调用/返回值 - 关联成员:
FrameSize()
- 引用位置:
-
- 引用位置:
字段
- 引用位置: