ParticleSpawnerGroup class
Пакет: com.hypixel.hytale.protocol
Файл: com/hypixel/hytale/protocol/ParticleSpawnerGroup.java
Поля (60)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
int |
NULLABLE_BIT_FIELD_SIZE |
|
int |
var1 |
|
ParticleSpawnerGroup |
var1 |
|
int |
var1 |
|
|
var1 |
|
|
var1 |
|
|
var1 |
|
|
var1 |
|
|
var1 |
|
|
var1 |
|
|
var1 |
|
|
var1 |
|
|
var1 |
|
|
var1 |
|
|
var1 |
|
|
var1 |
|
int |
var10 |
|
int |
var11 |
|
ParticleAttractor[] |
var13 |
|
|
var13 |
|
int |
var14 |
|
ParticleSpawnerGroup |
var16 |
|
long |
var2 |
|
int |
var2 |
|
byte |
var2 |
|
byte |
var2 |
|
byte |
var2 |
|
byte |
var2 |
|
byte |
var2 |
|
byte |
var2 |
|
byte |
var2 |
|
byte |
var2 |
|
byte |
var2 |
|
long |
var3 |
|
int |
var3 |
|
byte |
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
int |
var4 |
|
int |
var4 |
|
|
var4 |
|
int |
var4 |
|
int |
var5 |
|
int |
var5 |
|
String |
var5 |
|
|
var5 |
|
int |
var5 |
|
int |
var6 |
|
int |
var6 |
|
ParticleAttractor[] |
var7 |
|
long |
var7 |
|
long |
var8 |
Методы (78)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
public |
ParticleSpawnerGroup |
cloneParticleSpawnerGroup clone() |
public |
int |
computeSizeint computeSize() |
|
|
for for(int var8 = 0; var8 < var5; var8++) |
|
|
for for(int var12 = 0; var12 < var10; var12++) |
|
|
for for(int var6 = 0; var6 < this.attractors.length; var6++) |
abstract |
return |
getAttractorsreturn getAttractors(var0, 0) |
abstract |
return |
getEmitOffsetreturn getEmitOffset(var0, 0) |
static |
boolean |
getFixedRotationboolean getFixedRotation(MemorySegment var0) |
static |
boolean |
getFixedRotationboolean getFixedRotation(MemorySegment var0, int var1) |
abstract |
return |
getFixedRotationreturn getFixedRotation(var0, 0) |
abstract |
return |
getInitialVelocityreturn getInitialVelocity(var0, 0) |
abstract |
return |
getLifeSpanreturn getLifeSpan(var0, 0) |
static |
int |
getMaxConcurrentint getMaxConcurrent(MemorySegment var0) |
static |
int |
getMaxConcurrentint getMaxConcurrent(MemorySegment var0, int var1) |
abstract |
return |
getMaxConcurrentreturn getMaxConcurrent(var0, 0) |
abstract |
return |
getPositionOffsetreturn getPositionOffset(var0, 0) |
abstract |
return |
getRotationOffsetreturn getRotationOffset(var0, 0) |
abstract |
return |
getSpawnRatereturn getSpawnRate(var0, 0) |
abstract |
return |
getSpawnerIdreturn getSpawnerId(var0, 0) |
static |
float |
getStartDelayfloat getStartDelay(MemorySegment var0) |
static |
float |
getStartDelayfloat getStartDelay(MemorySegment var0, int var1) |
abstract |
return |
getStartDelayreturn getStartDelay(var0, 0) |
static |
int |
getTotalSpawnersint getTotalSpawners(MemorySegment var0) |
static |
int |
getTotalSpawnersint getTotalSpawners(MemorySegment var0, int var1) |
abstract |
return |
getTotalSpawnersreturn getTotalSpawners(var0, 0) |
static |
int |
getValidatedOffsetint getValidatedOffset(MemorySegment var0, int var1, int var2, int var3, String var4) |
abstract |
return |
getWaveDelayreturn getWaveDelay(var0, 0) |
static |
boolean |
hasAttractorsboolean hasAttractors(MemorySegment var0, int var1) |
static |
boolean |
hasEmitOffsetboolean hasEmitOffset(MemorySegment var0, int var1) |
static |
boolean |
hasInitialVelocityboolean hasInitialVelocity(MemorySegment var0, int var1) |
static |
boolean |
hasLifeSpanboolean hasLifeSpan(MemorySegment var0, int var1) |
static |
boolean |
hasPositionOffsetboolean hasPositionOffset(MemorySegment var0, int var1) |
static |
boolean |
hasRotationOffsetboolean hasRotationOffset(MemorySegment var0, int var1) |
static |
boolean |
hasSpawnRateboolean hasSpawnRate(MemorySegment var0, int var1) |
static |
boolean |
hasSpawnerIdboolean hasSpawnerId(MemorySegment var0, int var1) |
static |
boolean |
hasWaveDelayboolean hasWaveDelay(MemorySegment var0, int var1) |
|
|
if if(var1 < 0) |
|
|
if if(var3 == -1L) |
|
|
if if(var5 > 4096000) |
|
|
if if(var4 != var2) |
|
|
if if(var8 == -1L) |
|
|
if if(var10 > 4096000) |
|
|
if if(var2 != null) |
|
|
if if(this.positionOffset != null) |
|
|
if if(this.rotationOffset != null) |
|
|
if if(this.spawnRate != null) |
|
|
if if(this.waveDelay != null) |
|
|
if if(this.initialVelocity != null) |
|
|
if if(this.emitOffset != null) |
|
|
if if(this.lifeSpan != null) |
|
|
if if(this.spawnerId != null) |
|
|
if if(this.attractors != null) |
|
|
if if(this.positionOffset != null) |
|
|
if if(this.rotationOffset != null) |
|
|
if if(this.spawnRate != null) |
|
|
if if(this.waveDelay != null) |
|
|
if if(this.initialVelocity != null) |
|
|
if if(this.emitOffset != null) |
|
|
if if(this.lifeSpan != null) |
|
|
if if(this.spawnerId != null) |
|
|
if if(this.attractors != null) |
|
|
if if(this.attractors.length > 4096000) |
|
|
if if(this.spawnerId != null) |
|
|
if if(this.attractors != null) |
|
|
if if(this == var1) |
static |
void |
requireBoundsvoid requireBounds(MemorySegment var0, int var1) |
abstract |
|
requireBounds requireBounds(var0, var1) |
static |
void |
requireSlotvoid requireSlot(MemorySegment var0, int var1, int var2, String var3) |
abstract |
|
requireSlot requireSlot(var0, var1 + 113, var4, "SpawnerId") |
abstract |
|
requireSlot requireSlot(var0, var1 + 113, -1, "SpawnerId") |
abstract |
|
requireSlot requireSlot(var0, var1 + 117, var4, "Attractors") |
abstract |
|
requireSlot requireSlot(var0, var1 + 117, -1, "Attractors") |
public |
int |
serializeint serialize(@Nonnull MemorySegment var1, int var2) |
static |
ParticleSpawnerGroup |
toObjectParticleSpawnerGroup toObject(MemorySegment var0) |
static |
ParticleSpawnerGroup |
toObjectParticleSpawnerGroup toObject(MemorySegment var0, int var1) |
static |
ParticleSpawnerGroup |
toObjectParticleSpawnerGroup toObject(MemorySegment var0, int var1, @Nullable ReadCursor var2) |
abstract |
return |
toObjectreturn toObject(var0, 0, null) |
abstract |
return |
toObjectreturn toObject(var0, var1, null) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.protocol;
class="kw">import com.hypixel.hytale.protocol.io.PacketIO;
class="kw">import com.hypixel.hytale.protocol.io.ProtocolException;
class="kw">import com.hypixel.hytale.protocol.io.ReadCursor;
class="kw">import com.hypixel.hytale.protocol.io.VarInt;
class="kw">import java.lang.foreign.MemorySegment;
class="kw">import java.util.Arrays;
class="kw">import java.util.Objects;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3fc;
class="kw">public class ParticleSpawnerGroup {
class="kw">public class="kw">static class="kw">final int NULLABLE_BIT_FIELD_SIZE = 2;
class="kw">public class="kw">static class="kw">final int FIXED_BLOCK_SIZE = 113;
class="kw">public class="kw">static class="kw">final int VARIABLE_FIELD_COUNT = 2;
class="kw">public class="kw">static class="kw">final int VARIABLE_BLOCK_START = 121;
class="kw">public class="kw">static class="kw">final int MAX_SIZE = 364544131;
@Nullable
class="kw">public String spawnerId;
@Nullable
class="kw">public Vector3fc positionOffset;
@Nullable
class="kw">public Direction rotationOffset;
class="kw">public boolean fixedRotation;
class="kw">public float startDelay;
@Nullable
class="kw">public Rangef spawnRate;
@Nullable
class="kw">public Rangef waveDelay;
class="kw">public int totalSpawners;
class="kw">public int maxConcurrent;
@Nullable
class="kw">public InitialVelocity initialVelocity;
@Nullable
class="kw">public RangeVector3f emitOffset;
@Nullable
class="kw">public Rangef lifeSpan;
@Nullable
class="kw">public ParticleAttractor[] attractors;
class="kw">public ParticleSpawnerGroup() {
}
class="kw">public ParticleSpawnerGroup(
@Nullable String var1,
@Nullable Vector3fc var2,
@Nullable Direction var3,
boolean var4,
float var5,
@Nullable Rangef var6,
@Nullable Rangef var7,
int var8,
int var9,
@Nullable InitialVelocity var10,
@Nullable RangeVector3f var11,
@Nullable Rangef var12,
@Nullable ParticleAttractor[] var13
) {
this.spawnerId = var1;
this.positionOffset = var2;
this.rotationOffset = var3;
this.fixedRotation = var4;
this.startDelay = var5;
this.spawnRate = var6;
this.waveDelay = var7;
this.totalSpawners = var8;
this.maxConcurrent = var9;
this.initialVelocity = var10;
this.emitOffset = var11;
this.lifeSpan = var12;
this.attractors = var13;
}
class="kw">public ParticleSpawnerGroup(@Nonnull ParticleSpawnerGroup var1) {
this.spawnerId = var1.spawnerId;
this.positionOffset = var1.positionOffset;
this.rotationOffset = var1.rotationOffset;
this.fixedRotation = var1.fixedRotation;
this.startDelay = var1.startDelay;
this.spawnRate = var1.spawnRate;
this.waveDelay = var1.waveDelay;
this.totalSpawners = var1.totalSpawners;
this.maxConcurrent = var1.maxConcurrent;
this.initialVelocity = var1.initialVelocity;
this.emitOffset = var1.emitOffset;
this.lifeSpan = var1.lifeSpan;
this.attractors = var1.attractors;
}
class="kw">public class="kw">static void requireBounds(MemorySegment var0, int var1) {
if (var1 < 0) {
throw ProtocolException.invalidOffset("ParticleSpawnerGroup", var1, (int)var0.byteSize());
}
long var2 = var1 + 121L;
if (var2 > var0.byteSize()) {
throw ProtocolException.bufferTooSmall("ParticleSpawnerGroup", (int)Math.min(var2, 2147483647L), (int)var0.byteSize());
}
}
@Nullable
class="kw">public class="kw">static String getSpawnerId(MemorySegment var0) {
class="kw">return getSpawnerId(var0, 0);
}
@Nullable
class="kw">public class="kw">static String getSpawnerId(MemorySegment var0, int var1) {
class="kw">return hasSpawnerId(var0, var1) ? PacketIO.readVarString("SpawnerId", var0, var1 + getValidatedOffset(var0, var1, 113, 121, "SpawnerId"), 4096000) : null;
}
@Nullable
class="kw">public class="kw">static Vector3fc getPositionOffset(MemorySegment var0) {
class="kw">return getPositionOffset(var0, 0);
}
@Nullable
class="kw">public class="kw">static Vector3fc getPositionOffset(MemorySegment var0, int var1) {
class="kw">return hasPositionOffset(var0, var1) ? PacketIO.requireFinite(PacketIO.readVector3f(var0, var1 + 2), "PositionOffset") : null;
}
@Nullable
class="kw">public class="kw">static Direction getRotationOffset(MemorySegment var0) {
class="kw">return getRotationOffset(var0, 0);
}
@Nullable
class="kw">public class="kw">static Direction getRotationOffset(MemorySegment var0, int var1) {
class="kw">return hasRotationOffset(var0, var1) ? Direction.toObject(var0, var1 + 14) : null;
}
class="kw">public class="kw">static boolean getFixedRotation(MemorySegment var0) {
class="kw">return getFixedRotation(var0, 0);
}
class="kw">public class="kw">static boolean getFixedRotation(MemorySegment var0, int var1) {
class="kw">return var0.get(PacketIO.PROTO_BOOL, var1 + 26);
}
class="kw">public class="kw">static float getStartDelay(MemorySegment var0) {
class="kw">return getStartDelay(var0, 0);
}
class="kw">public class="kw">static float getStartDelay(MemorySegment var0, int var1) {
class="kw">return PacketIO.requireFinite(var0.get(PacketIO.PROTO_FLOAT, var1 + 27), "StartDelay");
}
@Nullable
class="kw">public class="kw">static Rangef getSpawnRate(MemorySegment var0) {
class="kw">return getSpawnRate(var0, 0);
}
@Nullable
class="kw">public class="kw">static Rangef getSpawnRate(MemorySegment var0, int var1) {
class="kw">return hasSpawnRate(var0, var1) ? Rangef.toObject(var0, var1 + 31) : null;
}
@Nullable
class="kw">public class="kw">static Rangef getWaveDelay(MemorySegment var0) {
class="kw">return getWaveDelay(var0, 0);
}
@Nullable
class="kw">public class="kw">static Rangef getWaveDelay(MemorySegment var0, int var1) {
class="kw">return hasWaveDelay(var0, var1) ? Rangef.toObject(var0, var1 + 39) : null;
}
class="kw">public class="kw">static int getTotalSpawners(MemorySegment var0) {
class="kw">return getTotalSpawners(var0, 0);
}
class="kw">public class="kw">static int getTotalSpawners(MemorySegment var0, int var1) {
class="kw">return var0.get(PacketIO.PROTO_INT, var1 + 47);
}
class="kw">public class="kw">static int getMaxConcurrent(MemorySegment var0) {
class="kw">return getMaxConcurrent(var0, 0);
}
class="kw">public class="kw">static int getMaxConcurrent(MemorySegment var0, int var1) {
class="kw">return var0.get(PacketIO.PROTO_INT, var1 + 51);
}
@Nullable
class="kw">public class="kw">static InitialVelocity getInitialVelocity(MemorySegment var0) {
class="kw">return getInitialVelocity(var0, 0);
}
@Nullable
class="kw">public class="kw">static InitialVelocity getInitialVelocity(MemorySegment var0, int var1) {
class="kw">return hasInitialVelocity(var0, var1) ? InitialVelocity.toObject(var0, var1 + 55) : null;
}
@Nullable
class="kw">public class="kw">static RangeVector3f getEmitOffset(MemorySegment var0) {
class="kw">return getEmitOffset(var0, 0);
}
@Nullable
class="kw">public class="kw">static RangeVector3f getEmitOffset(MemorySegment var0, int var1) {
class="kw">return hasEmitOffset(var0, var1) ? RangeVector3f.toObject(var0, var1 + 80) : null;
}
@Nullable
class="kw">public class="kw">static Rangef getLifeSpan(MemorySegment var0) {
class="kw">return getLifeSpan(var0, 0);
}
@Nullable
class="kw">public class="kw">static Rangef getLifeSpan(MemorySegment var0, int var1) {
class="kw">return hasLifeSpan(var0, var1) ? Rangef.toObject(var0, var1 + 105) : null;
}
@Nullable
class="kw">public class="kw">static ParticleAttractor[] getAttractors(MemorySegment var0) {
class="kw">return getAttractors(var0, 0);
}
@Nullable
class="kw">public class="kw">static ParticleAttractor[] getAttractors(MemorySegment var0, int var1) {
if (!hasAttractors(var0, var1)) {
class="kw">return null;
}
int var2 = var1 + getValidatedOffset(var0, var1, 117, 121, "Attractors");
long var3 = VarInt.getWithLength(var0, var2);
if (var3 == -1L) {
throw ProtocolException.invalidVarInt("Attractors");
}
int var5 = (int)var3;
if (var5 > 4096000) {
throw ProtocolException.arrayTooLong("Attractors", var5, 4096000);
}
int var6 = (int)(var3 >>> 32);
if (var2 + var6 + var5 * 85L > var0.byteSize()) {
throw ProtocolException.bufferTooSmall("Attractors", (int)Math.min(var2 + var6 + var5 * 85L, 2147483647L), (int)var0.byteSize());
}
var2 += var6;
ParticleAttractor[] var7 = new ParticleAttractor[var5];
for (int var8 = 0; var8 < var5; var8++) {
var7[var8] = ParticleAttractor.toObject(var0, var2 + var8 * 85);
}
class="kw">return var7;
}
class="kw">public class="kw">static boolean hasPositionOffset(MemorySegment var0, int var1) {
byte var2 = var0.get(PacketIO.PROTO_BYTE, var1 + 0);
class="kw">return (var2 & 1) != 0;
}
class="kw">public class="kw">static boolean hasRotationOffset(MemorySegment var0, int var1) {
byte var2 = var0.get(PacketIO.PROTO_BYTE, var1 + 0);
class="kw">return (var2 & 2) != 0;
}
class="kw">public class="kw">static boolean hasSpawnRate(MemorySegment var0, int var1) {
byte var2 = var0.get(PacketIO.PROTO_BYTE, var1 + 0);
class="kw">return (var2 & 4) != 0;
}
class="kw">public class="kw">static boolean hasWaveDelay(MemorySegment var0, int var1) {
byte var2 = var0.get(PacketIO.PROTO_BYTE, var1 + 0);
class="kw">return (var2 & 8) != 0;
}
class="kw">public class="kw">static boolean hasInitialVelocity(MemorySegment var0, int var1) {
byte var2 = var0.get(PacketIO.PROTO_BYTE, var1 + 0);
class="kw">return (var2 & 16) != 0;
}
class="kw">public class="kw">static boolean hasEmitOffset(MemorySegment var0, int var1) {
byte var2 = var0.get(PacketIO.PROTO_BYTE, var1 + 0);
class="kw">return (var2 & 32) != 0;
}
class="kw">public class="kw">static boolean hasLifeSpan(MemorySegment var0, int var1) {
byte var2 = var0.get(PacketIO.PROTO_BYTE, var1 + 0);
class="kw">return (var2 & 64) != 0;
}
class="kw">public class="kw">static boolean hasSpawnerId(MemorySegment var0, int var1) {
byte var2 = var0.get(PacketIO.PROTO_BYTE, var1 + 0);
class="kw">return (var2 & 128) != 0;
}
class="kw">public class="kw">static boolean hasAttractors(MemorySegment var0, int var1) {
byte var2 = var0.get(PacketIO.PROTO_BYTE, var1 + 1);
class="kw">return (var2 & 1) != 0;
}
class="kw">private class="kw">static int getValidatedOffset(MemorySegment var0, int var1, int var2, int var3, String var4) {
int var5 = var0.get(PacketIO.PROTO_INT, var1 + var2);
if (var5 >= 0 && var5 <= var0.byteSize() - var1 - var3) {
class="kw">return var3 + var5;
} else {
throw ProtocolException.invalidOffset(var4, var5, (int)var0.byteSize());
}
}
class="kw">private class="kw">static void requireSlot(MemorySegment var0, int var1, int var2, String var3) {
int var4 = var0.get(PacketIO.PROTO_INT, var1);
if (var4 != var2) {
throw ProtocolException.nonCanonicalLayout(var3, var4, var2);
}
}
class="kw">public class="kw">static ParticleSpawnerGroup toObject(MemorySegment var0) {
class="kw">return toObject(var0, 0, null);
}
class="kw">public class="kw">static ParticleSpawnerGroup toObject(MemorySegment var0, int var1) {
class="kw">return toObject(var0, var1, null);
}
class="kw">public class="kw">static ParticleSpawnerGroup toObject(MemorySegment var0, int var1, @Nullable ReadCursor var2) {
requireBounds(var0, var1);
int var3 = var1 + 121;
int var4 = 0;
String var5 = null;
if (hasSpawnerId(var0, var1)) {
requireSlot(var0, var1 + 113, var4, "SpawnerId");
int var6 = var3 + var4;
long var7 = VarInt.getWithLength(var0, var6);
var5 = PacketIO.readVarString("SpawnerId", var0, var6, 0, 4096000, var7);
var4 += (int)var7 + (int)(var7 >>> 32);
} else {
requireSlot(var0, var1 + 113, -1, "SpawnerId");
}
ParticleAttractor[] var13 = null;
if (hasAttractors(var0, var1)) {
requireSlot(var0, var1 + 117, var4, "Attractors");
int var14 = var3 + var4;
long var8 = VarInt.getWithLength(var0, var14);
if (var8 == -1L) {
throw ProtocolException.invalidVarInt("Attractors");
}
int var10 = (int)var8;
if (var10 > 4096000) {
throw ProtocolException.arrayTooLong("Attractors", var10, 4096000);
}
int var11 = (int)(var8 >>> 32);
if (var14 + var11 + var10 * 85L > var0.byteSize()) {
throw ProtocolException.bufferTooSmall("Attractors", (int)Math.min(var14 + var11 + var10 * 85L, 2147483647L), (int)var0.byteSize());
}
var14 += var11;
var13 = new ParticleAttractor[var10];
for (int var12 = 0; var12 < var10; var12++) {
var13[var12] = ParticleAttractor.toObject(var0, var14 + var12 * 85);
}
var4 = var14 + var10 * 85 - var3;
} else {
requireSlot(var0, var1 + 117, -1, "Attractors");
}
ParticleSpawnerGroup var16 = new ParticleSpawnerGroup(
var5,
hasPositionOffset(var0, var1) ? PacketIO.requireFinite(PacketIO.readVector3f(var0, var1 + 2), "PositionOffset") : null,
hasRotationOffset(var0, var1) ? Direction.toObject(var0, var1 + 14) : null,
var0.get(PacketIO.PROTO_BOOL, var1 + 26),
PacketIO.requireFinite(var0.get(PacketIO.PROTO_FLOAT, var1 + 27), "StartDelay"),
hasSpawnRate(var0, var1) ? Rangef.toObject(var0, var1 + 31) : null,
hasWaveDelay(var0, var1) ? Rangef.toObject(var0, var1 + 39) : null,
var0.get(PacketIO.PROTO_INT, var1 + 47),
var0.get(PacketIO.PROTO_INT, var1 + 51),
hasInitialVelocity(var0, var1) ? InitialVelocity.toObject(var0, var1 + 55) : null,
hasEmitOffset(var0, var1) ? RangeVector3f.toObject(var0, var1 + 80) : null,
hasLifeSpan(var0, var1) ? Rangef.toObject(var0, var1 + 105) : null,
var13
);
if (var2 != null) {
var2.position = var3 + var4;
}
class="kw">return var16;
}
class="kw">public int serialize(@Nonnull MemorySegment var1, int var2) {
byte var3 = 0;
if (this.positionOffset != null) {
var3 = (byte)(var3 | 1);
}
if (this.rotationOffset != null) {
var3 = (byte)(var3 | 2);
}
if (this.spawnRate != null) {
var3 = (byte)(var3 | 4);
}
if (this.waveDelay != null) {
var3 = (byte)(var3 | 8);
}
if (this.initialVelocity != null) {
var3 = (byte)(var3 | 16);
}
if (this.emitOffset != null) {
var3 = (byte)(var3 | 32);
}
if (this.lifeSpan != null) {
var3 = (byte)(var3 | 64);
}
if (this.spawnerId != null) {
var3 = (byte)(var3 | 128);
}
var1.set(PacketIO.PROTO_BYTE, var2 + 0, var3);
var3 = 0;
if (this.attractors != null) {
var3 = (byte)(var3 | 1);
}
var1.set(PacketIO.PROTO_BYTE, var2 + 1, var3);
if (this.positionOffset != null) {
PacketIO.requireFinite(this.positionOffset, "PositionOffset");
PacketIO.writeVector3f(var1, var2 + 2, this.positionOffset);
} else {
var1.asSlice(var2 + 2, 12L).fill((byte)0);
}
if (this.rotationOffset != null) {
this.rotationOffset.serialize(var1, var2 + 14);
} else {
var1.asSlice(var2 + 14, 12L).fill((byte)0);
}
var1.set(PacketIO.PROTO_BOOL, var2 + 26, this.fixedRotation);
PacketIO.requireFinite(this.startDelay, "StartDelay");
var1.set(PacketIO.PROTO_FLOAT, var2 + 27, this.startDelay);
if (this.spawnRate != null) {
this.spawnRate.serialize(var1, var2 + 31);
} else {
var1.asSlice(var2 + 31, 8L).fill((byte)0);
}
if (this.waveDelay != null) {
this.waveDelay.serialize(var1, var2 + 39);
} else {
var1.asSlice(var2 + 39, 8L).fill((byte)0);
}
var1.set(PacketIO.PROTO_INT, var2 + 47, this.totalSpawners);
var1.set(PacketIO.PROTO_INT, var2 + 51, this.maxConcurrent);
if (this.initialVelocity != null) {
this.initialVelocity.serialize(var1, var2 + 55);
} else {
var1.asSlice(var2 + 55, 25L).fill((byte)0);
}
if (this.emitOffset != null) {
this.emitOffset.serialize(var1, var2 + 80);
} else {
var1.asSlice(var2 + 80, 25L).fill((byte)0);
}
if (this.lifeSpan != null) {
this.lifeSpan.serialize(var1, var2 + 105);
} else {
var1.asSlice(var2 + 105, 8L).fill((byte)0);
}
int var4 = var2 + 121;
if (this.spawnerId != null) {
var1.set(PacketIO.PROTO_INT, var2 + 113, var4 - var2 - 121);
var4 += PacketIO.writeVarString(var1, var4, this.spawnerId, 4096000);
} else {
var1.set(PacketIO.PROTO_INT, var2 + 113, -1);
}
if (this.attractors != null) {
var1.set(PacketIO.PROTO_INT, var2 + 117, var4 - var2 - 121);
if (this.attractors.length > 4096000) {
throw ProtocolException.arrayTooLong("Attractors", this.attractors.length, 4096000);
}
var4 += VarInt.set(var1, var4, this.attractors.length);
int var5 = 0;
for (int var6 = 0; var6 < this.attractors.length; var6++) {
var5 += this.attractors[var6].serialize(var1, var4 + var5);
}
var4 += var5;
} else {
var1.set(PacketIO.PROTO_INT, var2 + 117, -1);
}
class="kw">return var4 - var2;
}
class="kw">public int computeSize() {
int var1 = 121;
if (this.spawnerId != null) {
var1 += PacketIO.stringSize(this.spawnerId);
}
if (this.attractors != null) {
var1 += VarInt.size(this.attractors.length) + this.attractors.length * 85;
}
class="kw">return var1;
}
class="kw">public ParticleSpawnerGroup clone() {
ParticleSpawnerGroup var1 = new ParticleSpawnerGroup();
var1.spawnerId = this.spawnerId;
var1.positionOffset = this.positionOffset;
var1.rotationOffset = this.rotationOffset != null ? this.rotationOffset.clone() : null;
var1.fixedRotation = this.fixedRotation;
var1.startDelay = this.startDelay;
var1.spawnRate = this.spawnRate != null ? this.spawnRate.clone() : null;
var1.waveDelay = this.waveDelay != null ? this.waveDelay.clone() : null;
var1.totalSpawners = this.totalSpawners;
var1.maxConcurrent = this.maxConcurrent;
var1.initialVelocity = this.initialVelocity != null ? this.initialVelocity.clone() : null;
var1.emitOffset = this.emitOffset != null ? this.emitOffset.clone() : null;
var1.lifeSpan = this.lifeSpan != null ? this.lifeSpan.clone() : null;
var1.attractors = this.attractors != null ? Arrays.stream(this.attractors).map(var0 -> var0.clone()).toArray(ParticleAttractor[]::new) : null;
class="kw">return var1;
}
@Override
class="kw">public boolean equals(Object var1) {
if (this == var1) {
class="kw">return true;
} else {
class="kw">return !(var1 class="kw">instanceof ParticleSpawnerGroup var2)
? false
: Objects.equals(this.spawnerId, var2.spawnerId)
&& Objects.equals(this.positionOffset, var2.positionOffset)
&& Objects.equals(this.rotationOffset, var2.rotationOffset)
&& this.fixedRotation == var2.fixedRotation
&& this.startDelay == var2.startDelay
&& Objects.equals(this.spawnRate, var2.spawnRate)
&& Objects.equals(this.waveDelay, var2.waveDelay)
&& this.totalSpawners == var2.totalSpawners
&& this.maxConcurrent == var2.maxConcurrent
&& Objects.equals(this.initialVelocity, var2.initialVelocity)
&& Objects.equals(this.emitOffset, var2.emitOffset)
&& Objects.equals(this.lifeSpan, var2.lifeSpan)
&& Arrays.equals(this.attractors, var2.attractors);
}
}
@Override
class="kw">public int hashCode() {
int var1 = 1;
var1 = 31 * var1 + Objects.hashCode(this.spawnerId);
var1 = 31 * var1 + Objects.hashCode(this.positionOffset);
var1 = 31 * var1 + Objects.hashCode(this.rotationOffset);
var1 = 31 * var1 + Boolean.hashCode(this.fixedRotation);
var1 = 31 * var1 + Float.hashCode(this.startDelay);
var1 = 31 * var1 + Objects.hashCode(this.spawnRate);
var1 = 31 * var1 + Objects.hashCode(this.waveDelay);
var1 = 31 * var1 + Integer.hashCode(this.totalSpawners);
var1 = 31 * var1 + Integer.hashCode(this.maxConcurrent);
var1 = 31 * var1 + Objects.hashCode(this.initialVelocity);
var1 = 31 * var1 + Objects.hashCode(this.emitOffset);
var1 = 31 * var1 + Objects.hashCode(this.lifeSpan);
class="kw">return 31 * var1 + Arrays.hashCode(this.attractors);
}
}