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
+ "}";
}
}
}