ColumnPosArgument.java
net.minecraft.commands.arguments.coordinates.ColumnPosArgument
信息
- 全限定名:net.minecraft.commands.arguments.coordinates.ColumnPosArgument
- 类型:public class
- 包:net.minecraft.commands.arguments.coordinates
- 源码路径:src/main/java/net/minecraft/commands/arguments/coordinates/ColumnPosArgument.java
- 起始行号:L21
- 实现:ArgumentType
- 职责:
TODO
字段/常量
-
EXAMPLES- 类型:
Collection<String> - 修饰符:
private static final - 源码定位:
L22 - 说明:
TODO
- 类型:
-
ERROR_NOT_COMPLETE- 类型:
SimpleCommandExceptionType - 修饰符:
public static final - 源码定位:
L23 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
- 无
方法
下面的方法块按源码顺序生成。
public static ColumnPosArgument columnPos() @ L25
- 方法名:columnPos
- 源码定位:L25
- 返回类型:ColumnPosArgument
- 修饰符:public static
参数:
- 无
说明:
TODO
public static ColumnPos getColumnPos(CommandContext<CommandSourceStack> context, String name) @ L29
- 方法名:getColumnPos
- 源码定位:L29
- 返回类型:ColumnPos
- 修饰符:public static
参数:
- context: CommandContext
- name: String
说明:
TODO
public Coordinates parse(StringReader reader) @ L34
- 方法名:parse
- 源码定位:L34
- 返回类型:Coordinates
- 修饰符:public
参数:
- reader: StringReader
说明:
TODO
public <S> CompletableFuture<Suggestions> listSuggestions(CommandContext<S> context, SuggestionsBuilder builder) @ L51
- 方法名:listSuggestions
- 源码定位:L51
- 返回类型:
CompletableFuture - 修饰符:public
参数:
- context: CommandContext
- builder: SuggestionsBuilder
说明:
TODO
public Collection<String> getExamples() @ L68
- 方法名:getExamples
- 源码定位:L68
- 返回类型:Collection
- 修饰符:public
参数:
- 无
说明:
TODO
代码
public class ColumnPosArgument implements ArgumentType<Coordinates> {
private static final Collection<String> EXAMPLES = Arrays.asList("0 0", "~ ~", "~1 ~-2", "^ ^", "^-1 ^0");
public static final SimpleCommandExceptionType ERROR_NOT_COMPLETE = new SimpleCommandExceptionType(Component.translatable("argument.pos2d.incomplete"));
public static ColumnPosArgument columnPos() {
return new ColumnPosArgument();
}
public static ColumnPos getColumnPos(CommandContext<CommandSourceStack> context, String name) {
BlockPos pos = context.getArgument(name, Coordinates.class).getBlockPos(context.getSource());
return new ColumnPos(pos.getX(), pos.getZ());
}
public Coordinates parse(StringReader reader) throws CommandSyntaxException {
int start = reader.getCursor();
if (!reader.canRead()) {
throw ERROR_NOT_COMPLETE.createWithContext(reader);
} else {
WorldCoordinate x = WorldCoordinate.parseInt(reader);
if (reader.canRead() && reader.peek() == ' ') {
reader.skip();
WorldCoordinate z = WorldCoordinate.parseInt(reader);
return new WorldCoordinates(x, new WorldCoordinate(true, 0.0), z);
} else {
reader.setCursor(start);
throw ERROR_NOT_COMPLETE.createWithContext(reader);
}
}
}
@Override
public <S> CompletableFuture<Suggestions> listSuggestions(CommandContext<S> context, SuggestionsBuilder builder) {
if (!(context.getSource() instanceof SharedSuggestionProvider)) {
return Suggestions.empty();
} else {
String remainder = builder.getRemaining();
Collection<SharedSuggestionProvider.TextCoordinates> suggestedCoordinates;
if (!remainder.isEmpty() && remainder.charAt(0) == '^') {
suggestedCoordinates = Collections.singleton(SharedSuggestionProvider.TextCoordinates.DEFAULT_LOCAL);
} else {
suggestedCoordinates = ((SharedSuggestionProvider)context.getSource()).getRelevantCoordinates();
}
return SharedSuggestionProvider.suggest2DCoordinates(remainder, suggestedCoordinates, builder, Commands.createValidator(this::parse));
}
}
@Override
public Collection<String> getExamples() {
return EXAMPLES;
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Commands.createValidator()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
SharedSuggestionProvider.suggest2DCoordinates()
- 引用位置:
-
- 引用位置:
实现/返回值
- 引用位置:
-
- 引用位置:
方法调用/构造调用 - 关联成员:
WorldCoordinate(), WorldCoordinate.parseInt()
- 引用位置:
-
- 引用位置:
构造调用 - 关联成员:
WorldCoordinates()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Component.translatable()
- 引用位置:
-
- 引用位置:
构造调用/返回值 - 关联成员:
ColumnPos()
- 引用位置: