SimpleGizmoCollector.java
net.minecraft.gizmos.SimpleGizmoCollector
信息
- 全限定名:net.minecraft.gizmos.SimpleGizmoCollector
- 类型:public class
- 包:net.minecraft.gizmos
- 源码路径:src/main/java/net/minecraft/gizmos/SimpleGizmoCollector.java
- 起始行号:L9
- 实现:GizmoCollector
- 职责:
TODO
字段/常量
-
gizmos- 类型:
List<SimpleGizmoCollector.GizmoInstance> - 修饰符:
private final - 源码定位:
L10 - 说明:
TODO
- 类型:
-
temporaryGizmos- 类型:
List<SimpleGizmoCollector.GizmoInstance> - 修饰符:
private final - 源码定位:
L11 - 说明:
TODO
- 类型:
内部类/嵌套类型
net.minecraft.gizmos.SimpleGizmoCollector.GizmoInstance- 类型:
class - 修饰符:
public static - 源码定位:
L37 - 说明:
TODO
- 类型:
构造器
- 无
方法
下面的方法块按源码顺序生成。
public GizmoProperties add(Gizmo gizmo) @ L13
- 方法名:add
- 源码定位:L13
- 返回类型:GizmoProperties
- 修饰符:public
参数:
- gizmo: Gizmo
说明:
TODO
public List<SimpleGizmoCollector.GizmoInstance> drainGizmos() @ L20
- 方法名:drainGizmos
- 源码定位:L20
- 返回类型:List<SimpleGizmoCollector.GizmoInstance>
- 修饰符:public
参数:
- 无
说明:
TODO
public List<SimpleGizmoCollector.GizmoInstance> getGizmos() @ L29
- 方法名:getGizmos
- 源码定位:L29
- 返回类型:List<SimpleGizmoCollector.GizmoInstance>
- 修饰符:public
参数:
- 无
说明:
TODO
public void addTemporaryGizmos(Collection<SimpleGizmoCollector.GizmoInstance> gizmos) @ L33
- 方法名:addTemporaryGizmos
- 源码定位:L33
- 返回类型:void
- 修饰符:public
参数:
- gizmos: Collection<SimpleGizmoCollector.GizmoInstance>
说明:
TODO
代码
public class SimpleGizmoCollector implements GizmoCollector {
private final List<SimpleGizmoCollector.GizmoInstance> gizmos = new ArrayList<>();
private final List<SimpleGizmoCollector.GizmoInstance> temporaryGizmos = new ArrayList<>();
@Override
public GizmoProperties add(Gizmo gizmo) {
SimpleGizmoCollector.GizmoInstance instance = new SimpleGizmoCollector.GizmoInstance(gizmo);
this.gizmos.add(instance);
return instance;
}
public List<SimpleGizmoCollector.GizmoInstance> drainGizmos() {
ArrayList<SimpleGizmoCollector.GizmoInstance> result = new ArrayList<>(this.gizmos);
result.addAll(this.temporaryGizmos);
long currentMillis = Util.getMillis();
this.gizmos.removeIf(gizmo -> gizmo.getExpireTimeMillis() < currentMillis);
this.temporaryGizmos.clear();
return result;
}
public List<SimpleGizmoCollector.GizmoInstance> getGizmos() {
return this.gizmos;
}
public void addTemporaryGizmos(Collection<SimpleGizmoCollector.GizmoInstance> gizmos) {
this.temporaryGizmos.addAll(gizmos);
}
public static class GizmoInstance implements GizmoProperties {
private final Gizmo gizmo;
private boolean isAlwaysOnTop;
private long startTimeMillis;
private long expireTimeMillis;
private boolean shouldFadeOut;
private GizmoInstance(Gizmo gizmo) {
this.gizmo = gizmo;
}
@Override
public GizmoProperties setAlwaysOnTop() {
this.isAlwaysOnTop = true;
return this;
}
@Override
public GizmoProperties persistForMillis(int milliseconds) {
this.startTimeMillis = Util.getMillis();
this.expireTimeMillis = this.startTimeMillis + milliseconds;
return this;
}
@Override
public GizmoProperties fadeOut() {
this.shouldFadeOut = true;
return this;
}
public float getAlphaMultiplier(long currentMillis) {
if (this.shouldFadeOut) {
long duration = this.expireTimeMillis - this.startTimeMillis;
long timeSinceStart = currentMillis - this.startTimeMillis;
return 1.0F - Mth.clamp((float)timeSinceStart / (float)duration, 0.0F, 1.0F);
} else {
return 1.0F;
}
}
public boolean isAlwaysOnTop() {
return this.isAlwaysOnTop;
}
public long getExpireTimeMillis() {
return this.expireTimeMillis;
}
public Gizmo gizmo() {
return this.gizmo;
}
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
实现
- 引用位置:
-
- 引用位置:
返回值
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Mth.clamp()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Util.getMillis()
- 引用位置: