HyCodeYourTale
classpublicPriority 3

DamageMemorySystems

com.hypixel.hytale.builtin.npccombatactionevaluator.memory.DamageMemorySystems

2

Methods

2

Public Methods

0

Fields

1

Constructors

Constructors

public
DamageMemorySystems()

Methods

Public Methods (2)

public
SystemGroup<EntityStore> getGroup()
@Nullable@Override
public
Query<EntityStore> getQuery()
@Nonnull@Override

Related Classes

Source Code

package com.hypixel.hytale.builtin.npccombatactionevaluator.memory;

import com.hypixel.hytale.component.ArchetypeChunk;
import com.hypixel.hytale.component.CommandBuffer;
import com.hypixel.hytale.component.ComponentType;
import com.hypixel.hytale.component.Store;
import com.hypixel.hytale.component.SystemGroup;
import com.hypixel.hytale.component.query.Query;
import com.hypixel.hytale.server.core.modules.entity.damage.Damage;
import com.hypixel.hytale.server.core.modules.entity.damage.DamageEventSystem;
import com.hypixel.hytale.server.core.modules.entity.damage.DamageModule;
import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;

public class DamageMemorySystems {
   public DamageMemorySystems() {
   }

   public static class CollectDamage extends DamageEventSystem {
      private final ComponentType<EntityStore, DamageMemory> damageMemoryComponentType;
      @Nonnull
      private final Query<EntityStore> query;

      public CollectDamage(ComponentType<EntityStore, DamageMemory> damageMemoryComponentType) {
         this.damageMemoryComponentType = damageMemoryComponentType;
         this.query = damageMemoryComponentType;
      }

      @Nonnull
      @Override
      public Query<EntityStore> getQuery() {
         return this.query;
      }

      public void handle(
         int index,
         @Nonnull ArchetypeChunk<EntityStore> archetypeChunk,
         @Nonnull Store<EntityStore> store,
         @Nonnull CommandBuffer<EntityStore> commandBuffer,
         @Nonnull Damage damage
      ) {
         DamageMemory memory = archetypeChunk.getComponent(index, this.damageMemoryComponentType);
         memory.addDamage(damage.getAmount());
      }

      @Nullable
      @Override
      public SystemGroup<EntityStore> getGroup() {
         return DamageModule.get().getInspectDamageGroup();
      }
   }
}