AngleArgument.java
net.minecraft.commands.arguments.AngleArgument
信息
- 全限定名:net.minecraft.commands.arguments.AngleArgument
- 类型:public class
- 包:net.minecraft.commands.arguments
- 源码路径:src/main/java/net/minecraft/commands/arguments/AngleArgument.java
- 起始行号:L15
- 实现:ArgumentType<AngleArgument.SingleAngle>
- 职责:
TODO
字段/常量
-
EXAMPLES- 类型:
Collection<String> - 修饰符:
private static final - 源码定位:
L16 - 说明:
TODO
- 类型:
-
ERROR_NOT_COMPLETE- 类型:
SimpleCommandExceptionType - 修饰符:
public static final - 源码定位:
L17 - 说明:
TODO
- 类型:
-
ERROR_INVALID_ANGLE- 类型:
SimpleCommandExceptionType - 修饰符:
public static final - 源码定位:
L18 - 说明:
TODO
- 类型:
内部类/嵌套类型
net.minecraft.commands.arguments.AngleArgument.SingleAngle- 类型:
class - 修饰符:
public static final - 源码定位:
L47 - 说明:
TODO
- 类型:
构造器
- 无
方法
下面的方法块按源码顺序生成。
public static AngleArgument angle() @ L20
- 方法名:angle
- 源码定位:L20
- 返回类型:AngleArgument
- 修饰符:public static
参数:
- 无
说明:
TODO
public static float getAngle(CommandContext<CommandSourceStack> context, String name) @ L24
- 方法名:getAngle
- 源码定位:L24
- 返回类型:float
- 修饰符:public static
参数:
- context: CommandContext
- name: String
说明:
TODO
public AngleArgument.SingleAngle parse(StringReader reader) @ L28
- 方法名:parse
- 源码定位:L28
- 返回类型:AngleArgument.SingleAngle
- 修饰符:public
参数:
- reader: StringReader
说明:
TODO
public Collection<String> getExamples() @ L42
- 方法名:getExamples
- 源码定位:L42
- 返回类型:Collection
- 修饰符:public
参数:
- 无
说明:
TODO
代码
public class AngleArgument implements ArgumentType<AngleArgument.SingleAngle> {
private static final Collection<String> EXAMPLES = Arrays.asList("0", "~", "~-5");
public static final SimpleCommandExceptionType ERROR_NOT_COMPLETE = new SimpleCommandExceptionType(Component.translatable("argument.angle.incomplete"));
public static final SimpleCommandExceptionType ERROR_INVALID_ANGLE = new SimpleCommandExceptionType(Component.translatable("argument.angle.invalid"));
public static AngleArgument angle() {
return new AngleArgument();
}
public static float getAngle(CommandContext<CommandSourceStack> context, String name) {
return context.getArgument(name, AngleArgument.SingleAngle.class).getAngle(context.getSource());
}
public AngleArgument.SingleAngle parse(StringReader reader) throws CommandSyntaxException {
if (!reader.canRead()) {
throw ERROR_NOT_COMPLETE.createWithContext(reader);
} else {
boolean isRelative = WorldCoordinate.isRelative(reader);
float value = reader.canRead() && reader.peek() != ' ' ? reader.readFloat() : 0.0F;
if (!Float.isNaN(value) && !Float.isInfinite(value)) {
return new AngleArgument.SingleAngle(value, isRelative);
} else {
throw ERROR_INVALID_ANGLE.createWithContext(reader);
}
}
}
@Override
public Collection<String> getExamples() {
return EXAMPLES;
}
public static final class SingleAngle {
private final float angle;
private final boolean isRelative;
private SingleAngle(float angle, boolean isRelative) {
this.angle = angle;
this.isRelative = isRelative;
}
public float getAngle(CommandSourceStack sender) {
return Mth.wrapDegrees(this.isRelative ? this.angle + sender.getRotation().y : this.angle);
}
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
WorldCoordinate.isRelative()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Component.translatable()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Mth.wrapDegrees()
- 引用位置: