DeathSystems class

Пакет: com.hypixel.hytale.server.core.modules.entity.damage

Файл: com/hypixel/hytale/server/core/modules/entity/damage/DeathSystems.java

Поля (135)

МодификаторыТипИмя
private static final ComponentType<EntityStore, DeferredCorpseRemoval> DEFERRED_CORPSE_REMOVAL_COMPONENT_TYPE
private static final Set<Dependency<EntityStore>> DEPENDENCIES
private static final Set<Dependency<EntityStore>> DEPENDENCIES
private static final Set<Dependency<EntityStore>> DEPENDENCIES
private static final ComponentType<EntityStore, EntityStatMap> ENTITY_STAT_MAP_COMPONENT_TYPE
private static final ComponentType<EntityStore, Interactions> INTERACTIONS_COMPONENT_TYPE
private static final ComponentType<EntityStore, InteractionManager> INTERACTION_MANAGER_COMPONENT_TYPE
private static final ComponentType<EntityStore, InteractionManager> INTERACTION_MANAGER_COMPONENT_TYPE
private static final HytaleLogger LOGGER
private static final HytaleLogger LOGGER
private static final Query<EntityStore> QUERY
private static final Query<EntityStore> QUERY
private static final Query<EntityStore> QUERY
private static final Query<EntityStore> QUERY
private static final Query<EntityStore> QUERY
private static final Query<EntityStore> QUERY
break
private final Set<Dependency<EntityStore>> dependencies
private final Query<EntityStore> query
return
Universe var1
GameModeType var1
TransformComponent var10
Vector3d var10
PlayerRef var10
InteractionChain var10
PlayerRef var10
ItemStack var11
KillFeedEvent.KillerMessage var11
Transform var11
Ref var11
RootInteraction var11
double var12
KillFeedMessage var12
WorldTimeResource var12
ItemStack var13
Instant var13
ItemStack var14
int var14
ItemStackSlotTransaction var15
KillFeedEvent.DecedentMessage var15
String var15
ItemStack var16
Ref var16
PlayerWorldData var16
List var17
var17
var17
Message var17
TransformComponent var18
KillFeedEvent.Display var18
Vector3d var19
HardcoreState var2
EntityStatMap var20
double var21
HeadRotation var22
Rotation3f var23
Holder[] var25
int var26
int var27
String var3
HytaleServerConfig.Defaults var3
int var3
DeathComponent var3
Message var3
var3
DeathComponent var4
HardcoreMode var4
PlayerLives var4
Damage var4
DamageCause var5
EffectControllerComponent var5
EntityStatMap var5
InteractionManager var5
ModelComponent var5
Player var5
Damage var5
World var5
String var5
Message var5
Player var5
int var5
DeathConfig var5
Nameplate var5
InteractionManager var5
DeathComponent var5
PlayerRef var5
Model var6
DeathComponent var6
MovementStatesComponent var6
CombinedItemContainer var6
World var6
GameplayConfig var6
int var6
GameMode var6
int var6
Player var6
Damage var6
Interactions var6
ModelComponent var6
UUID var6
DeathComponent var6
String[] var7
InteractionChain var7
double var7
ObjectArrayList var7
WorldMapConfig var7
GameMode var7
Player var7
PlayerRef var7
DamageCause var7
String var7
var7
MovementStatesComponent var7
VoiceModule var7
InteractionChain var7
String var8
DeferredCorpseRemoval var8
double var8
Message var8
var8
Player var8
int var8
RespawnPage var8
var8
var8
UnarmedInteractions var8
VoicePlayerState var8
DeferredCorpseRemoval var8
String var9
boolean var9
var9
TransformComponent var9
InteractionContext var9
VoiceRouter var9

Методы (104)

