MovementTutorialStepInstance.java
net.minecraft.client.tutorial.MovementTutorialStepInstance
信息
- 全限定名:net.minecraft.client.tutorial.MovementTutorialStepInstance
- 类型:public class
- 包:net.minecraft.client.tutorial
- 源码路径:src/main/java/net/minecraft/client/tutorial/MovementTutorialStepInstance.java
- 起始行号:L12
- 实现:TutorialStepInstance
- 职责:
TODO
字段/常量
-
MINIMUM_TIME_MOVED- 类型:
int - 修饰符:
private static final - 源码定位:
L13 - 说明:
TODO
- 类型:
-
MINIMUM_TIME_LOOKED- 类型:
int - 修饰符:
private static final - 源码定位:
L14 - 说明:
TODO
- 类型:
-
MOVE_HINT_DELAY- 类型:
int - 修饰符:
private static final - 源码定位:
L15 - 说明:
TODO
- 类型:
-
LOOK_HINT_DELAY- 类型:
int - 修饰符:
private static final - 源码定位:
L16 - 说明:
TODO
- 类型:
-
INCOMPLETE- 类型:
int - 修饰符:
private static final - 源码定位:
L17 - 说明:
TODO
- 类型:
-
MOVE_TITLE- 类型:
Component - 修饰符:
private static final - 源码定位:
L18 - 说明:
TODO
- 类型:
-
MOVE_DESCRIPTION- 类型:
Component - 修饰符:
private static final - 源码定位:
L21 - 说明:
TODO
- 类型:
-
LOOK_TITLE- 类型:
Component - 修饰符:
private static final - 源码定位:
L22 - 说明:
TODO
- 类型:
-
LOOK_DESCRIPTION- 类型:
Component - 修饰符:
private static final - 源码定位:
L23 - 说明:
TODO
- 类型:
-
tutorial- 类型:
Tutorial - 修饰符:
private final - 源码定位:
L24 - 说明:
TODO
- 类型:
-
moveToast- 类型:
TutorialToast - 修饰符:
private - 源码定位:
L25 - 说明:
TODO
- 类型:
-
lookToast- 类型:
TutorialToast - 修饰符:
private - 源码定位:
L26 - 说明:
TODO
- 类型:
-
timeWaiting- 类型:
int - 修饰符:
private - 源码定位:
L27 - 说明:
TODO
- 类型:
-
timeMoved- 类型:
int - 修饰符:
private - 源码定位:
L28 - 说明:
TODO
- 类型:
-
timeLooked- 类型:
int - 修饰符:
private - 源码定位:
L29 - 说明:
TODO
- 类型:
-
moved- 类型:
boolean - 修饰符:
private - 源码定位:
L30 - 说明:
TODO
- 类型:
-
turned- 类型:
boolean - 修饰符:
private - 源码定位:
L31 - 说明:
TODO
- 类型:
-
moveCompleted- 类型:
int - 修饰符:
private - 源码定位:
L32 - 说明:
TODO
- 类型:
-
lookCompleted- 类型:
int - 修饰符:
private - 源码定位:
L33 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public MovementTutorialStepInstance(Tutorial tutorial) @ L35
- 构造器名:MovementTutorialStepInstance
- 源码定位:L35
- 修饰符:public
参数:
- tutorial: Tutorial
说明:
TODO
方法
下面的方法块按源码顺序生成。
public void tick() @ L39
- 方法名:tick
- 源码定位:L39
- 返回类型:void
- 修饰符:public
参数:
- 无
说明:
TODO
public void clear() @ L98
- 方法名:clear
- 源码定位:L98
- 返回类型:void
- 修饰符:public
参数:
- 无
说明:
TODO
public void onInput(ClientInput input) @ L111
- 方法名:onInput
- 源码定位:L111
- 返回类型:void
- 修饰符:public
参数:
- input: ClientInput
说明:
TODO
public void onMouse(double xd, double yd) @ L118
- 方法名:onMouse
- 源码定位:L118
- 返回类型:void
- 修饰符:public
参数:
- xd: double
- yd: double
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class MovementTutorialStepInstance implements TutorialStepInstance {
private static final int MINIMUM_TIME_MOVED = 40;
private static final int MINIMUM_TIME_LOOKED = 40;
private static final int MOVE_HINT_DELAY = 100;
private static final int LOOK_HINT_DELAY = 20;
private static final int INCOMPLETE = -1;
private static final Component MOVE_TITLE = Component.translatable(
"tutorial.move.title", Tutorial.key("forward"), Tutorial.key("left"), Tutorial.key("back"), Tutorial.key("right")
);
private static final Component MOVE_DESCRIPTION = Component.translatable("tutorial.move.description", Tutorial.key("jump"));
private static final Component LOOK_TITLE = Component.translatable("tutorial.look.title");
private static final Component LOOK_DESCRIPTION = Component.translatable("tutorial.look.description");
private final Tutorial tutorial;
private @Nullable TutorialToast moveToast;
private @Nullable TutorialToast lookToast;
private int timeWaiting;
private int timeMoved;
private int timeLooked;
private boolean moved;
private boolean turned;
private int moveCompleted = -1;
private int lookCompleted = -1;
public MovementTutorialStepInstance(Tutorial tutorial) {
this.tutorial = tutorial;
}
@Override
public void tick() {
this.timeWaiting++;
if (this.moved) {
this.timeMoved++;
this.moved = false;
}
if (this.turned) {
this.timeLooked++;
this.turned = false;
}
if (this.moveCompleted == -1 && this.timeMoved > 40) {
if (this.moveToast != null) {
this.moveToast.hide();
this.moveToast = null;
}
this.moveCompleted = this.timeWaiting;
}
if (this.lookCompleted == -1 && this.timeLooked > 40) {
if (this.lookToast != null) {
this.lookToast.hide();
this.lookToast = null;
}
this.lookCompleted = this.timeWaiting;
}
if (this.moveCompleted != -1 && this.lookCompleted != -1) {
if (this.tutorial.isSurvival()) {
this.tutorial.setStep(TutorialSteps.FIND_TREE);
} else {
this.tutorial.setStep(TutorialSteps.NONE);
}
}
if (this.moveToast != null) {
this.moveToast.updateProgress(this.timeMoved / 40.0F);
}
if (this.lookToast != null) {
this.lookToast.updateProgress(this.timeLooked / 40.0F);
}
if (this.timeWaiting >= 100) {
Minecraft minecraft = this.tutorial.getMinecraft();
if (this.moveCompleted == -1 && this.moveToast == null) {
this.moveToast = new TutorialToast(minecraft.font, TutorialToast.Icons.MOVEMENT_KEYS, MOVE_TITLE, MOVE_DESCRIPTION, true);
minecraft.getToastManager().addToast(this.moveToast);
} else if (this.moveCompleted != -1 && this.timeWaiting - this.moveCompleted >= 20 && this.lookCompleted == -1 && this.lookToast == null) {
this.lookToast = new TutorialToast(minecraft.font, TutorialToast.Icons.MOUSE, LOOK_TITLE, LOOK_DESCRIPTION, true);
minecraft.getToastManager().addToast(this.lookToast);
}
}
}
@Override
public void clear() {
if (this.moveToast != null) {
this.moveToast.hide();
this.moveToast = null;
}
if (this.lookToast != null) {
this.lookToast.hide();
this.lookToast = null;
}
}
@Override
public void onInput(ClientInput input) {
if (input.keyPresses.forward() || input.keyPresses.backward() || input.keyPresses.left() || input.keyPresses.right() || input.keyPresses.jump()) {
this.moved = true;
}
}
@Override
public void onMouse(double xd, double yd) {
if (Math.abs(xd) > 0.01 || Math.abs(yd) > 0.01) {
this.turned = true;
}
}
}引用的其他类
-
- 引用位置:
字段/构造调用 - 关联成员:
TutorialToast()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数/字段/方法调用 - 关联成员:
Tutorial.key()
- 引用位置:
-
- 引用位置:
实现
- 引用位置:
-
- 引用位置:
字段/方法调用 - 关联成员:
Component.translatable()
- 引用位置: