MovementStatesSystems class
Пакет: com.hypixel.hytale.server.core.entity.movement
Файл: com/hypixel/hytale/server/core/entity/movement/MovementStatesSystems.java
Поля (21)
| Модификаторы | Тип | Имя |
|---|---|---|
|
private final ComponentType<EntityStore, MovementStatesComponent> |
movementStatesComponentComponentType |
|
private final ComponentType<EntityStore, MovementStatesComponent> |
movementStatesComponentComponentType |
|
private final ComponentType<EntityStore, MovementStatesComponent> |
movementStatesComponentType |
|
private final ComponentType<EntityStore, Player> |
playerComponentType |
|
private final Query<EntityStore> |
query |
|
private final Query<EntityStore> |
query |
|
MovementStatesUpdate |
var3 |
|
ComponentType |
var4 |
|
boolean |
var5 |
|
World |
var5 |
|
MovementStatesComponent |
var6 |
|
Player |
var6 |
|
EntityTrackerSystems.Visible |
var6 |
|
MovementStates |
var7 |
|
MovementStatesComponent |
var7 |
|
MovementStatesComponent |
var7 |
|
PlayerWorldData |
var8 |
|
MovementStates |
var8 |
|
SavedMovementStates |
var9 |
|
MovementStates |
var9 |
|
private final ComponentType<EntityStore, EntityTrackerSystems.Visible> |
visibleComponentType |
Методы (17)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
public |
AddSystempublic AddSystem(@Nonnull ComponentType<EntityStore, MovementStatesComponent> var1) |
|
public |
PlayerInitSystempublic PlayerInitSystem(@Nonnull ComponentType<EntityStore, Player> var1, @Nonnull ComponentType<EntityStore, MovementStatesComponent> var2) |
|
public |
TickingSystempublic TickingSystem(@Nonnull ComponentType<EntityStore, EntityTrackerSystems.Visible> var1, @Nonnull ComponentType<EntityStore, MovementStatesComponent> var2) |
|
public static void |
copyMovementStatesFrompublic static void copyMovementStatesFrom(@Nonnull MovementStates var0, @Nonnull MovementStates var1) |
abstract |
|
copyMovementStatesFrom copyMovementStatesFrom(var8, var9) |
|
public SystemGroup<EntityStore> |
getGrouppublic SystemGroup<EntityStore> getGroup() |
|
public Query<EntityStore> |
getQuerypublic Query<EntityStore> getQuery() |
|
public Query<EntityStore> |
getQuerypublic Query<EntityStore> getQuery() |
|
public Query<EntityStore> |
getQuerypublic Query<EntityStore> getQuery() |
|
|
if if(var5 && var6 != null) |
|
public boolean |
isParallelpublic boolean isParallel(int var1, int var2) |
|
public void |
onEntityAddpublic void onEntityAdd(@Nonnull Holder<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3) |
|
public void |
onEntityAddedpublic void onEntityAdded(@Nonnull Ref<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4) |
|
public void |
onEntityRemovepublic void onEntityRemove(@Nonnull Ref<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4) |
|
public void |
onEntityRemovedpublic void onEntityRemoved(@Nonnull Holder<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3) |
|
private static void |
queueUpdatesForprivate static void queueUpdatesFor(@Nonnull Ref<EntityStore> var0, @Nonnull Map<Ref<EntityStore>, EntityTrackerSystems.EntityViewer> var1, @Nonnull MovementStatesComponent var2) |
|
public void |
tickpublic void tick(float var1, int var2, @Nonnull ArchetypeChunk<EntityStore> var3, @Nonnull Store<EntityStore> var4, @Nonnull CommandBuffer<EntityStore> var5) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.entity.movement;
class="kw">import com.hypixel.hytale.component.AddReason;
class="kw">import com.hypixel.hytale.component.ArchetypeChunk;
class="kw">import com.hypixel.hytale.component.CommandBuffer;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.component.Holder;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.RemoveReason;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.component.SystemGroup;
class="kw">import com.hypixel.hytale.component.query.Query;
class="kw">import com.hypixel.hytale.component.system.HolderSystem;
class="kw">import com.hypixel.hytale.component.system.RefSystem;
class="kw">import com.hypixel.hytale.component.system.tick.EntityTickingSystem;
class="kw">import com.hypixel.hytale.protocol.MovementStates;
class="kw">import com.hypixel.hytale.protocol.MovementStatesUpdate;
class="kw">import com.hypixel.hytale.protocol.SavedMovementStates;
class="kw">import com.hypixel.hytale.server.core.entity.Frozen;
class="kw">import com.hypixel.hytale.server.core.entity.entities.Player;
class="kw">import com.hypixel.hytale.server.core.entity.entities.player.data.PlayerWorldData;
class="kw">import com.hypixel.hytale.server.core.modules.entity.AllLegacyLivingEntityTypesQuery;
class="kw">import com.hypixel.hytale.server.core.modules.entity.tracker.EntityTrackerSystems;
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.util.Map;
class="kw">import java.util.Map.Entry;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class MovementStatesSystems {
class="kw">public MovementStatesSystems() {
}
class="kw">public class="kw">static class AddSystem class="kw">extends HolderSystem<EntityStore> {
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, MovementStatesComponent> movementStatesComponentComponentType;
class="kw">public AddSystem(@Nonnull ComponentType<EntityStore, MovementStatesComponent> var1) {
this.movementStatesComponentComponentType = var1;
}
@Override
class="kw">public void onEntityAdd(@Nonnull Holder<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3) {
var1.ensureComponent(this.movementStatesComponentComponentType);
ComponentType var4 = Frozen.getComponentType();
boolean var5 = var1.getComponent(var4) != null;
MovementStatesComponent var6 = var1.getComponent(this.movementStatesComponentComponentType);
if (var5 && var6 != null) {
MovementStates var7 = var6.getMovementStates();
var7.idle = true;
var7.horizontalIdle = true;
}
}
@Override
class="kw">public void onEntityRemoved(@Nonnull Holder<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3) {
}
@Nonnull
@Override
class="kw">public Query<EntityStore> getQuery() {
class="kw">return AllLegacyLivingEntityTypesQuery.INSTANCE;
}
}
class="kw">public class="kw">static class PlayerInitSystem class="kw">extends RefSystem<EntityStore> {
@Nonnull
class="kw">private class="kw">final Query<EntityStore> query;
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, Player> playerComponentType;
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, MovementStatesComponent> movementStatesComponentType;
class="kw">public PlayerInitSystem(@Nonnull ComponentType<EntityStore, Player> var1, @Nonnull ComponentType<EntityStore, MovementStatesComponent> var2) {
this.playerComponentType = var1;
this.movementStatesComponentType = var2;
this.query = Query.and(var1, var2);
}
@Override
class="kw">public void onEntityAdded(
@Nonnull Ref<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
) {
World var5 = var4.getExternalData().getWorld();
Player var6 = var3.getComponent(var1, this.playerComponentType);
assert var6 != null;
MovementStatesComponent var7 = var3.getComponent(var1, this.movementStatesComponentType);
assert var7 != null;
PlayerWorldData var8 = var6.getPlayerConfigData().getPerWorldData(var5.getName());
SavedMovementStates var9 = var8.getLastMovementStates();
Player.applyMovementStates(var1, var9 != null ? var9 : new SavedMovementStates(), var7.getMovementStates(), var3);
}
@Override
class="kw">public void onEntityRemove(
@Nonnull Ref<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
) {
}
@Nonnull
@Override
class="kw">public Query<EntityStore> getQuery() {
class="kw">return this.query;
}
}
class="kw">public class="kw">static class TickingSystem class="kw">extends EntityTickingSystem<EntityStore> {
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, EntityTrackerSystems.Visible> visibleComponentType;
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, MovementStatesComponent> movementStatesComponentComponentType;
@Nonnull
class="kw">private class="kw">final Query<EntityStore> query;
class="kw">public TickingSystem(
@Nonnull ComponentType<EntityStore, EntityTrackerSystems.Visible> var1, @Nonnull ComponentType<EntityStore, MovementStatesComponent> var2
) {
this.visibleComponentType = var1;
this.query = Query.and(var2, var1);
this.movementStatesComponentComponentType = var2;
}
@Nullable
@Override
class="kw">public SystemGroup<EntityStore> getGroup() {
class="kw">return EntityTrackerSystems.QUEUE_UPDATE_GROUP;
}
@Nonnull
@Override
class="kw">public Query<EntityStore> getQuery() {
class="kw">return this.query;
}
@Override
class="kw">public boolean isParallel(int var1, int var2) {
class="kw">return EntityTickingSystem.maybeUseParallel(var1, var2);
}
@Override
class="kw">public void tick(
float var1, int var2, @Nonnull ArchetypeChunk<EntityStore> var3, @Nonnull Store<EntityStore> var4, @Nonnull CommandBuffer<EntityStore> var5
) {
EntityTrackerSystems.Visible var6 = var3.getComponent(var2, this.visibleComponentType);
assert var6 != null;
MovementStatesComponent var7 = var3.getComponent(var2, this.movementStatesComponentComponentType);
assert var7 != null;
MovementStates var8 = var7.getMovementStates();
MovementStates var9 = var7.getSentMovementStates();
if (!var8.equals(var9)) {
copyMovementStatesFrom(var8, var9);
queueUpdatesFor(var3.getReferenceTo(var2), var6.visibleTo, var7);
} else if (!var6.newlyVisibleTo.isEmpty()) {
queueUpdatesFor(var3.getReferenceTo(var2), var6.newlyVisibleTo, var7);
}
}
class="kw">private class="kw">static void queueUpdatesFor(
@Nonnull Ref<EntityStore> var0, @Nonnull Map<Ref<EntityStore>, EntityTrackerSystems.EntityViewer> var1, @Nonnull MovementStatesComponent var2
) {
MovementStatesUpdate var3 = new MovementStatesUpdate();
var3.movementStates = var2.getMovementStates();
for (Entry var5 : var1.entrySet()) {
if (!var0.equals(var5.getKey())) {
var5.getValue().queueUpdate(var0, var3);
}
}
}
class="kw">public class="kw">static void copyMovementStatesFrom(@Nonnull MovementStates var0, @Nonnull MovementStates var1) {
var1.idle = var0.idle;
var1.horizontalIdle = var0.horizontalIdle;
var1.jumping = var0.jumping;
var1.flying = var0.flying;
var1.walking = var0.walking;
var1.running = var0.running;
var1.sprinting = var0.sprinting;
var1.crouching = var0.crouching;
var1.forcedCrouching = var0.forcedCrouching;
var1.falling = var0.falling;
var1.fallingFar = var0.fallingFar;
var1.climbing = var0.climbing;
var1.inFluid = var0.inFluid;
var1.swimming = var0.swimming;
var1.swimJumping = var0.swimJumping;
var1.onGround = var0.onGround;
var1.mantling = var0.mantling;
var1.sliding = var0.sliding;
var1.mounting = var0.mounting;
var1.rolling = var0.rolling;
var1.sitting = var0.sitting;
var1.gliding = var0.gliding;
var1.sleeping = var0.sleeping;
var1.extraJumpsUsed = var0.extraJumpsUsed;
}
}
}