NPCTestCommand class
Пакет: com.hypixel.hytale.server.npc.commands
Файл: com/hypixel/hytale/server/npc/commands/NPCTestCommand.java
extends: AbstractCommandCollection
Поля (19)
| Модификаторы | Тип | Имя |
|---|---|---|
|
BoundingBox |
var10 |
|
Box |
var11 |
|
TransformComponent |
var12 |
|
ModelComponent |
var13 |
|
Vector3d |
var14 |
|
Model |
var15 |
|
float |
var16 |
|
boolean |
var17 |
|
boolean |
var18 |
|
boolean |
var19 |
|
NPCPlugin |
var20 |
|
String |
var21 |
|
|
var21 |
|
|
var21 |
|
|
var21 |
|
CollisionResult |
var6 |
|
PositionProbeAir |
var7 |
|
PositionProbeWater |
var8 |
|
Player |
var9 |
Методы (4)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
public |
ProbeTestCommandpublic ProbeTestCommand() |
|
protected void |
executeprotected void execute(@Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5) |
abstract |
|
super super("test", "server.commands.npc.test.desc") |
abstract |
|
super super("probe", "server.commands.npc.test.probe.desc") |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.npc.commands;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.math.shape.Box;
class="kw">import com.hypixel.hytale.math.util.ChunkUtil;
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.asset.type.model.config.Model;
class="kw">import com.hypixel.hytale.server.core.command.system.CommandContext;
class="kw">import com.hypixel.hytale.server.core.command.system.basecommands.AbstractCommandCollection;
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.collision.CollisionModule;
class="kw">import com.hypixel.hytale.server.core.modules.collision.CollisionResult;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.BoundingBox;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.ModelComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
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 com.hypixel.hytale.server.npc.NPCPlugin;
class="kw">import com.hypixel.hytale.server.npc.util.PositionProbeAir;
class="kw">import com.hypixel.hytale.server.npc.util.PositionProbeWater;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;
class="kw">public class NPCTestCommand class="kw">extends AbstractCommandCollection {
class="kw">public NPCTestCommand() {
super("test", "server.commands.npc.test.desc");
this.addSubCommand(new NPCTestCommand.ProbeTestCommand());
}
class="kw">public class="kw">static class ProbeTestCommand class="kw">extends AbstractPlayerCommand {
class="kw">public ProbeTestCommand() {
super("probe", "server.commands.npc.test.probe.desc");
}
@Override
class="kw">protected void execute(
@Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5
) {
CollisionResult var6 = new CollisionResult();
PositionProbeAir var7 = new PositionProbeAir();
PositionProbeWater var8 = new PositionProbeWater();
Player var9 = var2.getComponent(var3, Player.getComponentType());
assert var9 != null;
BoundingBox var10 = var2.getComponent(var3, BoundingBox.getComponentType());
assert var10 != null;
Box var11 = var10.getBoundingBox();
TransformComponent var12 = var2.getComponent(var3, TransformComponent.getComponentType());
assert var12 != null;
ModelComponent var13 = var2.getComponent(var3, ModelComponent.getComponentType());
assert var13 != null;
Vector3d var14 = var12.getPosition();
Model var15 = var13.getModel();
float var16 = var15 != null ? var15.getEyeHeight(var3, var2) : 0.0F;
boolean var17 = var7.probePosition(var3, var11, var14, var6, var2);
boolean var18 = var8.probePosition(var3, var11, var14, var6, var16, var2);
boolean var19 = CollisionModule.get().validatePosition(var5, var11, var14, 4, null, (var0, var1x, var2x, var3x) -> var3x.blockId != -1, var6) != -1;
NPCPlugin var20 = NPCPlugin.get();
String var21 = "Pos Y ["
+ var14.y
+ ", "
+ var11
+ "] Height="
+ var5.getChunk(ChunkUtil.indexChunkFromBlock(var14.x, var14.z)).getHeight(MathUtil.floor(var14.x), MathUtil.floor(var14.z));
var1.sendMessage(Message.raw(var21));
var20.getLogger().at(Level.INFO).log("%s", var21);
var21 = "Air " + var17 + " " + var7;
var1.sendMessage(Message.raw(var21));
var20.getLogger().at(Level.INFO).log("%s", var21);
var21 = "Water " + var18 + " " + var8;
var1.sendMessage(Message.raw(var21));
var20.getLogger().at(Level.INFO).log("%s", var21);
var21 = "ValidatePosition " + var19;
var1.sendMessage(Message.raw(var21));
var20.getLogger().at(Level.INFO).log("%s", var21);
}
}
}