ActionMount class
Пакет: com.hypixel.hytale.builtin.mounts.npc
Файл: com/hypixel/hytale/builtin/mounts/npc/ActionMount.java
extends: ActionBase
Поля (12)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
String |
EMPTY_ROLE_ID |
|
PlayerRef |
var10 |
|
Player |
var11 |
|
PhysicsValues |
var12 |
|
MovementConfig |
var13 |
|
MovementManager |
var14 |
|
Ref |
var7 |
|
ComponentType |
var7 |
|
boolean |
var8 |
|
NPCMountComponent |
var8 |
|
|
var8 |
|
Ref |
var9 |
Методы (4)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
if if(var8 != null) |
|
|
if if(var9 == null) |
|
|
if if(var13 != null) |
abstract |
|
super super(var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.mounts.npc;
class="kw">import com.hypixel.hytale.builtin.mounts.NPCMountComponent;
class="kw">import com.hypixel.hytale.builtin.mounts.npc.builders.BuilderActionMount;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.server.core.entity.entities.Player;
class="kw">import com.hypixel.hytale.server.core.entity.entities.player.movement.MovementConfig;
class="kw">import com.hypixel.hytale.server.core.entity.entities.player.movement.MovementManager;
class="kw">import com.hypixel.hytale.server.core.modules.entity.damage.DeathComponent;
class="kw">import com.hypixel.hytale.server.core.modules.physics.component.PhysicsValues;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
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.asset.builder.BuilderSupport;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.ActionBase;
class="kw">import com.hypixel.hytale.server.npc.instructions.ExecutionSupport;
class="kw">import com.hypixel.hytale.server.npc.sensorinfo.InfoProvider;
class="kw">import com.hypixel.hytale.server.npc.systems.RoleChangeSystem;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class ActionMount class="kw">extends ActionBase {
class="kw">public class="kw">static class="kw">final String EMPTY_ROLE_ID = "Empty_Role";
class="kw">protected class="kw">final float anchorX;
class="kw">protected class="kw">final float anchorY;
class="kw">protected class="kw">final float anchorZ;
class="kw">protected class="kw">final String movementConfigId;
class="kw">protected class="kw">final int emptyRoleIndex;
class="kw">public ActionMount(@Nonnull BuilderActionMount var1, @Nonnull BuilderSupport var2) {
super(var1);
this.anchorX = var1.getAnchorX(var2);
this.anchorY = var1.getAnchorY(var2);
this.anchorZ = var1.getAnchorZ(var2);
this.movementConfigId = var1.getMovementConfig(var2);
this.emptyRoleIndex = NPCPlugin.get().getIndex("Empty_Role");
}
@Override
class="kw">public boolean canExecute(
@Nonnull Ref<EntityStore> var1, @Nonnull ExecutionSupport var2, @Nullable InfoProvider var3, double var4, @Nonnull Store<EntityStore> var6
) {
Ref var7 = var2.getStateSupport().getInteractionIterationTarget();
boolean var8 = var7 != null && !var6.getArchetype(var7).contains(DeathComponent.getComponentType());
class="kw">return super.canExecute(var1, var2, var3, var4, var6) && var8;
}
@Override
class="kw">public boolean execute(
@Nonnull Ref<EntityStore> var1, @Nonnull ExecutionSupport var2, @Nullable InfoProvider var3, double var4, @Nonnull Store<EntityStore> var6
) {
super.execute(var1, var2, var3, var4, var6);
ComponentType var7 = NPCMountComponent.getComponentType();
NPCMountComponent var8 = var6.getComponent(var1, var7);
if (var8 != null) {
class="kw">return false;
}
var8 = var6.ensureAndGetComponent(var1, var7);
var8.setOriginalRoleIndex(NPCPlugin.get().getIndex(var2.getRole().getRoleName()));
Ref var9 = var2.getStateSupport().getInteractionIterationTarget();
if (var9 == null) {
class="kw">return false;
}
PlayerRef var10 = var6.getComponent(var9, PlayerRef.getComponentType());
assert var10 != null;
var8.setOwnerPlayerRef(var10);
var8.setAnchor(this.anchorX, this.anchorY, this.anchorZ);
Player var11 = var6.getComponent(var9, Player.getComponentType());
assert var11 != null;
PhysicsValues var12 = var6.getComponent(var9, PhysicsValues.getComponentType());
RoleChangeSystem.requestRoleChange(var1, var2.getRole(), this.emptyRoleIndex, false, null, null, var6);
MovementConfig var13 = MovementConfig.getAssetMap().getAsset(this.movementConfigId);
if (var13 != null) {
MovementManager var14 = var6.getComponent(var9, MovementManager.getComponentType());
assert var14 != null;
var14.setDefaultSettings(var13, var12, var11.getGameMode());
var14.applyDefaultSettings();
var14.update(var10.getPacketHandler());
}
class="kw">return true;
}
}