FloodFillCommand class
Пакет: com.hypixel.hytale.builtin.buildertools.commands
Файл: com/hypixel/hytale/builtin/buildertools/commands/FloodFillCommand.java
extends: AbstractPlayerCommand
Поля (9)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
int |
MAX_RADIUS |
|
Vector3d |
var10 |
|
int |
var11 |
|
int |
var12 |
|
int |
var13 |
|
Player |
var6 |
|
BlockPattern |
var7 |
|
int |
var8 |
|
TransformComponent |
var9 |
Методы (1)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
|
super super("floodfill", "server.commands.floodfill.desc") |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.buildertools.commands;
class="kw">import com.hypixel.hytale.builtin.buildertools.BuilderToolsPlugin;
class="kw">import com.hypixel.hytale.builtin.buildertools.PrototypePlayerBuilderToolSettings;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.command.system.CommandContext;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.system.RequiredArg;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.types.ArgTypes;
class="kw">import com.hypixel.hytale.server.core.command.system.basecommands.AbstractPlayerCommand;
class="kw">import com.hypixel.hytale.server.core.entity.entities.Player;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.prefab.selection.mask.BlockPattern;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;
class="kw">public class FloodFillCommand class="kw">extends AbstractPlayerCommand {
class="kw">public class="kw">static class="kw">final int MAX_RADIUS = 500;
@Nonnull
class="kw">private class="kw">final RequiredArg<Integer> radiusArg = this.withRequiredArg("radius", "server.commands.floodfill.args.radius.desc", ArgTypes.INTEGER);
@Nonnull
class="kw">private class="kw">final RequiredArg<BlockPattern> patternArg = this.withRequiredArg(
"pattern", "server.commands.floodfill.args.replacement.desc", ArgTypes.BLOCK_PATTERN
);
class="kw">public FloodFillCommand() {
super("floodfill", "server.commands.floodfill.desc");
this.setPermissionGroups("hytale:WorldEditor");
}
@Override
class="kw">protected void execute(
@Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5
) {
Player var6 = var2.getComponent(var3, Player.getComponentType());
assert var6 != null;
if (PrototypePlayerBuilderToolSettings.isOkayToDoCommandsOnSelection(var3, var4, var2)) {
BlockPattern var7 = this.patternArg.get(var1);
if (var7 != null && !var7.isEmpty()) {
int var8 = Math.clamp(this.radiusArg.get(var1).intValue(), 1, 500);
TransformComponent var9 = var2.getComponent(var3, TransformComponent.getComponentType());
assert var9 != null;
Vector3d var10 = var9.getPosition();
int var11 = MathUtil.floor(var10.x());
int var12 = Math.clamp(MathUtil.floor(var10.y()), 0, 319);
int var13 = MathUtil.floor(var10.z());
BuilderToolsPlugin.addToQueue(var6, var4, (var5x, var6x, var7x) -> var6x.floodFill(var7, var8, var11, var12, var13, var7x));
var1.sendMessage(Message.translation("server.commands.floodfill.success").param("key", var7.toString()));
} else {
var1.sendMessage(Message.translation("server.builderTools.invalidBlockType").param("name", "").param("key", ""));
}
}
}
}