МодификаторыВозвратСигнатура
public ClearEntityEffectspublic ClearEntityEffects()
public ClearHealthpublic ClearHealth()
public ClearInteractionspublic ClearInteractions()
public CorpseRemovalpublic CorpseRemoval()
public DeathAnimationpublic DeathAnimation()
public DropPlayerDeathItemspublic DropPlayerDeathItems()
public KillFeedpublic KillFeed()
public OnDeathSystempublic OnDeathSystem()
public PlayerDeathMarkerpublic PlayerDeathMarker()
public PlayerDeathScreenpublic PlayerDeathScreen()
public PlayerDropItemsConfigpublic PlayerDropItemsConfig()
public PlayerKilledPlayerpublic PlayerKilledPlayer()
public RunDeathInteractionspublic RunDeathInteractions()
public SpawnedDeathAnimationpublic SpawnedDeathAnimation()
public StopVoiceOnDeathpublic StopVoiceOnDeath()
public TickCorpseRemovalpublic TickCorpseRemoval()
private static int burnLifeAndGetRemainingprivate static int burnLifeAndGetRemaining(@Nonnull Ref<EntityStore> var0, @Nonnull Store<EntityStore> var1, @Nonnull CommandBuffer<EntityStore> var2)
private static int burnPersonalLifeprivate static int burnPersonalLife(@Nonnull Ref<EntityStore> var0, @Nonnull Store<EntityStore> var1, @Nonnull CommandBuffer<EntityStore> var2, int var3)
private static int burnPoolLifeprivate static int burnPoolLife(int var0)
public ComponentType<EntityStore, DeathComponent> componentTypepublic ComponentType<EntityStore, DeathComponent> componentType()
private static Message computeDeathMessageprivate static Message computeDeathMessage(@Nonnull Ref<EntityStore> var0, @Nonnull Store<EntityStore> var1, @Nonnull DeathComponent var2)
private static String deathScreenMessageprivate static String deathScreenMessage(@Nonnull String var0)
private static void exitSpectatingAndOpenRespawnScreenprivate static void exitSpectatingAndOpenRespawnScreen(@Nonnull Ref<EntityStore> var0, @Nonnull Store<EntityStore> var1, @Nonnull CommandBuffer<EntityStore> var2, int var3)
abstract exitSpectatingAndOpenRespawnScreen exitSpectatingAndOpenRespawnScreen(var1, var3, var4, 0)
abstract for for(short var10 = 0; var10 < var6.getCapacity()
abstract for for(short var24 = 0; var24 < var6.getCapacity()
public Set<Dependency<EntityStore>> getDependenciespublic Set<Dependency<EntityStore>> getDependencies()
public Set<Dependency<EntityStore>> getDependenciespublic Set<Dependency<EntityStore>> getDependencies()
public Set<Dependency<EntityStore>> getDependenciespublic Set<Dependency<EntityStore>> getDependencies()
public Set<Dependency<EntityStore>> getDependenciespublic Set<Dependency<EntityStore>> getDependencies()
public Set<Dependency<EntityStore>> getDependenciespublic Set<Dependency<EntityStore>> getDependencies()
public Set<Dependency<EntityStore>> getDependenciespublic Set<Dependency<EntityStore>> getDependencies()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
if if(var2 != null)
if if(var5 != null)
if if(var8 == null)
if if(var9 != null)
if if(var9)
if if(var20 != null)
if if(var8 > 0.0)
if if(var27 > 0)
if if(var5 != null)
if if(var8 != null || var17 != null)
if if(var5 != null)
if if(var6 != 0)
if if(var4 == HardcoreMode.None)
if if(var7 != GameMode.Adventure)
if if(var4 != HardcoreMode.Global)
if if(var8 > 0)
if if(var5 != null)
if if(var7 != null)
if if(var3 > 0)
if if(var3 != null)
if if(var6 != null && var7 != null)
if if(var4 != null)
if if(var3 == null)
if if(var7 == DamageCause.PHYSICAL || var7 == DamageCause.PROJECTILE)
if if(var10 != null)
if if(var7 == null)
if if(var8 != null)
if if(var11 != null)
if if(var5 != null)
if if(var7 != null)
if if(var8 != null)
if if(var9 != null)
if if(var10 != null)
public void onComponentAddedpublic void onComponentAdded(@Nonnull Ref<EntityStore> var1, @Nonnull DeathComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
public void onComponentAddedpublic void onComponentAdded(@Nonnull Ref<EntityStore> var1, @Nonnull DeathComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
public void onComponentAddedpublic void onComponentAdded(@Nonnull Ref<EntityStore> var1, @Nonnull DeathComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
public void onComponentAddedpublic void onComponentAdded(@Nonnull Ref<EntityStore> var1, @Nonnull DeathComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
public void onComponentAddedpublic void onComponentAdded(@Nonnull Ref<EntityStore> var1, @Nonnull DeathComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
public void onComponentAddedpublic void onComponentAdded(@Nonnull Ref<EntityStore> var1, @Nonnull DeathComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
public void onComponentAddedpublic void onComponentAdded(@Nonnull Ref<EntityStore> var1, @Nonnull DeathComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
public void onComponentAddedpublic void onComponentAdded(@Nonnull Ref<EntityStore> var1, @Nonnull DeathComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
public void onComponentAddedpublic void onComponentAdded(@Nonnull Ref<EntityStore> var1, @Nonnull DeathComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
public void onComponentAddedpublic void onComponentAdded(@Nonnull Ref<EntityStore> var1, @Nonnull DeathComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
public void onComponentAddedpublic void onComponentAdded(@Nonnull Ref<EntityStore> var1, @Nonnull DeathComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
public void onComponentAddedpublic void onComponentAdded(@Nonnull Ref<EntityStore> var1, @Nonnull DeathComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
public void onComponentRemovedpublic void onComponentRemoved(@Nonnull Ref<EntityStore> var1, @Nonnull DeathComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
public void onComponentSetpublic void onComponentSet(@Nonnull Ref<EntityStore> var1, DeathComponent var2, @Nonnull DeathComponent var3, @Nonnull Store<EntityStore> var4, @Nonnull CommandBuffer<EntityStore> var5)
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)
private static void openDeathScreenprivate static void openDeathScreen(@Nonnull Ref<EntityStore> var0, @Nonnull Store<EntityStore> var1, @Nonnull DeathComponent var2, @Nullable Message var3, @Nullable String var4, int var5)
abstract openDeathScreen openDeathScreen(var1, var2x, var4, var5, var3, 0)
private static void openRespawnScreenprivate static void openRespawnScreen(@Nonnull Ref<EntityStore> var0, @Nonnull Store<EntityStore> var1, int var2)
abstract openRespawnScreen openRespawnScreen(var1, var2x, 0)
abstract openRespawnScreen openRespawnScreen(var0, var1, var3)
static void playDeathAnimationvoid playDeathAnimation(@Nonnull Ref<EntityStore> var0, @Nonnull DeathComponent var1, @Nullable ModelComponent var2, @Nonnull MovementStatesComponent var3, @Nonnull ComponentAccessor<EntityStore> var4)
public void tickpublic void tick(float var1, int var2, @Nonnull ArchetypeChunk<EntityStore> var3, @Nonnull Store<EntityStore> var4, @Nonnull CommandBuffer<EntityStore> var5)
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.modules.entity.damage;

class="kw">import com.hypixel.hytale.component.AddReason;
class="kw">import com.hypixel.hytale.component.Archetype;
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.dependency.Dependency;
class="kw">import com.hypixel.hytale.component.dependency.Order;
class="kw">import com.hypixel.hytale.component.dependency.RootDependency;
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.RefChangeSystem;
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.logger.HytaleLogger;
class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import com.hypixel.hytale.math.vector.Rotation3f;
class="kw">import com.hypixel.hytale.math.vector.Transform;
class="kw">import com.hypixel.hytale.protocol.AnimationSlot;
class="kw">import com.hypixel.hytale.protocol.GameMode;
class="kw">import com.hypixel.hytale.protocol.InteractionState;
class="kw">import com.hypixel.hytale.protocol.InteractionType;
class="kw">import com.hypixel.hytale.protocol.packets.interface_.KillFeedMessage;
class="kw">import com.hypixel.hytale.server.core.HytaleServer;
class="kw">import com.hypixel.hytale.server.core.HytaleServerConfig;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.asset.type.gamemode.GameModeType;
class="kw">import com.hypixel.hytale.server.core.asset.type.gameplay.DeathConfig;
class="kw">import com.hypixel.hytale.server.core.asset.type.gameplay.GameplayConfig;
class="kw">import com.hypixel.hytale.server.core.asset.type.gameplay.WorldMapConfig;
class="kw">import com.hypixel.hytale.server.core.asset.type.model.config.Model;
class="kw">import com.hypixel.hytale.server.core.entity.AnimationUtils;
class="kw">import com.hypixel.hytale.server.core.entity.Entity;
class="kw">import com.hypixel.hytale.server.core.entity.InteractionChain;
class="kw">import com.hypixel.hytale.server.core.entity.InteractionContext;
class="kw">import com.hypixel.hytale.server.core.entity.InteractionManager;
class="kw">import com.hypixel.hytale.server.core.entity.effect.EffectControllerComponent;
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.entity.entities.player.pages.RespawnPage;
class="kw">import com.hypixel.hytale.server.core.entity.movement.MovementStatesComponent;
class="kw">import com.hypixel.hytale.server.core.entity.nameplate.Nameplate;
class="kw">import com.hypixel.hytale.server.core.inventory.InventoryComponent;
class="kw">import com.hypixel.hytale.server.core.inventory.InventoryUtils;
class="kw">import com.hypixel.hytale.server.core.inventory.ItemStack;
class="kw">import com.hypixel.hytale.server.core.inventory.container.CombinedItemContainer;
class="kw">import com.hypixel.hytale.server.core.inventory.transaction.ItemStackSlotTransaction;
class="kw">import com.hypixel.hytale.server.core.modules.entity.AllLegacyLivingEntityTypesQuery;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.HeadRotation;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.ModelComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.PlayerLives;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.Spectating;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.damage.event.KillFeedEvent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.gamemode.GameModeTypes;
class="kw">import com.hypixel.hytale.server.core.modules.entity.item.ItemComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entitystats.EntityStatMap;
class="kw">import com.hypixel.hytale.server.core.modules.entitystats.EntityStatsSystems;
class="kw">import com.hypixel.hytale.server.core.modules.entitystats.asset.DefaultEntityStatTypes;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.InteractionModule;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.Interactions;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.UnarmedInteractions;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.config.RootInteraction;
class="kw">import com.hypixel.hytale.server.core.modules.time.WorldTimeResource;
class="kw">import com.hypixel.hytale.server.core.modules.voice.VoiceModule;
class="kw">import com.hypixel.hytale.server.core.modules.voice.VoicePlayerState;
class="kw">import com.hypixel.hytale.server.core.modules.voice.VoiceRouter;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.Universe;
class="kw">import com.hypixel.hytale.server.core.universe.hardcore.HardcoreGameOver;
class="kw">import com.hypixel.hytale.server.core.universe.hardcore.HardcoreLivesHud;
class="kw">import com.hypixel.hytale.server.core.universe.hardcore.HardcoreMode;
class="kw">import com.hypixel.hytale.server.core.universe.hardcore.HardcoreState;
class="kw">import com.hypixel.hytale.server.core.universe.world.ParticleUtil;
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 it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.time.Instant;
class="kw">import java.time.temporal.ChronoUnit;
class="kw">import java.util.Collections;
class="kw">import java.util.List;
class="kw">import java.util.Set;
class="kw">import java.util.UUID;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3d;

class="kw">public class DeathSystems {
   class="kw">public DeathSystems() {
   }

   class="kw">private class="kw">static void playDeathAnimation(
      @Nonnull Ref<EntityStore> var0,
      @Nonnull DeathComponent var1,
      @Nullable ModelComponent var2,
      @Nonnull MovementStatesComponent var3,
      @Nonnull ComponentAccessor<EntityStore> var4
   ) {
      if (var2 != null) {
         DamageCause var5 = var1.getDeathCause();
         if (var5 != null) {
            Model var6 = var2.getModel();
            String[] var7 = Entity.DefaultAnimations.getDeathAnimationIds(var3.getMovementStates(), var5);
            String var8 = var6.getFirstBoundAnimationId(var7);
            AnimationUtils.playAnimation(var0, AnimationSlot.Status, var8, true, var4);
         }
      }
   }

   class="kw">public class="kw">static class ClearEntityEffects class="kw">extends DeathSystems.OnDeathSystem {
      class="kw">public ClearEntityEffects() {
      }

      @Nonnull
      @Override
      class="kw">public Query<EntityStore> getQuery() {
         class="kw">return EffectControllerComponent.getComponentType();
      }

      class="kw">public void onComponentAdded(
         @Nonnull Ref<EntityStore> var1, @Nonnull DeathComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
         EffectControllerComponent var5 = var4.getComponent(var1, EffectControllerComponent.getComponentType());
         assert var5 != null;
         var5.clearEffects(var1, var4);
      }
   }

   class="kw">public class="kw">static class ClearHealth class="kw">extends DeathSystems.OnDeathSystem {
      @Nonnull
      class="kw">private class="kw">static class="kw">final ComponentType<EntityStore, EntityStatMap> ENTITY_STAT_MAP_COMPONENT_TYPE = EntityStatMap.getComponentType();

      class="kw">public ClearHealth() {
      }

      @Nonnull
      @Override
      class="kw">public Set<Dependency<EntityStore>> getDependencies() {
         class="kw">return RootDependency.firstSet();
      }

      @Nonnull
      @Override
      class="kw">public Query<EntityStore> getQuery() {
         class="kw">return ENTITY_STAT_MAP_COMPONENT_TYPE;
      }

      class="kw">public void onComponentAdded(
         @Nonnull Ref<EntityStore> var1, @Nonnull DeathComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
         EntityStatMap var5 = var3.getComponent(var1, ENTITY_STAT_MAP_COMPONENT_TYPE);
         assert var5 != null;
         var5.setStatValue(DefaultEntityStatTypes.getHealth(), 0.0F);
      }
   }

   class="kw">public class="kw">static class ClearInteractions class="kw">extends DeathSystems.OnDeathSystem {
      @Nonnull
      class="kw">private class="kw">static class="kw">final ComponentType<EntityStore, InteractionManager> INTERACTION_MANAGER_COMPONENT_TYPE = InteractionModule.get()
         .getInteractionManagerComponent();

      class="kw">public ClearInteractions() {
      }

      @Nonnull
      @Override
      class="kw">public Set<Dependency<EntityStore>> getDependencies() {
         class="kw">return RootDependency.firstSet();
      }

      @Nonnull
      @Override
      class="kw">public Query<EntityStore> getQuery() {
         class="kw">return INTERACTION_MANAGER_COMPONENT_TYPE;
      }

      class="kw">public void onComponentAdded(
         @Nonnull Ref<EntityStore> var1, @Nonnull DeathComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
         InteractionManager var5 = var4.getComponent(var1, INTERACTION_MANAGER_COMPONENT_TYPE);
         assert var5 != null;
         var5.clear();
      }
   }

   class="kw">public class="kw">static class CorpseRemoval class="kw">extends EntityTickingSystem<EntityStore> {
      @Nonnull
      class="kw">private class="kw">static class="kw">final Query<EntityStore> QUERY = Query.and(
         DeathComponent.getComponentType(), Query.not(Player.getComponentType()), TransformComponent.getComponentType()
      );
      @Nonnull
      class="kw">private class="kw">static class="kw">final Set<Dependency<EntityStore>> DEPENDENCIES = Collections.singleton(
         new SystemDependency<>(Order.AFTER, DeathSystems.TickCorpseRemoval.class)
      );

      class="kw">public CorpseRemoval() {
      }

      @Nonnull
      @Override
      class="kw">public Query<EntityStore> getQuery() {
         class="kw">return QUERY;
      }

      @Nonnull
      @Override
      class="kw">public Set<Dependency<EntityStore>> getDependencies() {
         class="kw">return DEPENDENCIES;
      }

      @Override
      class="kw">public void tick(
         float var1, int var2, @Nonnull ArchetypeChunk<EntityStore> var3, @Nonnull Store<EntityStore> var4, @Nonnull CommandBuffer<EntityStore> var5
      ) {
         DeathComponent var6 = var3.getComponent(var2, DeathComponent.getComponentType());
         assert var6 != null;
         InteractionChain var7 = var6.getInteractionChain();
         if (var7 == null || var7.getServerState() != InteractionState.NotFinished) {
            DeferredCorpseRemoval var8 = var3.getComponent(var2, DeferredCorpseRemoval.getComponentType());
            if (var8 == null) {
               var5.removeEntity(var3.getReferenceTo(var2), RemoveReason.REMOVE);
            } else if (var8.shouldRemove()) {
               var5.removeEntity(var3.getReferenceTo(var2), RemoveReason.REMOVE);
               String var9 = var8.getDeathParticles();
               if (var9 != null) {
                  TransformComponent var10 = var3.getComponent(var2, TransformComponent.getComponentType());
                  assert var10 != null;
                  ParticleUtil.spawnParticleEffect(var9, var10.getPosition(), var5);
               }
            }
         }
      }
   }

   class="kw">public class="kw">static class DeathAnimation class="kw">extends DeathSystems.OnDeathSystem {
      @Nonnull
      class="kw">private class="kw">final Query<EntityStore> query = Query.and(MovementStatesComponent.getComponentType(), AllLegacyLivingEntityTypesQuery.INSTANCE);
      @Nonnull
      class="kw">private class="kw">final Set<Dependency<EntityStore>> dependencies = Set.of(
         new SystemDependency<>(Order.BEFORE, EntityStatsSystems.EntityTrackerUpdate.class),
         new SystemDependency<>(Order.AFTER, DeathSystems.ClearEntityEffects.class)
      );

      class="kw">public DeathAnimation() {
      }

      @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 void onComponentAdded(
         @Nonnull Ref<EntityStore> var1, @Nonnull DeathComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
         ModelComponent var5 = var4.getComponent(var1, ModelComponent.getComponentType());
         MovementStatesComponent var6 = var4.getComponent(var1, MovementStatesComponent.getComponentType());
         assert var6 != null;
         DeathSystems.playDeathAnimation(var1, var2, var5, var6, var4);
      }
   }

   class="kw">public class="kw">static class DropPlayerDeathItems class="kw">extends DeathSystems.OnDeathSystem {
      @Nonnull
      class="kw">private class="kw">static class="kw">final Query<EntityStore> QUERY = Archetype.of(
         Player.getComponentType(), TransformComponent.getComponentType(), HeadRotation.getComponentType()
      );

      class="kw">public DropPlayerDeathItems() {
      }

      @Nonnull
      @Override
      class="kw">public Query<EntityStore> getQuery() {
         class="kw">return QUERY;
      }

      class="kw">public void onComponentAdded(
         @Nonnull Ref<EntityStore> var1, @Nonnull DeathComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
         Player var5 = var3.getComponent(var1, Player.getComponentType());
         assert var5 != null;
         if (var5.getGameMode() != GameMode.Creative) {
            var2.setDisplayDataOnDeathScreen(true);
            CombinedItemContainer var6 = InventoryComponent.getCombined(var4, var1, InventoryComponent.EVERYTHING);
            if (var2.getItemsDurabilityLossPercentage() > 0.0) {
               double var7 = var2.getItemsDurabilityLossPercentage() / 100.0;
               boolean var9 = false;

               for (short var10 = 0; var10 < var6.getCapacity(); var10++) {
                  ItemStack var11 = var6.getItemStack(var10);
                  if (!ItemStack.isEmpty(var11) && !var11.isBroken() && var11.getItem().getDurabilityLossOnDeath()) {
                     double var12 = var11.getMaxDurability() * var7;
                     ItemStack var14 = var11.withIncreasedDurability(-var12);
                     ItemStackSlotTransaction var15 = var6.replaceItemStackInSlot(var10, var11, var14);
                     if (var15.getSlotAfter().isBroken() && var11.getItem().getArmor() != null) {
                        var9 = true;
                     }
                  }
               }

               if (var9) {
                  EntityStatMap var20 = var4.getComponent(var1, EntityStatMap.getComponentType());
                  if (var20 != null) {
                     var20.getStatModifiersManager().scheduleRecalculate();
                  }
               }
            }

            List var17 = null;
            class="kw">switch (var2.getItemsLossMode()) {
               case ALL:
                  var17 = InventoryUtils.dropAllItemStacks(var1, var3);
                  break;
               case CONFIGURED:
                  double var8 = var2.getItemsAmountLossPercentage();
                  if (var8 > 0.0) {
                     double var21 = var8 / 100.0;
                     var17 = new ObjectArrayList();

                     for (short var24 = 0; var24 < var6.getCapacity(); var24++) {
                        ItemStack var13 = var6.getItemStack(var24);
                        if (!ItemStack.isEmpty(var13) && var13.getItem().dropsOnDeath()) {
                           int var26 = Math.max(1, MathUtil.floor(var13.getQuantity() * var21));
                           var17.add(var13.withQuantity(var26));
                           int var27 = var13.getQuantity() - var26;
                           if (var27 > 0) {
                              ItemStack var16 = var13.withQuantity(var27);
                              var6.replaceItemStackInSlot(var24, var13, var16);
                           } else {
                              var6.removeItemStackFromSlot(var24);
                           }
                        }
                     }
                  }
               case NONE:
            }

            if (var17 != null && !var17.isEmpty()) {
               TransformComponent var18 = var3.getComponent(var1, TransformComponent.getComponentType());
               assert var18 != null;
               Vector3d var19 = var18.getPosition();
               HeadRotation var22 = var3.getComponent(var1, HeadRotation.getComponentType());
               assert var22 != null;
               Rotation3f var23 = var22.getRotation();
               Holder[] var25 = ItemComponent.generateItemDrops(var3, var17, new Vector3d(var19).add(0.0, 1.0, 0.0), var23);
               var4.addEntities(var25, AddReason.SPAWN);
               var2.setItemsLostOnDeath(var17);
            }
         }
      }
   }

   class="kw">public class="kw">static class KillFeed class="kw">extends DeathSystems.OnDeathSystem {
      class="kw">public KillFeed() {
      }

      @Nonnull
      @Override
      class="kw">public Query<EntityStore> getQuery() {
         class="kw">return Archetype.empty();
      }

      class="kw">public void onComponentAdded(
         @Nonnull Ref<EntityStore> var1, @Nonnull DeathComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
         Damage var5 = var2.getDeathInfo();
         if (var5 != null) {
            World var6 = var4.getExternalData().getWorld();
            ObjectArrayList var7 = new ObjectArrayList(var6.getPlayerRefs());
            Message var8 = null;
            if (var5.getSource() class="kw">instanceof Damage.EntitySource var9) {
               Ref var16 = var9.getRef();
               if (var16.isValid()) {
                  KillFeedEvent.KillerMessage var11 = new KillFeedEvent.KillerMessage(var5, var1);
                  var3.invoke(var16, var11);
                  if (var11.isCancelled()) {
                     class="kw">return;
                  }

                  var8 = var11.getMessage();
               }
            }

            KillFeedEvent.DecedentMessage var15 = new KillFeedEvent.DecedentMessage(var5);
            var3.invoke(var1, var15);
            if (!var15.isCancelled()) {
               Message var17 = var15.getMessage();
               if (var8 != null || var17 != null) {
                  KillFeedEvent.Display var18 = new KillFeedEvent.Display(var5, var5.getIfPresentMetaObject(Damage.DEATH_ICON), var7);
                  var3.invoke(var1, var18);
                  if (!var18.isCancelled()) {
                     KillFeedMessage var12 = new KillFeedMessage(
                        var8 != null ? var8.getFormattedMessage() : null, var17 != null ? var17.getFormattedMessage() : null, var18.getIcon()
                     );

                     for (PlayerRef var14 : var18.getBroadcastTargets()) {
                        var14.getPacketHandler().write(var12);
                     }
                  }
               }
            }
         }
      }
   }

   class="kw">public class="kw">abstract class="kw">static class OnDeathSystem class="kw">extends RefChangeSystem<EntityStore, DeathComponent> {
      class="kw">public OnDeathSystem() {
      }

      @Nonnull
      @Override
      class="kw">public ComponentType<EntityStore, DeathComponent> componentType() {
         class="kw">return DeathComponent.getComponentType();
      }

      class="kw">public void onComponentSet(
         @Nonnull Ref<EntityStore> var1,
         DeathComponent var2,
         @Nonnull DeathComponent var3,
         @Nonnull Store<EntityStore> var4,
         @Nonnull CommandBuffer<EntityStore> var5
      ) {
      }

      class="kw">public void onComponentRemoved(
         @Nonnull Ref<EntityStore> var1, @Nonnull DeathComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
      }
   }

   class="kw">public class="kw">static class PlayerDeathMarker class="kw">extends DeathSystems.OnDeathSystem {
      class="kw">public PlayerDeathMarker() {
      }

      @Nonnull
      @Override
      class="kw">public Query<EntityStore> getQuery() {
         class="kw">return Player.getComponentType();
      }

      class="kw">public void onComponentAdded(
         @Nonnull Ref<EntityStore> var1, @Nonnull DeathComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
         World var5 = var4.getExternalData().getWorld();
         GameplayConfig var6 = var5.getGameplayConfig();
         WorldMapConfig var7 = var6.getWorldMapConfig();
         if (var7.isDisplayDeathMarker()) {
            Player var8 = var4.getComponent(var1, Player.getComponentType());
            assert var8 != null;
            TransformComponent var9 = var4.getComponent(var1, TransformComponent.getComponentType());
            assert var9 != null;
            Vector3d var10 = var9.getPosition();
            Transform var11 = new Transform(var10.x(), var10.y(), var10.z(), 0.0F, 0.0F, 0.0F);
            WorldTimeResource var12 = var4.getResource(WorldTimeResource.getResourceType());
            Instant var13 = var12.getGameTime();
            int var14 = (int)WorldTimeResource.ZERO_YEAR.until(var13, ChronoUnit.DAYS);
            String var15 = "death-marker-" + UUID.randomUUID();
            PlayerWorldData var16 = var8.getPlayerConfigData().getPerWorldData(var5.getName());
            var16.addLastDeath(var15, var11, var14);
         }
      }
   }

   class="kw">public class="kw">static class PlayerDeathScreen class="kw">extends DeathSystems.OnDeathSystem {
      class="kw">private class="kw">static class="kw">final HytaleLogger LOGGER = HytaleLogger.forEnclosingClass();

      class="kw">public PlayerDeathScreen() {
      }

      @Nonnull
      @Override
      class="kw">public Query<EntityStore> getQuery() {
         class="kw">return Query.and(Player.getComponentType(), TransformComponent.getComponentType());
      }

      class="kw">public void onComponentAdded(
         @Nonnull Ref<EntityStore> var1, @Nonnull DeathComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
         String var5 = var4.getExternalData().getWorld().getGameModeTypeOnDeath();
         if (!GameModeTypes.isValidType(var5)) {
            if (var5 != null) {
               LOGGER.at(Level.WARNING).log("GameModeTypeOnDeath %s is not a known GameModeType", var5);
            }

            exitSpectatingAndOpenRespawnScreen(var1, var3, var4, 0);
         } else {
            int var6 = burnLifeAndGetRemaining(var1, var3, var4);
            if (var6 != 0) {
               exitSpectatingAndOpenRespawnScreen(var1, var3, var4, Math.max(var6, 0));
            } else {
               var4.run(var2x -> {
                  if (var1.isValid()) {
                     String var3 = HardcoreGameOver.isActive() ? "server.misc.hardcore.global.gameOver.deathScreenMessage" : deathScreenMessage(var5);
                     DeathComponent var4 = var3 != null ? var2x.getComponent(var1, DeathComponent.getComponentType()) : null;
                     Message var5 = var4 != null ? computeDeathMessage(var1, var2x, var4) : null;
                     if (GameModeTypes.isValidType(var5) && GameModeTypes.enterOnDeath(var1, var2x, var5)) {
                        if (var4 != null && var4.isShowDeathMenu()) {
                           openDeathScreen(var1, var2x, var4, var5, var3, 0);
                        }
                     } else {
                        if (Spectating.isSpectating(var1, var2x)) {
                           GameModeTypes.exit(var1, var2x);
                        }

                        openRespawnScreen(var1, var2x, 0);
                     }
                  }
               });
            }
         }
      }

      class="kw">private class="kw">static int burnLifeAndGetRemaining(@Nonnull Ref<EntityStore> var0, @Nonnull Store<EntityStore> var1, @Nonnull CommandBuffer<EntityStore> var2) {
         HytaleServerConfig.Defaults var3 = HytaleServer.get().getConfig().getDefaults();
         HardcoreMode var4 = var3.getHardcoreMode();
         if (var4 == HardcoreMode.None) {
            class="kw">return 0;
         }

         Player var5 = var1.getComponent(var0, Player.getComponentType());
         GameMode var6 = var5 != null ? var5.getGameMode() : null;
         GameMode var7 = var6 != null ? var6 : var1.getExternalData().getWorld().getWorldConfig().getGameMode();
         if (var7 != GameMode.Adventure) {
            class="kw">return -1;
         }

         if (var4 != HardcoreMode.Global) {
            class="kw">return burnPersonalLife(var0, var1, var2, var3.getHardcoreLives());
         }

         int var8 = burnPoolLife(var3.getHardcoreLives());
         if (var8 > 0) {
            class="kw">return var8;
         }

         PlayerLives.markExhausted(var0, var2);
         if (var5 != null) {
            var5.markNeedsSave();
         }

         class="kw">return 0;
      }

      class="kw">private class="kw">static int burnPersonalLife(@Nonnull Ref<EntityStore> var0, @Nonnull Store<EntityStore> var1, @Nonnull CommandBuffer<EntityStore> var2, int var3) {
         PlayerLives var4 = var1.getComponent(var0, PlayerLives.getComponentType());
         int var5 = var4 != null ? var4.getRemaining() : var3;
         int var6 = Math.max(var5 - 1, 0);
         var2.putComponent(var0, PlayerLives.getComponentType(), new PlayerLives(var6));
         Player var7 = var1.getComponent(var0, Player.getComponentType());
         if (var7 != null) {
            var7.markNeedsSave();
         }

         class="kw">return var6;
      }

      class="kw">private class="kw">static int burnPoolLife(int var0) {
         Universe var1 = Universe.get();
         HardcoreState var2 = var1.getResource(HardcoreState.getResourceType());
         if (var2.isGameOver()) {
            class="kw">return 0;
         }

         int var3 = var2.burnPoolLife(var0);
         if (var3 > 0) {
            var1.flushResource(HardcoreState.getResourceType()).exceptionally(var0x -> {
               ((HytaleLogger.Api)LOGGER.at(Level.SEVERE).withCause(var0x)).log("Failed to flush the hardcore pool of lives");
               class="kw">return null;
            });
         } else {
            HardcoreGameOver.trigger();
         }

         HardcoreLivesHud.showPoolToAll(Math.max(var3, 0));
         class="kw">return var3;
      }

      class="kw">private class="kw">static void exitSpectatingAndOpenRespawnScreen(
         @Nonnull Ref<EntityStore> var0, @Nonnull Store<EntityStore> var1, @Nonnull CommandBuffer<EntityStore> var2, int var3
      ) {
         if (Spectating.isSpectating(var0, var2)) {
            GameModeTypes.exit(var0, var2);
         }

         openRespawnScreen(var0, var1, var3);
      }

      @Nullable
      class="kw">private class="kw">static String deathScreenMessage(@Nonnull String var0) {
         GameModeType var1 = GameModeType.getAssetMap().getAsset(var0);
         class="kw">return var1 != null ? var1.getDeathScreenMessage() : null;
      }

      class="kw">private class="kw">static void openRespawnScreen(@Nonnull Ref<EntityStore> var0, @Nonnull Store<EntityStore> var1, int var2) {
         DeathComponent var3 = var1.getComponent(var0, DeathComponent.getComponentType());
         if (var3 != null) {
            openDeathScreen(var0, var1, var3, computeDeathMessage(var0, var1, var3), null, var2);
         }
      }

      class="kw">private class="kw">static void openDeathScreen(
         @Nonnull Ref<EntityStore> var0,
         @Nonnull Store<EntityStore> var1,
         @Nonnull DeathComponent var2,
         @Nullable Message var3,
         @Nullable String var4,
         int var5
      ) {
         if (var2.isShowDeathMenu()) {
            Player var6 = var1.getComponent(var0, Player.getComponentType());
            PlayerRef var7 = var1.getComponent(var0, PlayerRef.getComponentType());
            if (var6 != null && var7 != null) {
               RespawnPage var8;
               if (var4 != null) {
                  var8 = RespawnPage.forPermadeath(var7, var3, var2.displayDataOnDeathScreen(), var2.getDeathItemLoss(), Message.translation(var4));
               } else {
                  var8 = RespawnPage.forRespawn(var7, var3, var2.displayDataOnDeathScreen(), var2.getDeathItemLoss(), var5);
               }

               var6.getPageManager().openCustomPage(var0, var1, var8);
            }
         }
      }

      @Nullable
      class="kw">private class="kw">static Message computeDeathMessage(@Nonnull Ref<EntityStore> var0, @Nonnull Store<EntityStore> var1, @Nonnull DeathComponent var2) {
         Message var3 = var2.getDeathMessage();
         if (var3 == null) {
            Damage var4 = var2.getDeathInfo();
            var3 = var4 != null ? var4.getDeathMessage(var0, var1) : null;
            var2.setDeathMessage(var3);
         }

         class="kw">return var3;
      }
   }

   class="kw">public class="kw">static class PlayerDropItemsConfig class="kw">extends DeathSystems.OnDeathSystem {
      @Nonnull
      class="kw">private class="kw">static class="kw">final Set<Dependency<EntityStore>> DEPENDENCIES = Set.of(new SystemDependency<>(Order.BEFORE, DeathSystems.DropPlayerDeathItems.class));

      class="kw">public PlayerDropItemsConfig() {
      }

      @Nonnull
      @Override
      class="kw">public Query<EntityStore> getQuery() {
         class="kw">return Query.and(Player.getComponentType(), PlayerRef.getComponentType());
      }

      @Nonnull
      @Override
      class="kw">public Set<Dependency<EntityStore>> getDependencies() {
         class="kw">return DEPENDENCIES;
      }

      class="kw">public void onComponentAdded(
         @Nonnull Ref<EntityStore> var1, @Nonnull DeathComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
         DeathConfig var5 = var3.getExternalData().getWorld().getDeathConfig();
         var2.setItemsLossMode(var5.getItemsLossMode());
         var2.setItemsAmountLossPercentage(var5.getItemsAmountLossPercentage());
         var2.setItemsDurabilityLossPercentage(var5.getItemsDurabilityLossPercentage());
      }
   }

   class="kw">public class="kw">static class PlayerKilledPlayer class="kw">extends DeathSystems.OnDeathSystem {
      @Nonnull
      class="kw">private class="kw">static class="kw">final Query<EntityStore> QUERY = Archetype.of(Player.getComponentType(), Nameplate.getComponentType());

      class="kw">public PlayerKilledPlayer() {
      }

      @Nonnull
      @Override
      class="kw">public Query<EntityStore> getQuery() {
         class="kw">return QUERY;
      }

      class="kw">public void onComponentAdded(
         @Nonnull Ref<EntityStore> var1, @Nonnull DeathComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
         Nameplate var5 = var4.getComponent(var1, Nameplate.getComponentType());
         Damage var6 = var2.getDeathInfo();
         DamageCause var7 = var2.getDeathCause();
         if (var7 == DamageCause.PHYSICAL || var7 == DamageCause.PROJECTILE) {
            if (var6 != null && var6.getSource() class="kw">instanceof Damage.EntitySource var8) {
               Ref var11 = var8.getRef();
               if (var11.isValid()) {
                  PlayerRef var10 = var3.getComponent(var11, PlayerRef.getComponentType());
                  if (var10 != null) {
                     var10.sendMessage(Message.translation("server.general.killedEntity").param("entityName", var5.getText()));
                  }
               }
            }
         }
      }
   }

   class="kw">public class="kw">static class RunDeathInteractions class="kw">extends DeathSystems.OnDeathSystem {
      @Nonnull
      class="kw">private class="kw">static class="kw">final ComponentType<EntityStore, Interactions> INTERACTIONS_COMPONENT_TYPE = Interactions.getComponentType();
      @Nonnull
      class="kw">private class="kw">static class="kw">final ComponentType<EntityStore, InteractionManager> INTERACTION_MANAGER_COMPONENT_TYPE = InteractionModule.get()
         .getInteractionManagerComponent();
      @Nonnull
      class="kw">private class="kw">static class="kw">final Query<EntityStore> QUERY = Query.and(INTERACTIONS_COMPONENT_TYPE, INTERACTION_MANAGER_COMPONENT_TYPE);
      @Nonnull
      class="kw">private class="kw">static class="kw">final Set<Dependency<EntityStore>> DEPENDENCIES = Set.of(new SystemDependency<>(Order.AFTER, DeathSystems.ClearEntityEffects.class));

      class="kw">public RunDeathInteractions() {
      }

      @Nonnull
      @Override
      class="kw">public Query<EntityStore> getQuery() {
         class="kw">return QUERY;
      }

      @Nonnull
      @Override
      class="kw">public Set<Dependency<EntityStore>> getDependencies() {
         class="kw">return DEPENDENCIES;
      }

      class="kw">public void onComponentAdded(
         @Nonnull Ref<EntityStore> var1, @Nonnull DeathComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
         InteractionManager var5 = var4.getComponent(var1, INTERACTION_MANAGER_COMPONENT_TYPE);
         assert var5 != null;
         Interactions var6 = var4.getComponent(var1, INTERACTIONS_COMPONENT_TYPE);
         assert var6 != null;
         String var7 = var6.getInteractionId(InteractionType.Death);
         if (var7 == null) {
            UnarmedInteractions var8 = UnarmedInteractions.getAssetMap().getAsset("Empty");
            if (var8 != null) {
               var7 = var8.getInteractions().get(InteractionType.Death);
            }
         }

         RootInteraction var11 = var7 != null ? RootInteraction.getAssetMap().getAsset(var7) : null;
         if (var11 != null) {
            InteractionContext var9 = InteractionContext.forInteraction(var5, var1, InteractionType.Death, var4);
            InteractionChain var10 = var5.initChain(InteractionType.Death, var9, var11, false);
            var5.queueExecuteChain(var10);
            var2.setInteractionChain(var10);
         }
      }
   }

   class="kw">public class="kw">static class SpawnedDeathAnimation class="kw">extends RefSystem<EntityStore> {
      class="kw">private class="kw">static class="kw">final Query<EntityStore> QUERY = Query.and(
         AllLegacyLivingEntityTypesQuery.INSTANCE, DeathComponent.getComponentType(), MovementStatesComponent.getComponentType()
      );

      class="kw">public SpawnedDeathAnimation() {
      }

      @Nonnull
      @Override
      class="kw">public Query<EntityStore> getQuery() {
         class="kw">return QUERY;
      }

      @Override
      class="kw">public void onEntityAdded(
         @Nonnull Ref<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
         DeathComponent var5 = var4.getComponent(var1, DeathComponent.getComponentType());
         assert var5 != null;
         ModelComponent var6 = var4.getComponent(var1, ModelComponent.getComponentType());
         MovementStatesComponent var7 = var4.getComponent(var1, MovementStatesComponent.getComponentType());
         assert var7 != null;
         DeathSystems.playDeathAnimation(var1, var5, var6, var7, var4);
      }

      @Override
      class="kw">public void onEntityRemove(
         @Nonnull Ref<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
      }
   }

   class="kw">public class="kw">static class StopVoiceOnDeath class="kw">extends DeathSystems.OnDeathSystem {
      class="kw">private class="kw">static class="kw">final HytaleLogger LOGGER = HytaleLogger.forEnclosingClass();

      class="kw">public StopVoiceOnDeath() {
      }

      @Nonnull
      @Override
      class="kw">public Query<EntityStore> getQuery() {
         class="kw">return Query.and(Player.getComponentType(), PlayerRef.getComponentType());
      }

      class="kw">public void onComponentAdded(
         @Nonnull Ref<EntityStore> var1, @Nonnull DeathComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
         PlayerRef var5 = var3.getComponent(var1, PlayerRef.getComponentType());
         if (var5 != null) {
            UUID var6 = var5.getUuid();
            VoiceModule var7 = VoiceModule.get();
            if (var7 != null) {
               VoicePlayerState var8 = var7.getPlayerState(var6);
               if (var8 != null) {
                  var8.setSilenced(true);
                  var8.setSpeaking(false);
                  VoiceRouter var9 = var7.getVoiceRouter();
                  if (var9 != null) {
                     PlayerRef var10 = Universe.get().getPlayer(var6);
                     if (var10 != null) {
                        var9.sendVoiceConfig(var10);
                     }
                  }
               }
            }
         }
      }
   }

   class="kw">public class="kw">static class TickCorpseRemoval class="kw">extends EntityTickingSystem<EntityStore> {
      @Nonnull
      class="kw">private class="kw">static class="kw">final ComponentType<EntityStore, DeferredCorpseRemoval> DEFERRED_CORPSE_REMOVAL_COMPONENT_TYPE = DeferredCorpseRemoval.getComponentType();
      @Nonnull
      class="kw">private class="kw">static class="kw">final Query<EntityStore> QUERY = Query.and(
         DeathComponent.getComponentType(), Query.not(Player.getComponentType()), TransformComponent.getComponentType(), DEFERRED_CORPSE_REMOVAL_COMPONENT_TYPE
      );

      class="kw">public TickCorpseRemoval() {
      }

      @Nonnull
      @Override
      class="kw">public Query<EntityStore> getQuery() {
         class="kw">return QUERY;
      }

      @Override
      class="kw">public void tick(
         float var1, int var2, @Nonnull ArchetypeChunk<EntityStore> var3, @Nonnull Store<EntityStore> var4, @Nonnull CommandBuffer<EntityStore> var5
      ) {
         DeathComponent var6 = var3.getComponent(var2, DeathComponent.getComponentType());
         assert var6 != null;
         InteractionChain var7 = var6.getInteractionChain();
         if (var7 == null || var7.getServerState() != InteractionState.NotFinished) {
            DeferredCorpseRemoval var8 = var3.getComponent(var2, DEFERRED_CORPSE_REMOVAL_COMPONENT_TYPE);
            assert var8 != null;
            var8.tick(var1);
         }
      }
   }
}