GeneratedEntityChunk class

Пакет: com.hypixel.hytale.server.core.universe.world.worldgen

Файл: com/hypixel/hytale/server/core/universe/world/worldgen/GeneratedEntityChunk.java

Поля (8)

МодификаторыТипИмя
final List<GeneratedEntityChunk.EntityWrapperEntry> entities
TransformComponent var10
HeadRotation var11
Vector3i var12
int var13
EntitySection var14
FromWorldGen var4
FromPrefabInstance var5

Методы (10)

МодификаторыВозвратСигнатура
public record EntityWrapperEntryrecord EntityWrapperEntry(Vector3i offset, PrefabRotation rotation, Holder<EntityStore>[] entityHolders, int worldgenId, int prefabInstanceId)
public void addEntitiesvoid addEntities(Vector3i var1, PrefabRotation var2, @Nullable Holder<EntityStore>[] var3, int var4, int var5)
for for(GeneratedEntityChunk.EntityWrapperEntry var3 : this.entities)
public void forEachEntityvoid forEachEntity(Consumer<GeneratedEntityChunk.EntityWrapperEntry> var1)
public List<GeneratedEntityChunk.EntityWrapperEntry> getEntitiesList<GeneratedEntityChunk.EntityWrapperEntry> getEntities()
if if(var3 != null && var3.length > 0)
if if(var11 != null)
if if(var13 >= 0 && var13 < var1.length && var1[var13] != null)
public void toEntitySectionsvoid toEntitySections(Holder<ChunkStore>[] var1)
public String toStringpublic String toString()

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.universe.world.worldgen;

class="kw">import com.hypixel.hytale.component.Holder;
class="kw">import com.hypixel.hytale.math.util.ChunkUtil;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.FromPrefabInstance;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.FromWorldGen;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.HeadRotation;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.prefab.PrefabRotation;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.section.EntitySection;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore;
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.util.Arrays;
class="kw">import java.util.List;
class="kw">import java.util.function.Consumer;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3i;

class="kw">public class GeneratedEntityChunk {
   class="kw">private class="kw">final List<GeneratedEntityChunk.EntityWrapperEntry> entities;

   class="kw">public GeneratedEntityChunk() {
      this(new ObjectArrayList());
   }

   class="kw">protected GeneratedEntityChunk(List<GeneratedEntityChunk.EntityWrapperEntry> var1) {
      this.entities = var1;
   }

   class="kw">public List<GeneratedEntityChunk.EntityWrapperEntry> getEntities() {
      class="kw">return this.entities;
   }

   class="kw">public void forEachEntity(Consumer<GeneratedEntityChunk.EntityWrapperEntry> var1) {
      this.entities.forEach(var1);
   }

   class="kw">public void addEntities(Vector3i var1, PrefabRotation var2, @Nullable Holder<EntityStore>[] var3, int var4, int var5) {
      if (var3 != null && var3.length > 0) {
         this.entities.add(new GeneratedEntityChunk.EntityWrapperEntry(var1, var2, var3, var4, var5));
      }
   }

   class="kw">public void toEntitySections(Holder<ChunkStore>[] var1) {
      for (GeneratedEntityChunk.EntityWrapperEntry var3 : this.entities) {
         FromWorldGen var4 = new FromWorldGen(var3.worldgenId());
         FromPrefabInstance var5 = new FromPrefabInstance(var3.prefabInstanceId());

         for (Holder var9 : var3.entityHolders()) {
            TransformComponent var10 = var9.getComponent(TransformComponent.getComponentType());
            assert var10 != null;
            var3.rotation().rotate(var10.getPosition().sub(0.5, 0.0, 0.5));
            var10.getPosition().add(0.5, 0.0, 0.5);
            HeadRotation var11 = var9.getComponent(HeadRotation.getComponentType());
            if (var11 != null) {
               var11.getRotation().addYaw(-var3.rotation().getYaw());
            }

            var10.getRotation().addYaw(-var3.rotation().getYaw());
            Vector3i var12 = var3.offset();
            var10.getPosition().add(var12.x, var12.y, var12.z);
            var9.putComponent(FromWorldGen.getComponentType(), var4);
            var9.putComponent(FromPrefabInstance.getComponentType(), var5);
            int var13 = ChunkUtil.chunkCoordinate(var10.getPosition().y);
            if (var13 >= 0 && var13 < var1.length && var1[var13] != null) {
               EntitySection var14 = var1[var13].ensureAndGetComponent(EntitySection.getComponentType());
               var14.addEntityHolder(var9);
            }
         }
      }
   }

   class="kw">public record EntityWrapperEntry(Vector3i offset, PrefabRotation rotation, Holder<EntityStore>[] entityHolders, int worldgenId, int prefabInstanceId) {
      class="kw">public EntityWrapperEntry {
      }

      @Nonnull
      @Override
      class="kw">public String toString() {
         class="kw">return "EntityWrapperEntry{offset="
            + this.offset
            + ", rotation="
            + this.rotation
            + ", entityHolders="
            + Arrays.toString(this.entityHolders)
            + ", prefabInstanceId="
            + this.prefabInstanceId
            + "}";
      }
   }
}