EnsurePropsPrefabCopyable class
Пакет: com.hypixel.hytale.server.core.modules.entity.system
Файл: com/hypixel/hytale/server/core/modules/entity/system/ModelSystems.java
extends: HolderSystem<EntityStore>
Поля (1)
| Модификаторы | Тип | Имя |
|---|---|---|
|
private final ComponentType<EntityStore, PropComponent> |
propComponentType |
Методы (3)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
public Query<EntityStore> |
getQuerypublic Query<EntityStore> getQuery() |
|
public void |
onEntityAddpublic void onEntityAdd(@Nonnull Holder<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3) |
|
public void |
onEntityRemovedpublic void onEntityRemoved(@Nonnull Holder<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.modules.entity.system;
class="kw">import com.hypixel.hytale.assetstore.map.DefaultAssetMap;
class="kw">import com.hypixel.hytale.common.util.RandomUtil;
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.ComponentAccessor;
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.dependency.Dependency;
class="kw">import com.hypixel.hytale.component.dependency.Order;
class="kw">import com.hypixel.hytale.component.dependency.SystemDependency;
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.RefChangeSystem;
class="kw">import com.hypixel.hytale.component.system.tick.EntityTickingSystem;
class="kw">import com.hypixel.hytale.logger.HytaleLogger;
class="kw">import com.hypixel.hytale.math.shape.Box;
class="kw">import com.hypixel.hytale.math.vector.Rotation3f;
class="kw">import com.hypixel.hytale.protocol.ActiveAnimationsUpdate;
class="kw">import com.hypixel.hytale.protocol.MovementStates;
class="kw">import com.hypixel.hytale.protocol.PlayerSkin;
class="kw">import com.hypixel.hytale.server.core.asset.type.model.config.Model;
class="kw">import com.hypixel.hytale.server.core.asset.type.model.config.ModelAsset;
class="kw">import com.hypixel.hytale.server.core.cosmetics.CosmeticsModule;
class="kw">import com.hypixel.hytale.server.core.entity.entities.Player;
class="kw">import com.hypixel.hytale.server.core.entity.entities.player.movement.MovementManager;
class="kw">import com.hypixel.hytale.server.core.entity.movement.MovementStatesComponent;
class="kw">import com.hypixel.hytale.server.core.entity.movement.MovementStatesSystems;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.ActiveAnimationComponent;
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.ModelRotateBoundingBoxComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.PersistentModel;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.PropComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.player.ApplyRandomSkinPersistedComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.player.PlayerSkinComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.tracker.EntityTrackerSystems;
class="kw">import com.hypixel.hytale.server.core.modules.entity.tracker.NetworkId;
class="kw">import com.hypixel.hytale.server.core.prefab.PrefabCopyableComponent;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.util.Collections;
class="kw">import java.util.Map;
class="kw">import java.util.Set;
class="kw">import java.util.Map.Entry;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class ModelSystems {
@Nonnull
class="kw">private class="kw">static class="kw">final HytaleLogger LOGGER = HytaleLogger.forEnclosingClass();
class="kw">public ModelSystems() {
}
class="kw">public class="kw">static class AnimationEntityTrackerUpdate class="kw">extends EntityTickingSystem<EntityStore> {
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, EntityTrackerSystems.Visible> visibleComponentType = EntityTrackerSystems.Visible.getComponentType();
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, ActiveAnimationComponent> activeAnimationComponentType = ActiveAnimationComponent.getComponentType();
@Nonnull
class="kw">private class="kw">final Query<EntityStore> query = Query.and(this.visibleComponentType, this.activeAnimationComponentType);
class="kw">public AnimationEntityTrackerUpdate() {
}
@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;
ActiveAnimationComponent var7 = var3.getComponent(var2, this.activeAnimationComponentType);
assert var7 != null;
Ref var8 = var3.getReferenceTo(var2);
if (var7.consumeNetworkOutdated()) {
queueUpdatesFor(var8, var7, var6.visibleTo);
} else if (!var6.newlyVisibleTo.isEmpty()) {
queueUpdatesFor(var8, var7, var6.newlyVisibleTo);
}
}
class="kw">private class="kw">static void queueUpdatesFor(
@Nonnull Ref<EntityStore> var0, @Nonnull ActiveAnimationComponent var1, @Nonnull Map<Ref<EntityStore>, EntityTrackerSystems.EntityViewer> var2
) {
ActiveAnimationsUpdate var3 = new ActiveAnimationsUpdate((String[])var1.getActiveAnimations().clone());
for (Entry var5 : var2.entrySet()) {
var5.getValue().queueUpdate(var0, var3);
}
}
}
class="kw">public class="kw">static class ApplyRandomSkin class="kw">extends HolderSystem<EntityStore> {
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, ModelComponent> modelComponentType = ModelComponent.getComponentType();
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, ApplyRandomSkinPersistedComponent> randomSkinComponent = ApplyRandomSkinPersistedComponent.getComponentType();
@Nonnull
class="kw">private class="kw">final Query<EntityStore> query = Query.and(this.randomSkinComponent, this.modelComponentType);
class="kw">public ApplyRandomSkin() {
}
@Override
class="kw">public void onEntityAdd(@Nonnull Holder<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3) {
PlayerSkin var4 = CosmeticsModule.get().generateRandomSkin(RandomUtil.getSecureRandom());
var1.putComponent(PlayerSkinComponent.getComponentType(), new PlayerSkinComponent(var4));
}
@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 this.query;
}
}
class="kw">public class="kw">static class AssignNetworkIdToProps class="kw">extends HolderSystem<EntityStore> {
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, PropComponent> propComponentType = PropComponent.getComponentType();
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, NetworkId> networkIdComponentType = NetworkId.getComponentType();
@Nonnull
class="kw">private class="kw">final Query<EntityStore> query = Query.and(this.propComponentType, Query.not(this.networkIdComponentType));
class="kw">public AssignNetworkIdToProps() {
}
@Override
class="kw">public void onEntityAdd(@Nonnull Holder<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3) {
var1.addComponent(this.networkIdComponentType, new NetworkId(var3.getExternalData().takeNextNetworkId()));
}
@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 this.query;
}
}
class="kw">public class="kw">static class EnsurePropsPrefabCopyable class="kw">extends HolderSystem<EntityStore> {
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, PropComponent> propComponentType = PropComponent.getComponentType();
class="kw">public EnsurePropsPrefabCopyable() {
}
@Override
class="kw">public void onEntityAdd(@Nonnull Holder<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3) {
var1.ensureComponent(PrefabCopyableComponent.getComponentType());
}
@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 this.propComponentType;
}
}
class="kw">public class="kw">static class ModelChange class="kw">extends RefChangeSystem<EntityStore, ModelComponent> {
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, ModelComponent> modelComponentType = ModelComponent.getComponentType();
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, PersistentModel> persistentModelComponentType = PersistentModel.getComponentType();
class="kw">public ModelChange() {
}
@Override
class="kw">public Query<EntityStore> getQuery() {
class="kw">return this.persistentModelComponentType;
}
@Nonnull
@Override
class="kw">public ComponentType<EntityStore, ModelComponent> componentType() {
class="kw">return this.modelComponentType;
}
class="kw">public void onComponentAdded(
@Nonnull Ref<EntityStore> var1, @Nonnull ModelComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
) {
}
class="kw">public void onComponentSet(
@Nonnull Ref<EntityStore> var1,
ModelComponent var2,
@Nonnull ModelComponent var3,
@Nonnull Store<EntityStore> var4,
@Nonnull CommandBuffer<EntityStore> var5
) {
PersistentModel var6 = var4.getComponent(var1, this.persistentModelComponentType);
assert var6 != null;
var6.setModelReference(var3.getModel().toReference());
}
class="kw">public void onComponentRemoved(
@Nonnull Ref<EntityStore> var1, @Nonnull ModelComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
) {
var4.removeComponent(var1, this.persistentModelComponentType);
}
}
class="kw">public class="kw">static class ModelSpawned class="kw">extends HolderSystem<EntityStore> {
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, ModelComponent> modelComponentType = ModelComponent.getComponentType();
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, ModelRotateBoundingBoxComponent> modelRotateBoundingBoxComponentType = ModelRotateBoundingBoxComponent.getComponentType();
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, BoundingBox> boundingBoxComponentType = BoundingBox.getComponentType();
@Nonnull
class="kw">private class="kw">final Set<Dependency<EntityStore>> dependencies = Set.of(new SystemDependency<>(Order.AFTER, ModelSystems.SetRenderedModel.class));
class="kw">public ModelSpawned() {
}
@Override
class="kw">public void onEntityAdd(@Nonnull Holder<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3) {
ModelComponent var4 = var1.getComponent(this.modelComponentType);
assert var4 != null;
Model var5 = var4.getModel();
if (var5 == null) {
((HytaleLogger.Api)ModelSystems.LOGGER.atWarning()).log("Failed to set bounding box for entity as model is null");
} else {
Box var6 = var5.getBoundingBox();
if (var6 == null) {
((HytaleLogger.Api)ModelSystems.LOGGER.atWarning())
.log("Failed to set bounding box for entity as model bounding box is null: %s", var5.getModel());
} else {
BoundingBox var7 = var1.getComponent(this.boundingBoxComponentType);
if (var7 == null) {
var7 = new BoundingBox();
var1.addComponent(this.boundingBoxComponentType, var7);
}
var7.setBoundingBox(var6);
var7.setBaseModelBox(var6);
var7.setDetailBoxes(var5.getDetailBoxes());
ModelRotateBoundingBoxComponent var8 = var1.getComponent(this.modelRotateBoundingBoxComponentType);
TransformComponent var9 = var1.getComponent(TransformComponent.getComponentType());
if (var9 != null && var8 != null && var8.isEnableRotation()) {
Rotation3f var10 = var9.getRotation();
var7.applyRotation(var10.pitch(), var10.yaw(), var10.roll());
}
}
}
}
@Override
class="kw">public void onEntityRemoved(@Nonnull Holder<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3) {
}
@Override
class="kw">public Query<EntityStore> getQuery() {
class="kw">return this.modelComponentType;
}
@Nonnull
@Override
class="kw">public Set<Dependency<EntityStore>> getDependencies() {
class="kw">return this.dependencies;
}
}
class="kw">public class="kw">static class PlayerConnect class="kw">extends HolderSystem<EntityStore> {
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, Player> playerComponentType = Player.getComponentType();
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, ModelComponent> modelComponentType = ModelComponent.getComponentType();
@Nonnull
class="kw">private class="kw">final Query<EntityStore> query = Query.and(this.playerComponentType, Query.not(this.modelComponentType));
@Nonnull
class="kw">private class="kw">final Set<Dependency<EntityStore>> dependencies = Set.of(new SystemDependency<>(Order.BEFORE, ModelSystems.ModelSpawned.class));
class="kw">public PlayerConnect() {
}
@Override
class="kw">public void onEntityAdd(@Nonnull Holder<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3) {
Player var4 = var1.getComponent(this.playerComponentType);
assert var4 != null;
DefaultAssetMap var5 = ModelAsset.getAssetMap();
String var6 = var4.getPlayerConfigData().getPreset();
ModelAsset var7 = var6 != null ? var5.getAsset(var6) : null;
if (var7 != null) {
Model var10 = Model.createUnitScaleModel(var7);
var1.addComponent(this.modelComponentType, new ModelComponent(var10));
} else {
ModelAsset var8 = var5.getAsset("Player");
if (var8 != null) {
Model var9 = Model.createUnitScaleModel(var8);
var1.addComponent(this.modelComponentType, new ModelComponent(var9));
}
}
}
@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 this.query;
}
@Nonnull
@Override
class="kw">public Set<Dependency<EntityStore>> getDependencies() {
class="kw">return this.dependencies;
}
}
class="kw">public class="kw">static class PlayerUpdateMovementManager class="kw">extends RefChangeSystem<EntityStore, ModelComponent> {
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, ModelComponent> modelComponentType = ModelComponent.getComponentType();
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, Player> playerComponentType = Player.getComponentType();
@Nonnull
class="kw">private class="kw">final Query<EntityStore> query = Query.and(this.playerComponentType, MovementManager.getComponentType());
@Nonnull
class="kw">private class="kw">final Set<Dependency<EntityStore>> dependencies = Set.of(new SystemDependency<>(Order.AFTER, ModelSystems.UpdateBoundingBox.class));
class="kw">public PlayerUpdateMovementManager() {
}
@Nonnull
@Override
class="kw">public Query<EntityStore> getQuery() {
class="kw">return this.query;
}
@Nonnull
@Override
class="kw">public Set<Dependency<EntityStore>> getDependencies() {
class="kw">return this.dependencies;
}
@Nonnull
@Override
class="kw">public ComponentType<EntityStore, ModelComponent> componentType() {
class="kw">return this.modelComponentType;
}
class="kw">public void onComponentAdded(
@Nonnull Ref<EntityStore> var1, @Nonnull ModelComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
) {
updateMovementController(var1, var4);
}
class="kw">public void onComponentSet(
@Nonnull Ref<EntityStore> var1,
ModelComponent var2,
@Nonnull ModelComponent var3,
@Nonnull Store<EntityStore> var4,
@Nonnull CommandBuffer<EntityStore> var5
) {
updateMovementController(var1, var5);
}
class="kw">public void onComponentRemoved(
@Nonnull Ref<EntityStore> var1, @Nonnull ModelComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
) {
updateMovementController(var1, var4);
}
class="kw">private class="kw">static void updateMovementController(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1) {
MovementManager var2 = var1.getComponent(var0, MovementManager.getComponentType());
assert var2 != null;
var2.resetDefaultsAndUpdate(var0, var1);
}
}
class="kw">public class="kw">static class SetRenderedModel class="kw">extends HolderSystem<EntityStore> {
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, ModelComponent> modelComponentType = ModelComponent.getComponentType();
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, PersistentModel> persistentModelComponentType = PersistentModel.getComponentType();
@Nonnull
class="kw">private class="kw">final Query<EntityStore> query = Query.and(this.persistentModelComponentType, Query.not(this.modelComponentType));
class="kw">public SetRenderedModel() {
}
@Override
class="kw">public void onEntityAdd(@Nonnull Holder<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3) {
PersistentModel var4 = var1.getComponent(this.persistentModelComponentType);
assert var4 != null;
Model var5 = var4.getModelReference().toModel();
if (var5 != null) {
ModelComponent var6 = new ModelComponent(var5);
var1.putComponent(this.modelComponentType, var6);
} else {
((HytaleLogger.Api)ModelSystems.LOGGER.atWarning()).log("Failed to load model for entity with PersistentModel: %s", var4.getModelReference());
}
}
@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 this.query;
}
}
class="kw">public class="kw">static class UpdateBoundingBox class="kw">extends RefChangeSystem<EntityStore, ModelComponent> {
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, ModelComponent> modelComponentType = ModelComponent.getComponentType();
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, BoundingBox> boundingBoxComponentType = BoundingBox.getComponentType();
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, MovementStatesComponent> movementStatesComponentType = MovementStatesComponent.getComponentType();
class="kw">public UpdateBoundingBox() {
}
@Override
class="kw">public Query<EntityStore> getQuery() {
class="kw">return this.boundingBoxComponentType;
}
@Nonnull
@Override
class="kw">public ComponentType<EntityStore, ModelComponent> componentType() {
class="kw">return this.modelComponentType;
}
class="kw">public void onComponentAdded(
@Nonnull Ref<EntityStore> var1, @Nonnull ModelComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
) {
BoundingBox var5 = var4.getComponent(var1, this.boundingBoxComponentType);
assert var5 != null;
MovementStatesComponent var6 = var4.getComponent(var1, this.movementStatesComponentType);
assert var6 != null;
updateBoundingBox(var2.getModel(), var5, var6);
}
class="kw">public void onComponentSet(
@Nonnull Ref<EntityStore> var1,
ModelComponent var2,
@Nonnull ModelComponent var3,
@Nonnull Store<EntityStore> var4,
@Nonnull CommandBuffer<EntityStore> var5
) {
BoundingBox var6 = var5.getComponent(var1, this.boundingBoxComponentType);
assert var6 != null;
MovementStatesComponent var7 = var5.getComponent(var1, this.movementStatesComponentType);
assert var7 != null;
updateBoundingBox(var3.getModel(), var6, var7);
}
class="kw">public void onComponentRemoved(
@Nonnull Ref<EntityStore> var1, @Nonnull ModelComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
) {
BoundingBox var5 = var4.getComponent(var1, this.boundingBoxComponentType);
assert var5 != null;
var5.setBoundingBox(new Box());
}
class="kw">protected class="kw">static void updateBoundingBox(@Nonnull Model var0, @Nonnull BoundingBox var1, @Nullable MovementStatesComponent var2) {
updateBoundingBox(var0, var1, var2 != null ? var2.getMovementStates() : null);
}
class="kw">protected class="kw">static void updateBoundingBox(@Nonnull Model var0, @Nonnull BoundingBox var1, @Nullable MovementStates var2) {
Box var3 = var0.getBoundingBox(var2);
if (var3 == null) {
var3 = new Box();
}
var1.setBoundingBox(var3);
var1.setBaseModelBox(var3);
}
}
class="kw">public class="kw">static class UpdateMovementStateBoundingBox class="kw">extends EntityTickingSystem<EntityStore> {
@Nonnull
class="kw">public class="kw">static class="kw">final Set<Dependency<EntityStore>> DEPENDENCIES = Collections.singleton(
new SystemDependency<>(Order.BEFORE, MovementStatesSystems.TickingSystem.class)
);
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, MovementStatesComponent> movementStatesComponentType = MovementStatesComponent.getComponentType();
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, BoundingBox> boundingBoxComponentType = BoundingBox.getComponentType();
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, ModelComponent> modelComponentType = ModelComponent.getComponentType();
@Nonnull
class="kw">private class="kw">final Query<EntityStore> query = Query.and(this.movementStatesComponentType, this.boundingBoxComponentType, this.modelComponentType);
class="kw">public UpdateMovementStateBoundingBox() {
}
@Override
class="kw">public boolean isParallel(int var1, int var2) {
class="kw">return EntityTickingSystem.maybeUseParallel(var1, var2);
}
@Nonnull
@Override
class="kw">public Set<Dependency<EntityStore>> getDependencies() {
class="kw">return DEPENDENCIES;
}
@Nonnull
@Override
class="kw">public Query<EntityStore> getQuery() {
class="kw">return this.query;
}
@Override
class="kw">public void tick(
float var1, int var2, @Nonnull ArchetypeChunk<EntityStore> var3, @Nonnull Store<EntityStore> var4, @Nonnull CommandBuffer<EntityStore> var5
) {
MovementStatesComponent var6 = var3.getComponent(var2, this.movementStatesComponentType);
assert var6 != null;
MovementStates var7 = var6.getMovementStates();
MovementStates var8 = var6.getSentMovementStates();
boolean var9 = var7.crouching != var8.crouching || var7.forcedCrouching != var8.forcedCrouching;
boolean var10 = var7.sliding != var8.sliding;
boolean var11 = var7.sitting != var8.sitting;
boolean var12 = var7.sleeping != var8.sleeping;
if (var9 || var10 || var11 || var12) {
ModelComponent var13 = var3.getComponent(var2, this.modelComponentType);
assert var13 != null;
Model var14 = var13.getModel();
BoundingBox var15 = var3.getComponent(var2, this.boundingBoxComponentType);
assert var15 != null;
ModelSystems.UpdateBoundingBox.updateBoundingBox(var14, var15, var7);
}
}
}
}