ViewportCommand class
Пакет: com.hypixel.hytale.builtin.hytalegenerator.commands
Файл: com/hypixel/hytale/builtin/hytalegenerator/commands/ViewportCommand.java
extends: AbstractPlayerCommand
Поля (17)
| Модификаторы | Тип | Имя |
|---|---|---|
|
|
return |
|
Vector3i |
var10 |
|
Vector3i |
var11 |
|
BuilderToolsPlugin.BuilderState |
var13 |
|
Viewport |
var14 |
|
BlockSelection |
var15 |
|
WeakReference |
var16 |
|
World |
var2 |
|
String |
var2 |
|
|
var2 |
|
Player |
var6 |
|
Bounds3i |
var7 |
|
|
var7 |
|
|
var7 |
|
Integer |
var8 |
|
|
var8 |
|
Vector3d |
var9 |
Методы (5)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
if if(this.activeTask != null) |
|
|
if if(var8 != null) |
|
|
if if(var15 == null) |
|
|
if if(var2 != null) |
abstract |
|
super super("Viewport", "server.commands.viewport.desc") |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.hytalegenerator.commands;
class="kw">import com.hypixel.hytale.builtin.buildertools.BuilderToolsPlugin;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.LoggerUtil;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.Viewport;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.AssetManager;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.bounds.Bounds3i;
class="kw">import com.hypixel.hytale.common.util.ExceptionUtil;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.math.vector.Vector3dUtil;
class="kw">import com.hypixel.hytale.math.vector.Vector3iUtil;
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.FlagArg;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.system.OptionalArg;
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.standard.BlockSelection;
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 java.lang.ref.WeakReference;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3d;
class="kw">import org.joml.Vector3i;
class="kw">public class ViewportCommand class="kw">extends AbstractPlayerCommand {
@Nonnull
class="kw">private class="kw">final FlagArg deleteFlag = this.withFlagArg("delete", "server.commands.viewport.delete.desc");
@Nonnull
class="kw">private class="kw">final OptionalArg<Integer> radiusArg = this.withOptionalArg("radius", "server.commands.viewport.radius.desc", ArgTypes.INTEGER);
@Nonnull
class="kw">private class="kw">final AssetManager assetManager;
@Nullable
class="kw">private Runnable activeTask;
class="kw">public ViewportCommand(@Nonnull AssetManager var1) {
super("Viewport", "server.commands.viewport.desc");
this.setPermissionGroups("hytale:WorldEditor");
this.assetManager = var1;
}
@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 (this.activeTask != null) {
this.assetManager.unregisterReloadListener(this.activeTask);
this.activeTask = null;
}
if (var1.get(this.deleteFlag)) {
var4.sendMessage(Message.translation("server.commands.viewport.removed"));
} else {
Integer var8 = var1.get(this.radiusArg);
Bounds3i var7;
if (var8 != null) {
var8 = var8 << 5;
Vector3d var9 = var2.getComponent(var3, TransformComponent.getComponentType()).getPosition();
Vector3i var10 = Vector3dUtil.toVector3i(new Vector3d(var9).sub(var8.intValue(), var8.intValue(), var8.intValue()));
Vector3i var11 = Vector3dUtil.toVector3i(new Vector3d(var9).add(var8.intValue(), var8.intValue(), var8.intValue())).add(Vector3iUtil.ALL_ONES);
var7 = new Bounds3i(var10, var11);
} else {
BuilderToolsPlugin.BuilderState var13 = BuilderToolsPlugin.getState(var6, var4);
BlockSelection var15 = var13.getSelection();
if (var15 == null) {
class="kw">return;
}
var7 = new Bounds3i(var15.getSelectionMin(), var15.getSelectionMax());
}
Viewport var14 = new Viewport(var7, var5);
WeakReference var16 = new WeakReference<>(var5);
this.activeTask = () -> {
World var2 = var16.get();
if (var2 != null) {
var2.execute(() -> {
try {
var14.refresh();
} catch (Exception var3) {
String var2 = "Could not refresh viewport because of the following exception:\n";
var2 = var2 + ExceptionUtil.toStringWithStack(var3);
LoggerUtil.getLogger().severe(var2);
}
});
}
};
this.activeTask.run();
this.assetManager.registerReloadListener(this.activeTask);
var4.sendMessage(Message.translation("server.commands.viewport.created"));
}
}
}