Model class
Пакет: com.hypixel.hytale.protocol
Файл: com/hypixel/hytale/protocol/Model.java
Поля (183)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
int |
NULLABLE_BIT_FIELD_SIZE |
|
int |
var1 |
|
Model |
var1 |
|
int |
var1 |
|
|
var1 |
|
|
var1 |
|
|
var1 |
|
|
var1 |
|
|
var1 |
|
|
var1 |
|
|
var1 |
|
|
var1 |
|
|
var1 |
|
|
var1 |
|
|
var1 |
|
|
var1 |
|
|
var1 |
|
|
var1 |
|
|
var1 |
|
|
var1 |
|
|
var1 |
|
|
var1 |
|
|
var1 |
|
String |
var10 |
|
long |
var10 |
|
int |
var10 |
|
String |
var11 |
|
long |
var11 |
|
long |
var11 |
|
AnimationSet |
var12 |
|
long |
var12 |
|
int |
var13 |
|
int |
var13 |
|
|
var13 |
|
int |
var14 |
|
long |
var14 |
|
DetailBox[] |
var15 |
|
long |
var15 |
|
int |
var16 |
|
int |
var17 |
|
long |
var18 |
|
int |
var18 |
|
int |
var19 |
|
long |
var2 |
|
ReadCursor |
var2 |
|
ReadCursor |
var2 |
|
ReadCursor |
var2 |
|
ReadCursor |
var2 |
|
int |
var2 |
|
byte |
var2 |
|
byte |
var2 |
|
byte |
var2 |
|
byte |
var2 |
|
byte |
var2 |
|
byte |
var2 |
|
byte |
var2 |
|
byte |
var2 |
|
byte |
var2 |
|
byte |
var2 |
|
byte |
var2 |
|
byte |
var2 |
|
byte |
var2 |
|
byte |
var2 |
|
int |
var2 |
|
Map |
var2 |
|
String |
var20 |
|
AnimationSet |
var21 |
|
long |
var22 |
|
String |
var24 |
|
long |
var25 |
|
int |
var27 |
|
int |
var28 |
|
DetailBox[] |
var29 |
|
int |
var3 |
|
|
var3 |
|
int |
var3 |
|
|
var3 |
|
int |
var3 |
|
|
var3 |
|
int |
var3 |
|
|
var3 |
|
long |
var3 |
|
int |
var3 |
|
byte |
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
|
var3 |
|
String |
var31 |
|
|
var31 |
|
int |
var32 |
|
String |
var33 |
|
|
var33 |
|
int |
var34 |
|
String |
var35 |
|
|
var35 |
|
int |
var36 |
|
String |
var37 |
|
|
var37 |
|
int |
var38 |
|
CameraSettings |
var39 |
|
|
var39 |
|
long |
var4 |
|
long |
var4 |
|
long |
var4 |
|
long |
var4 |
|
int |
var4 |
|
int |
var4 |
|
|
var4 |
|
|
var4 |
|
|
var4 |
|
|
var4 |
|
|
var4 |
|
|
var4 |
|
|
var4 |
|
int |
var4 |
|
Map |
var40 |
|
|
var40 |
|
ModelAttachment[] |
var43 |
|
|
var43 |
|
int |
var44 |
|
|
var44 |
|
ModelParticle[] |
var46 |
|
|
var46 |
|
int |
var47 |
|
|
var47 |
|
ModelTrail[] |
var49 |
|
|
var49 |
|
int |
var5 |
|
int |
var5 |
|
ReadCursor |
var5 |
|
Map |
var5 |
|
long |
var50 |
|
int |
var51 |
|
|
var51 |
|
Map |
var53 |
|
|
var53 |
|
int |
var54 |
|
long |
var55 |
|
int |
var56 |
|
Model |
var59 |
|
|
var59 |
|
int |
var6 |
|
int |
var6 |
|
int |
var6 |
|
int |
var6 |
|
Map |
var6 |
|
String |
var6 |
|
|
var6 |
|
int |
var60 |
|
int |
var61 |
|
long |
var62 |
|
Model |
var63 |
|
int |
var64 |
|
int |
var65 |
|
int |
var67 |
|
int |
var68 |
|
Map |
var7 |
|
int |
var7 |
|
int |
var7 |
|
int |
var7 |
|
int |
var7 |
|
int |
var7 |
|
ModelAttachment[] |
var8 |
|
ModelParticle[] |
var8 |
|
ModelTrail[] |
var8 |
|
long |
var8 |
|
long |
var8 |
|
int |
var8 |
|
long |
var9 |
|
long |
var9 |
|
int |
var9 |
Методы (173)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
public |
Model |
cloneModel clone() |
public |
int |
computeSizeint computeSize() |
|
|
for for(int var8 = 0; var8 < var6; var8++) |
|
|
for for(int var9 = 0; var9 < var6; var9++) |
|
|
for for(int var9 = 0; var9 < var6; var9++) |
|
|
for for(int var9 = 0; var9 < var6; var9++) |
|
|
for for(int var7 = 0; var7 < var5; var7++) |
|
|
for for(int var16 = 0; var16 < var13; var16++) |
|
|
for for(int var17 = 0; var17 < var16; var17++) |
|
|
for for(int var19 = 0; var19 < var54; var19++) |
|
|
for for(int var66 = 0; var66 < var61; var66++) |
|
|
for for(int var69 = 0; var69 < var65; var69++) |
|
|
for for(int var70 = 0; var70 < var68; var70++) |
|
|
for for(int var30 = 0; var30 < var27; var30++) |
|
|
for for(int var21 = 0; var21 < this.attachments.length; var21++) |
|
|
for for(int var22 = 0; var22 < this.particles.length; var22++) |
|
|
for for(int var23 = 0; var23 < this.trails.length; var23++) |
|
|
for for(ModelAttachment var6 : this.attachments) |
|
|
for for(ModelParticle var21 : this.particles) |
|
|
for for(ModelTrail var22 : this.trails) |
abstract |
return |
getAnimationSetsreturn getAnimationSets(var0, 0) |
abstract |
return |
getAssetIdreturn getAssetId(var0, 0) |
abstract |
return |
getAttachmentsreturn getAttachments(var0, 0) |
abstract |
return |
getCamerareturn getCamera(var0, 0) |
static |
float |
getCrouchOffsetfloat getCrouchOffset(MemorySegment var0) |
static |
float |
getCrouchOffsetfloat getCrouchOffset(MemorySegment var0, int var1) |
abstract |
return |
getCrouchOffsetreturn getCrouchOffset(var0, 0) |
abstract |
return |
getDetailBoxesreturn getDetailBoxes(var0, 0) |
static |
float |
getEyeHeightfloat getEyeHeight(MemorySegment var0) |
static |
float |
getEyeHeightfloat getEyeHeight(MemorySegment var0, int var1) |
abstract |
return |
getEyeHeightreturn getEyeHeight(var0, 0) |
abstract |
return |
getGradientIdreturn getGradientId(var0, 0) |
abstract |
return |
getGradientSetreturn getGradientSet(var0, 0) |
abstract |
return |
getHitboxreturn getHitbox(var0, 0) |
abstract |
return |
getLightreturn getLight(var0, 0) |
abstract |
return |
getParticlesreturn getParticles(var0, 0) |
abstract |
return |
getPathreturn getPath(var0, 0) |
static |
Phobia |
getPhobiaPhobia getPhobia(MemorySegment var0) |
static |
Phobia |
getPhobiaPhobia getPhobia(MemorySegment var0, int var1) |
abstract |
return |
getPhobiareturn getPhobia(var0, 0) |
abstract |
return |
getPhobiaModelreturn getPhobiaModel(var0, 0) |
static |
float |
getScalefloat getScale(MemorySegment var0) |
static |
float |
getScalefloat getScale(MemorySegment var0, int var1) |
abstract |
return |
getScalereturn getScale(var0, 0) |
static |
float |
getSittingOffsetfloat getSittingOffset(MemorySegment var0) |
static |
float |
getSittingOffsetfloat getSittingOffset(MemorySegment var0, int var1) |
abstract |
return |
getSittingOffsetreturn getSittingOffset(var0, 0) |
static |
float |
getSleepingOffsetfloat getSleepingOffset(MemorySegment var0) |
static |
float |
getSleepingOffsetfloat getSleepingOffset(MemorySegment var0, int var1) |
abstract |
return |
getSleepingOffsetreturn getSleepingOffset(var0, 0) |
abstract |
return |
getTexturereturn getTexture(var0, 0) |
abstract |
return |
getTrailsreturn getTrails(var0, 0) |
static |
int |
getValidatedOffsetint getValidatedOffset(MemorySegment var0, int var1, int var2, int var3, String var4) |
static |
boolean |
hasAnimationSetsboolean hasAnimationSets(MemorySegment var0, int var1) |
static |
boolean |
hasAssetIdboolean hasAssetId(MemorySegment var0, int var1) |
static |
boolean |
hasAttachmentsboolean hasAttachments(MemorySegment var0, int var1) |
static |
boolean |
hasCameraboolean hasCamera(MemorySegment var0, int var1) |
static |
boolean |
hasDetailBoxesboolean hasDetailBoxes(MemorySegment var0, int var1) |
static |
boolean |
hasGradientIdboolean hasGradientId(MemorySegment var0, int var1) |
static |
boolean |
hasGradientSetboolean hasGradientSet(MemorySegment var0, int var1) |
static |
boolean |
hasHitboxboolean hasHitbox(MemorySegment var0, int var1) |
static |
boolean |
hasLightboolean hasLight(MemorySegment var0, int var1) |
static |
boolean |
hasParticlesboolean hasParticles(MemorySegment var0, int var1) |
static |
boolean |
hasPathboolean hasPath(MemorySegment var0, int var1) |
static |
boolean |
hasPhobiaModelboolean hasPhobiaModel(MemorySegment var0, int var1) |
static |
boolean |
hasTextureboolean hasTexture(MemorySegment var0, int var1) |
static |
boolean |
hasTrailsboolean hasTrails(MemorySegment var0, int var1) |
|
|
if if(var1 < 0) |
|
|
if if(var4 == -1L) |
|
|
if if(var6 > 4096000) |
|
|
if if(var4 == -1L) |
|
|
if if(var6 > 4096000) |
|
|
if if(var4 == -1L) |
|
|
if if(var6 > 4096000) |
|
|
if if(var4 == -1L) |
|
|
if if(var6 > 4096000) |
|
|
if if(var3 == -1L) |
|
|
if if(var5 > 4096000) |
|
|
if if(var11 == -1L) |
|
|
if if(var13 > 4096000) |
|
|
if if(var4 != var2) |
|
|
if if(var14 == -1L) |
|
|
if if(var16 > 4096000) |
|
|
if if(var15 == -1L) |
|
|
if if(var54 > 4096000) |
|
|
if if(var50 == -1L) |
|
|
if if(var61 > 4096000) |
|
|
if if(var55 == -1L) |
|
|
if if(var65 > 4096000) |
|
|
if if(var62 == -1L) |
|
|
if if(var68 > 4096000) |
|
|
if if(var25 == -1L) |
|
|
if if(var27 > 4096000) |
|
|
if if(var2 != null) |
|
|
if if(this.hitbox != null) |
|
|
if if(this.light != null) |
|
|
if if(this.assetId != null) |
|
|
if if(this.path != null) |
|
|
if if(this.texture != null) |
|
|
if if(this.gradientSet != null) |
|
|
if if(this.gradientId != null) |
|
|
if if(this.camera != null) |
|
|
if if(this.animationSets != null) |
|
|
if if(this.attachments != null) |
|
|
if if(this.particles != null) |
|
|
if if(this.trails != null) |
|
|
if if(this.detailBoxes != null) |
|
|
if if(this.phobiaModel != null) |
|
|
if if(this.hitbox != null) |
|
|
if if(this.light != null) |
|
|
if if(this.assetId != null) |
|
|
if if(this.path != null) |
|
|
if if(this.texture != null) |
|
|
if if(this.gradientSet != null) |
|
|
if if(this.gradientId != null) |
|
|
if if(this.camera != null) |
|
|
if if(this.animationSets != null) |
|
|
if if(this.attachments != null) |
|
|
if if(this.attachments.length > 4096000) |
|
|
if if(this.particles != null) |
|
|
if if(this.particles.length > 4096000) |
|
|
if if(this.trails != null) |
|
|
if if(this.trails.length > 4096000) |
|
|
if if(this.detailBoxes != null) |
|
|
if if(this.phobiaModel != null) |
|
|
if if(this.assetId != null) |
|
|
if if(this.path != null) |
|
|
if if(this.texture != null) |
|
|
if if(this.gradientSet != null) |
|
|
if if(this.gradientId != null) |
|
|
if if(this.camera != null) |
|
|
if if(this.animationSets != null) |
|
|
if if(this.attachments != null) |
|
|
if if(this.particles != null) |
|
|
if if(this.trails != null) |
|
|
if if(this.detailBoxes != null) |
|
|
if if(this.phobiaModel != null) |
|
|
if if(this.animationSets != null) |
|
|
if if(this.detailBoxes != 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 + 51, var4, "AssetId") |
abstract |
|
requireSlot requireSlot(var0, var1 + 51, -1, "AssetId") |
abstract |
|
requireSlot requireSlot(var0, var1 + 55, var4, "Path") |
abstract |
|
requireSlot requireSlot(var0, var1 + 55, -1, "Path") |
abstract |
|
requireSlot requireSlot(var0, var1 + 59, var4, "Texture") |
abstract |
|
requireSlot requireSlot(var0, var1 + 59, -1, "Texture") |
abstract |
|
requireSlot requireSlot(var0, var1 + 63, var4, "GradientSet") |
abstract |
|
requireSlot requireSlot(var0, var1 + 63, -1, "GradientSet") |
abstract |
|
requireSlot requireSlot(var0, var1 + 67, var4, "GradientId") |
abstract |
|
requireSlot requireSlot(var0, var1 + 67, -1, "GradientId") |
abstract |
|
requireSlot requireSlot(var0, var1 + 71, var4, "Camera") |
abstract |
|
requireSlot requireSlot(var0, var1 + 71, -1, "Camera") |
abstract |
|
requireSlot requireSlot(var0, var1 + 75, var4, "AnimationSets") |
abstract |
|
requireSlot requireSlot(var0, var1 + 75, -1, "AnimationSets") |
abstract |
|
requireSlot requireSlot(var0, var1 + 79, var4, "Attachments") |
abstract |
|
requireSlot requireSlot(var0, var1 + 79, -1, "Attachments") |
abstract |
|
requireSlot requireSlot(var0, var1 + 83, var4, "Particles") |
abstract |
|
requireSlot requireSlot(var0, var1 + 83, -1, "Particles") |
abstract |
|
requireSlot requireSlot(var0, var1 + 87, var4, "Trails") |
abstract |
|
requireSlot requireSlot(var0, var1 + 87, -1, "Trails") |
abstract |
|
requireSlot requireSlot(var0, var1 + 91, var4, "DetailBoxes") |
abstract |
|
requireSlot requireSlot(var0, var1 + 91, -1, "DetailBoxes") |
abstract |
|
requireSlot requireSlot(var0, var1 + 95, var4, "PhobiaModel") |
abstract |
|
requireSlot requireSlot(var0, var1 + 95, -1, "PhobiaModel") |
public |
int |
serializeint serialize(@Nonnull MemorySegment var1, int var2) |
static |
Model |
toObjectModel toObject(MemorySegment var0) |
static |
Model |
toObjectModel toObject(MemorySegment var0, int var1) |
static |
Model |
toObjectModel 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.HashMap;
class="kw">import java.util.Map;
class="kw">import java.util.Objects;
class="kw">import java.util.Map.Entry;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class Model {
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 = 51;
class="kw">public class="kw">static class="kw">final int VARIABLE_FIELD_COUNT = 12;
class="kw">public class="kw">static class="kw">final int VARIABLE_BLOCK_START = 99;
class="kw">public class="kw">static class="kw">final int MAX_SIZE = 1677721600;
@Nullable
class="kw">public String assetId;
@Nullable
class="kw">public String path;
@Nullable
class="kw">public String texture;
@Nullable
class="kw">public String gradientSet;
@Nullable
class="kw">public String gradientId;
@Nullable
class="kw">public CameraSettings camera;
class="kw">public float scale;
class="kw">public float eyeHeight;
class="kw">public float crouchOffset;
class="kw">public float sittingOffset;
class="kw">public float sleepingOffset;
@Nullable
class="kw">public Map<String, AnimationSet> animationSets;
@Nullable
class="kw">public ModelAttachment[] attachments;
@Nullable
class="kw">public Hitbox hitbox;
@Nullable
class="kw">public ModelParticle[] particles;
@Nullable
class="kw">public ModelTrail[] trails;
@Nullable
class="kw">public ColorLight light;
@Nullable
class="kw">public Map<String, DetailBox[]> detailBoxes;
@Nonnull
class="kw">public Phobia phobia = Phobia.None;
@Nullable
class="kw">public Model phobiaModel;
class="kw">public Model() {
}
class="kw">public Model(
@Nullable String var1,
@Nullable String var2,
@Nullable String var3,
@Nullable String var4,
@Nullable String var5,
@Nullable CameraSettings var6,
float var7,
float var8,
float var9,
float var10,
float var11,
@Nullable Map<String, AnimationSet> var12,
@Nullable ModelAttachment[] var13,
@Nullable Hitbox var14,
@Nullable ModelParticle[] var15,
@Nullable ModelTrail[] var16,
@Nullable ColorLight var17,
@Nullable Map<String, DetailBox[]> var18,
@Nonnull Phobia var19,
@Nullable Model var20
) {
this.assetId = var1;
this.path = var2;
this.texture = var3;
this.gradientSet = var4;
this.gradientId = var5;
this.camera = var6;
this.scale = var7;
this.eyeHeight = var8;
this.crouchOffset = var9;
this.sittingOffset = var10;
this.sleepingOffset = var11;
this.animationSets = var12;
this.attachments = var13;
this.hitbox = var14;
this.particles = var15;
this.trails = var16;
this.light = var17;
this.detailBoxes = var18;
this.phobia = var19;
this.phobiaModel = var20;
}
class="kw">public Model(@Nonnull Model var1) {
this.assetId = var1.assetId;
this.path = var1.path;
this.texture = var1.texture;
this.gradientSet = var1.gradientSet;
this.gradientId = var1.gradientId;
this.camera = var1.camera;
this.scale = var1.scale;
this.eyeHeight = var1.eyeHeight;
this.crouchOffset = var1.crouchOffset;
this.sittingOffset = var1.sittingOffset;
this.sleepingOffset = var1.sleepingOffset;
this.animationSets = var1.animationSets;
this.attachments = var1.attachments;
this.hitbox = var1.hitbox;
this.particles = var1.particles;
this.trails = var1.trails;
this.light = var1.light;
this.detailBoxes = var1.detailBoxes;
this.phobia = var1.phobia;
this.phobiaModel = var1.phobiaModel;
}
class="kw">public class="kw">static void requireBounds(MemorySegment var0, int var1) {
if (var1 < 0) {
throw ProtocolException.invalidOffset("Model", var1, (int)var0.byteSize());
}
long var2 = var1 + 99L;
if (var2 > var0.byteSize()) {
throw ProtocolException.bufferTooSmall("Model", (int)Math.min(var2, 2147483647L), (int)var0.byteSize());
}
}
@Nullable
class="kw">public class="kw">static String getAssetId(MemorySegment var0) {
class="kw">return getAssetId(var0, 0);
}
@Nullable
class="kw">public class="kw">static String getAssetId(MemorySegment var0, int var1) {
class="kw">return hasAssetId(var0, var1) ? PacketIO.readVarString("AssetId", var0, var1 + getValidatedOffset(var0, var1, 51, 99, "AssetId"), 4096000) : null;
}
@Nullable
class="kw">public class="kw">static String getPath(MemorySegment var0) {
class="kw">return getPath(var0, 0);
}
@Nullable
class="kw">public class="kw">static String getPath(MemorySegment var0, int var1) {
class="kw">return hasPath(var0, var1) ? PacketIO.readVarString("Path", var0, var1 + getValidatedOffset(var0, var1, 55, 99, "Path"), 4096000) : null;
}
@Nullable
class="kw">public class="kw">static String getTexture(MemorySegment var0) {
class="kw">return getTexture(var0, 0);
}
@Nullable
class="kw">public class="kw">static String getTexture(MemorySegment var0, int var1) {
class="kw">return hasTexture(var0, var1) ? PacketIO.readVarString("Texture", var0, var1 + getValidatedOffset(var0, var1, 59, 99, "Texture"), 4096000) : null;
}
@Nullable
class="kw">public class="kw">static String getGradientSet(MemorySegment var0) {
class="kw">return getGradientSet(var0, 0);
}
@Nullable
class="kw">public class="kw">static String getGradientSet(MemorySegment var0, int var1) {
class="kw">return hasGradientSet(var0, var1)
? PacketIO.readVarString("GradientSet", var0, var1 + getValidatedOffset(var0, var1, 63, 99, "GradientSet"), 4096000)
: null;
}
@Nullable
class="kw">public class="kw">static String getGradientId(MemorySegment var0) {
class="kw">return getGradientId(var0, 0);
}
@Nullable
class="kw">public class="kw">static String getGradientId(MemorySegment var0, int var1) {
class="kw">return hasGradientId(var0, var1)
? PacketIO.readVarString("GradientId", var0, var1 + getValidatedOffset(var0, var1, 67, 99, "GradientId"), 4096000)
: null;
}
@Nullable
class="kw">public class="kw">static CameraSettings getCamera(MemorySegment var0) {
class="kw">return getCamera(var0, 0);
}
@Nullable
class="kw">public class="kw">static CameraSettings getCamera(MemorySegment var0, int var1) {
class="kw">return hasCamera(var0, var1) ? CameraSettings.toObject(var0, var1 + getValidatedOffset(var0, var1, 71, 99, "Camera")) : null;
}
class="kw">public class="kw">static float getScale(MemorySegment var0) {
class="kw">return getScale(var0, 0);
}
class="kw">public class="kw">static float getScale(MemorySegment var0, int var1) {
class="kw">return PacketIO.requireFinite(var0.get(PacketIO.PROTO_FLOAT, var1 + 2), "Scale");
}
class="kw">public class="kw">static float getEyeHeight(MemorySegment var0) {
class="kw">return getEyeHeight(var0, 0);
}
class="kw">public class="kw">static float getEyeHeight(MemorySegment var0, int var1) {
class="kw">return PacketIO.requireFinite(var0.get(PacketIO.PROTO_FLOAT, var1 + 6), "EyeHeight");
}
class="kw">public class="kw">static float getCrouchOffset(MemorySegment var0) {
class="kw">return getCrouchOffset(var0, 0);
}
class="kw">public class="kw">static float getCrouchOffset(MemorySegment var0, int var1) {
class="kw">return PacketIO.requireFinite(var0.get(PacketIO.PROTO_FLOAT, var1 + 10), "CrouchOffset");
}
class="kw">public class="kw">static float getSittingOffset(MemorySegment var0) {
class="kw">return getSittingOffset(var0, 0);
}
class="kw">public class="kw">static float getSittingOffset(MemorySegment var0, int var1) {
class="kw">return PacketIO.requireFinite(var0.get(PacketIO.PROTO_FLOAT, var1 + 14), "SittingOffset");
}
class="kw">public class="kw">static float getSleepingOffset(MemorySegment var0) {
class="kw">return getSleepingOffset(var0, 0);
}
class="kw">public class="kw">static float getSleepingOffset(MemorySegment var0, int var1) {
class="kw">return PacketIO.requireFinite(var0.get(PacketIO.PROTO_FLOAT, var1 + 18), "SleepingOffset");
}
@Nullable
class="kw">public class="kw">static Map<String, AnimationSet> getAnimationSets(MemorySegment var0) {
class="kw">return getAnimationSets(var0, 0);
}
@Nullable
class="kw">public class="kw">static Map<String, AnimationSet> getAnimationSets(MemorySegment var0, int var1) {
if (!hasAnimationSets(var0, var1)) {
class="kw">return null;
}
ReadCursor var2 = new ReadCursor();
int var3 = var1 + getValidatedOffset(var0, var1, 75, 99, "AnimationSets");
long var4 = VarInt.getWithLength(var0, var3);
if (var4 == -1L) {
throw ProtocolException.invalidVarInt("AnimationSets");
}
int var6 = (int)var4;
if (var6 > 4096000) {
throw ProtocolException.dictionaryTooLarge("AnimationSets", var6, 4096000);
}
var3 += (int)(var4 >>> 32);
if (var3 + var6 * 18L > var0.byteSize()) {
throw ProtocolException.bufferTooSmall("AnimationSets", (int)Math.min(var3 + var6 * 18L, 2147483647L), (int)var0.byteSize());
}
Map var7 = new HashMap<>(var6);
for (int var8 = 0; var8 < var6; var8++) {
long var9 = VarInt.getWithLength(var0, var3);
String var11 = PacketIO.readVarString("key", var0, var3, 0, 4096000, var9);
var3 += (int)var9 + (int)(var9 >>> 32);
AnimationSet var12 = AnimationSet.toObject(var0, var3, var2);
var3 = var2.position;
if (var7.put(var11, var12) != null) {
throw ProtocolException.duplicateKey("AnimationSets", var11);
}
}
class="kw">return var7;
}
@Nullable
class="kw">public class="kw">static ModelAttachment[] getAttachments(MemorySegment var0) {
class="kw">return getAttachments(var0, 0);
}
@Nullable
class="kw">public class="kw">static ModelAttachment[] getAttachments(MemorySegment var0, int var1) {
if (!hasAttachments(var0, var1)) {
class="kw">return null;
}
ReadCursor var2 = new ReadCursor();
int var3 = var1 + getValidatedOffset(var0, var1, 79, 99, "Attachments");
long var4 = VarInt.getWithLength(var0, var3);
if (var4 == -1L) {
throw ProtocolException.invalidVarInt("Attachments");
}
int var6 = (int)var4;
if (var6 > 4096000) {
throw ProtocolException.arrayTooLong("Attachments", var6, 4096000);
}
int var7 = (int)(var4 >>> 32);
if (var3 + var7 + var6 * 17L > var0.byteSize()) {
throw ProtocolException.bufferTooSmall("Attachments", (int)Math.min(var3 + var7 + var6 * 17L, 2147483647L), (int)var0.byteSize());
}
var3 += var7;
ModelAttachment[] var8 = new ModelAttachment[var6];
for (int var9 = 0; var9 < var6; var9++) {
var8[var9] = ModelAttachment.toObject(var0, var3, var2);
var3 = var2.position;
}
class="kw">return var8;
}
@Nullable
class="kw">public class="kw">static Hitbox getHitbox(MemorySegment var0) {
class="kw">return getHitbox(var0, 0);
}
@Nullable
class="kw">public class="kw">static Hitbox getHitbox(MemorySegment var0, int var1) {
class="kw">return hasHitbox(var0, var1) ? Hitbox.toObject(var0, var1 + 22) : null;
}
@Nullable
class="kw">public class="kw">static ModelParticle[] getParticles(MemorySegment var0) {
class="kw">return getParticles(var0, 0);
}
@Nullable
class="kw">public class="kw">static ModelParticle[] getParticles(MemorySegment var0, int var1) {
if (!hasParticles(var0, var1)) {
class="kw">return null;
}
ReadCursor var2 = new ReadCursor();
int var3 = var1 + getValidatedOffset(var0, var1, 83, 99, "Particles");
long var4 = VarInt.getWithLength(var0, var3);
if (var4 == -1L) {
throw ProtocolException.invalidVarInt("Particles");
}
int var6 = (int)var4;
if (var6 > 4096000) {
throw ProtocolException.arrayTooLong("Particles", var6, 4096000);
}
int var7 = (int)(var4 >>> 32);
if (var3 + var7 + var6 * 42L > var0.byteSize()) {
throw ProtocolException.bufferTooSmall("Particles", (int)Math.min(var3 + var7 + var6 * 42L, 2147483647L), (int)var0.byteSize());
}
var3 += var7;
ModelParticle[] var8 = new ModelParticle[var6];
for (int var9 = 0; var9 < var6; var9++) {
var8[var9] = ModelParticle.toObject(var0, var3, var2);
var3 = var2.position;
}
class="kw">return var8;
}
@Nullable
class="kw">public class="kw">static ModelTrail[] getTrails(MemorySegment var0) {
class="kw">return getTrails(var0, 0);
}
@Nullable
class="kw">public class="kw">static ModelTrail[] getTrails(MemorySegment var0, int var1) {
if (!hasTrails(var0, var1)) {
class="kw">return null;
}
ReadCursor var2 = new ReadCursor();
int var3 = var1 + getValidatedOffset(var0, var1, 87, 99, "Trails");
long var4 = VarInt.getWithLength(var0, var3);
if (var4 == -1L) {
throw ProtocolException.invalidVarInt("Trails");
}
int var6 = (int)var4;
if (var6 > 4096000) {
throw ProtocolException.arrayTooLong("Trails", var6, 4096000);
}
int var7 = (int)(var4 >>> 32);
if (var3 + var7 + var6 * 35L > var0.byteSize()) {
throw ProtocolException.bufferTooSmall("Trails", (int)Math.min(var3 + var7 + var6 * 35L, 2147483647L), (int)var0.byteSize());
}
var3 += var7;
ModelTrail[] var8 = new ModelTrail[var6];
for (int var9 = 0; var9 < var6; var9++) {
var8[var9] = ModelTrail.toObject(var0, var3, var2);
var3 = var2.position;
}
class="kw">return var8;
}
@Nullable
class="kw">public class="kw">static ColorLight getLight(MemorySegment var0) {
class="kw">return getLight(var0, 0);
}
@Nullable
class="kw">public class="kw">static ColorLight getLight(MemorySegment var0, int var1) {
class="kw">return hasLight(var0, var1) ? ColorLight.toObject(var0, var1 + 46) : null;
}
@Nullable
class="kw">public class="kw">static Map<String, DetailBox[]> getDetailBoxes(MemorySegment var0) {
class="kw">return getDetailBoxes(var0, 0);
}
@Nullable
class="kw">public class="kw">static Map<String, DetailBox[]> getDetailBoxes(MemorySegment var0, int var1) {
if (!hasDetailBoxes(var0, var1)) {
class="kw">return null;
}
int var2 = var1 + getValidatedOffset(var0, var1, 91, 99, "DetailBoxes");
long var3 = VarInt.getWithLength(var0, var2);
if (var3 == -1L) {
throw ProtocolException.invalidVarInt("DetailBoxes");
}
int var5 = (int)var3;
if (var5 > 4096000) {
throw ProtocolException.dictionaryTooLarge("DetailBoxes", var5, 4096000);
}
var2 += (int)(var3 >>> 32);
if (var2 + var5 * 2L > var0.byteSize()) {
throw ProtocolException.bufferTooSmall("DetailBoxes", (int)Math.min(var2 + var5 * 2L, 2147483647L), (int)var0.byteSize());
}
Map var6 = new HashMap<>(var5);
for (int var7 = 0; var7 < var5; var7++) {
long var8 = VarInt.getWithLength(var0, var2);
String var10 = PacketIO.readVarString("key", var0, var2, 0, 4096000, var8);
var2 += (int)var8 + (int)(var8 >>> 32);
long var11 = VarInt.getWithLength(var0, var2);
if (var11 == -1L) {
throw ProtocolException.invalidVarInt("value");
}
int var13 = (int)var11;
int var14 = (int)(var11 >>> 32);
if (var13 > 4096000) {
throw ProtocolException.arrayTooLong("value", var13, 4096000);
}
if (var2 + var14 + var13 * 37L > var0.byteSize()) {
throw ProtocolException.bufferTooSmall("value", var2 + var14 + var13 * 37, (int)var0.byteSize());
}
var2 += var14;
DetailBox[] var15 = new DetailBox[var13];
for (int var16 = 0; var16 < var13; var16++) {
var15[var16] = DetailBox.toObject(var0, var2);
var2 += 37;
}
if (var6.put(var10, var15) != null) {
throw ProtocolException.duplicateKey("DetailBoxes", var10);
}
}
class="kw">return var6;
}
class="kw">public class="kw">static Phobia getPhobia(MemorySegment var0) {
class="kw">return getPhobia(var0, 0);
}
class="kw">public class="kw">static Phobia getPhobia(MemorySegment var0, int var1) {
class="kw">return Phobia.fromValue(var0.get(PacketIO.PROTO_BYTE, var1 + 50));
}
@Nullable
class="kw">public class="kw">static Model getPhobiaModel(MemorySegment var0) {
class="kw">return getPhobiaModel(var0, 0);
}
@Nullable
class="kw">public class="kw">static Model getPhobiaModel(MemorySegment var0, int var1) {
class="kw">return hasPhobiaModel(var0, var1) ? toObject(var0, var1 + getValidatedOffset(var0, var1, 95, 99, "PhobiaModel")) : null;
}
class="kw">public class="kw">static boolean hasHitbox(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 hasLight(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 hasAssetId(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 hasPath(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 hasTexture(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 hasGradientSet(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 hasGradientId(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 hasCamera(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 hasAnimationSets(MemorySegment var0, int var1) {
byte var2 = var0.get(PacketIO.PROTO_BYTE, var1 + 1);
class="kw">return (var2 & 1) != 0;
}
class="kw">public class="kw">static boolean hasAttachments(MemorySegment var0, int var1) {
byte var2 = var0.get(PacketIO.PROTO_BYTE, var1 + 1);
class="kw">return (var2 & 2) != 0;
}
class="kw">public class="kw">static boolean hasParticles(MemorySegment var0, int var1) {
byte var2 = var0.get(PacketIO.PROTO_BYTE, var1 + 1);
class="kw">return (var2 & 4) != 0;
}
class="kw">public class="kw">static boolean hasTrails(MemorySegment var0, int var1) {
byte var2 = var0.get(PacketIO.PROTO_BYTE, var1 + 1);
class="kw">return (var2 & 8) != 0;
}
class="kw">public class="kw">static boolean hasDetailBoxes(MemorySegment var0, int var1) {
byte var2 = var0.get(PacketIO.PROTO_BYTE, var1 + 1);
class="kw">return (var2 & 16) != 0;
}
class="kw">public class="kw">static boolean hasPhobiaModel(MemorySegment var0, int var1) {
byte var2 = var0.get(PacketIO.PROTO_BYTE, var1 + 1);
class="kw">return (var2 & 32) != 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 Model toObject(MemorySegment var0) {
class="kw">return toObject(var0, 0, null);
}
class="kw">public class="kw">static Model toObject(MemorySegment var0, int var1) {
class="kw">return toObject(var0, var1, null);
}
class="kw">public class="kw">static Model toObject(MemorySegment var0, int var1, @Nullable ReadCursor var2) {
requireBounds(var0, var1);
int var3 = var1 + 99;
int var4 = 0;
ReadCursor var5 = var2 != null ? var2 : new ReadCursor();
String var6 = null;
if (hasAssetId(var0, var1)) {
requireSlot(var0, var1 + 51, var4, "AssetId");
int var7 = var3 + var4;
long var8 = VarInt.getWithLength(var0, var7);
var6 = PacketIO.readVarString("AssetId", var0, var7, 0, 4096000, var8);
var4 += (int)var8 + (int)(var8 >>> 32);
} else {
requireSlot(var0, var1 + 51, -1, "AssetId");
}
String var31 = null;
if (hasPath(var0, var1)) {
requireSlot(var0, var1 + 55, var4, "Path");
int var32 = var3 + var4;
long var9 = VarInt.getWithLength(var0, var32);
var31 = PacketIO.readVarString("Path", var0, var32, 0, 4096000, var9);
var4 += (int)var9 + (int)(var9 >>> 32);
} else {
requireSlot(var0, var1 + 55, -1, "Path");
}
String var33 = null;
if (hasTexture(var0, var1)) {
requireSlot(var0, var1 + 59, var4, "Texture");
int var34 = var3 + var4;
long var10 = VarInt.getWithLength(var0, var34);
var33 = PacketIO.readVarString("Texture", var0, var34, 0, 4096000, var10);
var4 += (int)var10 + (int)(var10 >>> 32);
} else {
requireSlot(var0, var1 + 59, -1, "Texture");
}
String var35 = null;
if (hasGradientSet(var0, var1)) {
requireSlot(var0, var1 + 63, var4, "GradientSet");
int var36 = var3 + var4;
long var11 = VarInt.getWithLength(var0, var36);
var35 = PacketIO.readVarString("GradientSet", var0, var36, 0, 4096000, var11);
var4 += (int)var11 + (int)(var11 >>> 32);
} else {
requireSlot(var0, var1 + 63, -1, "GradientSet");
}
String var37 = null;
if (hasGradientId(var0, var1)) {
requireSlot(var0, var1 + 67, var4, "GradientId");
int var38 = var3 + var4;
long var12 = VarInt.getWithLength(var0, var38);
var37 = PacketIO.readVarString("GradientId", var0, var38, 0, 4096000, var12);
var4 += (int)var12 + (int)(var12 >>> 32);
} else {
requireSlot(var0, var1 + 67, -1, "GradientId");
}
CameraSettings var39 = null;
if (hasCamera(var0, var1)) {
requireSlot(var0, var1 + 71, var4, "Camera");
var39 = CameraSettings.toObject(var0, var3 + var4, var5);
var4 = var5.position - var3;
} else {
requireSlot(var0, var1 + 71, -1, "Camera");
}
Map var40 = null;
if (hasAnimationSets(var0, var1)) {
requireSlot(var0, var1 + 75, var4, "AnimationSets");
int var13 = var3 + var4;
long var14 = VarInt.getWithLength(var0, var13);
if (var14 == -1L) {
throw ProtocolException.invalidVarInt("AnimationSets");
}
int var16 = (int)var14;
if (var16 > 4096000) {
throw ProtocolException.dictionaryTooLarge("AnimationSets", var16, 4096000);
}
var13 += (int)(var14 >>> 32);
if (var13 + var16 * 18L > var0.byteSize()) {
throw ProtocolException.bufferTooSmall("AnimationSets", (int)Math.min(var13 + var16 * 18L, 2147483647L), (int)var0.byteSize());
}
var40 = new HashMap<>(var16);
for (int var17 = 0; var17 < var16; var17++) {
long var18 = VarInt.getWithLength(var0, var13);
String var20 = PacketIO.readVarString("key", var0, var13, 0, 4096000, var18);
var13 += (int)var18 + (int)(var18 >>> 32);
AnimationSet var21 = AnimationSet.toObject(var0, var13, var5);
var13 = var5.position;
if (var40.put(var20, var21) != null) {
throw ProtocolException.duplicateKey("AnimationSets", var20);
}
}
var4 = var13 - var3;
} else {
requireSlot(var0, var1 + 75, -1, "AnimationSets");
}
ModelAttachment[] var43 = null;
if (hasAttachments(var0, var1)) {
requireSlot(var0, var1 + 79, var4, "Attachments");
int var44 = var3 + var4;
long var15 = VarInt.getWithLength(var0, var44);
if (var15 == -1L) {
throw ProtocolException.invalidVarInt("Attachments");
}
int var54 = (int)var15;
if (var54 > 4096000) {
throw ProtocolException.arrayTooLong("Attachments", var54, 4096000);
}
int var60 = (int)(var15 >>> 32);
if (var44 + var60 + var54 * 17L > var0.byteSize()) {
throw ProtocolException.bufferTooSmall("Attachments", (int)Math.min(var44 + var60 + var54 * 17L, 2147483647L), (int)var0.byteSize());
}
var44 += var60;
var43 = new ModelAttachment[var54];
for (int var19 = 0; var19 < var54; var19++) {
var43[var19] = ModelAttachment.toObject(var0, var44, var5);
var44 = var5.position;
}
var4 = var44 - var3;
} else {
requireSlot(var0, var1 + 79, -1, "Attachments");
}
ModelParticle[] var46 = null;
if (hasParticles(var0, var1)) {
requireSlot(var0, var1 + 83, var4, "Particles");
int var47 = var3 + var4;
long var50 = VarInt.getWithLength(var0, var47);
if (var50 == -1L) {
throw ProtocolException.invalidVarInt("Particles");
}
int var61 = (int)var50;
if (var61 > 4096000) {
throw ProtocolException.arrayTooLong("Particles", var61, 4096000);
}
int var64 = (int)(var50 >>> 32);
if (var47 + var64 + var61 * 42L > var0.byteSize()) {
throw ProtocolException.bufferTooSmall("Particles", (int)Math.min(var47 + var64 + var61 * 42L, 2147483647L), (int)var0.byteSize());
}
var47 += var64;
var46 = new ModelParticle[var61];
for (int var66 = 0; var66 < var61; var66++) {
var46[var66] = ModelParticle.toObject(var0, var47, var5);
var47 = var5.position;
}
var4 = var47 - var3;
} else {
requireSlot(var0, var1 + 83, -1, "Particles");
}
ModelTrail[] var49 = null;
if (hasTrails(var0, var1)) {
requireSlot(var0, var1 + 87, var4, "Trails");
int var51 = var3 + var4;
long var55 = VarInt.getWithLength(var0, var51);
if (var55 == -1L) {
throw ProtocolException.invalidVarInt("Trails");
}
int var65 = (int)var55;
if (var65 > 4096000) {
throw ProtocolException.arrayTooLong("Trails", var65, 4096000);
}
int var67 = (int)(var55 >>> 32);
if (var51 + var67 + var65 * 35L > var0.byteSize()) {
throw ProtocolException.bufferTooSmall("Trails", (int)Math.min(var51 + var67 + var65 * 35L, 2147483647L), (int)var0.byteSize());
}
var51 += var67;
var49 = new ModelTrail[var65];
for (int var69 = 0; var69 < var65; var69++) {
var49[var69] = ModelTrail.toObject(var0, var51, var5);
var51 = var5.position;
}
var4 = var51 - var3;
} else {
requireSlot(var0, var1 + 87, -1, "Trails");
}
Map var53 = null;
if (hasDetailBoxes(var0, var1)) {
requireSlot(var0, var1 + 91, var4, "DetailBoxes");
int var56 = var3 + var4;
long var62 = VarInt.getWithLength(var0, var56);
if (var62 == -1L) {
throw ProtocolException.invalidVarInt("DetailBoxes");
}
int var68 = (int)var62;
if (var68 > 4096000) {
throw ProtocolException.dictionaryTooLarge("DetailBoxes", var68, 4096000);
}
var56 += (int)(var62 >>> 32);
if (var56 + var68 * 2L > var0.byteSize()) {
throw ProtocolException.bufferTooSmall("DetailBoxes", (int)Math.min(var56 + var68 * 2L, 2147483647L), (int)var0.byteSize());
}
var53 = new HashMap<>(var68);
for (int var70 = 0; var70 < var68; var70++) {
long var22 = VarInt.getWithLength(var0, var56);
String var24 = PacketIO.readVarString("key", var0, var56, 0, 4096000, var22);
var56 += (int)var22 + (int)(var22 >>> 32);
long var25 = VarInt.getWithLength(var0, var56);
if (var25 == -1L) {
throw ProtocolException.invalidVarInt("value");
}
int var27 = (int)var25;
int var28 = (int)(var25 >>> 32);
if (var27 > 4096000) {
throw ProtocolException.arrayTooLong("value", var27, 4096000);
}
if (var56 + var28 + var27 * 37L > var0.byteSize()) {
throw ProtocolException.bufferTooSmall("value", var56 + var28 + var27 * 37, (int)var0.byteSize());
}
var56 += var28;
DetailBox[] var29 = new DetailBox[var27];
for (int var30 = 0; var30 < var27; var30++) {
var29[var30] = DetailBox.toObject(var0, var56);
var56 += 37;
}
if (var53.put(var24, var29) != null) {
throw ProtocolException.duplicateKey("DetailBoxes", var24);
}
}
var4 = var56 - var3;
} else {
requireSlot(var0, var1 + 91, -1, "DetailBoxes");
}
Model var59 = null;
if (hasPhobiaModel(var0, var1)) {
requireSlot(var0, var1 + 95, var4, "PhobiaModel");
var59 = toObject(var0, var3 + var4, var5);
var4 = var5.position - var3;
} else {
requireSlot(var0, var1 + 95, -1, "PhobiaModel");
}
Model var63 = new Model(
var6,
var31,
var33,
var35,
var37,
var39,
PacketIO.requireFinite(var0.get(PacketIO.PROTO_FLOAT, var1 + 2), "Scale"),
PacketIO.requireFinite(var0.get(PacketIO.PROTO_FLOAT, var1 + 6), "EyeHeight"),
PacketIO.requireFinite(var0.get(PacketIO.PROTO_FLOAT, var1 + 10), "CrouchOffset"),
PacketIO.requireFinite(var0.get(PacketIO.PROTO_FLOAT, var1 + 14), "SittingOffset"),
PacketIO.requireFinite(var0.get(PacketIO.PROTO_FLOAT, var1 + 18), "SleepingOffset"),
var40,
var43,
hasHitbox(var0, var1) ? Hitbox.toObject(var0, var1 + 22) : null,
var46,
var49,
hasLight(var0, var1) ? ColorLight.toObject(var0, var1 + 46) : null,
var53,
Phobia.fromValue(var0.get(PacketIO.PROTO_BYTE, var1 + 50)),
var59
);
if (var2 != null) {
var2.position = var3 + var4;
}
class="kw">return var63;
}
class="kw">public int serialize(@Nonnull MemorySegment var1, int var2) {
byte var3 = 0;
if (this.hitbox != null) {
var3 = (byte)(var3 | 1);
}
if (this.light != null) {
var3 = (byte)(var3 | 2);
}
if (this.assetId != null) {
var3 = (byte)(var3 | 4);
}
if (this.path != null) {
var3 = (byte)(var3 | 8);
}
if (this.texture != null) {
var3 = (byte)(var3 | 16);
}
if (this.gradientSet != null) {
var3 = (byte)(var3 | 32);
}
if (this.gradientId != null) {
var3 = (byte)(var3 | 64);
}
if (this.camera != null) {
var3 = (byte)(var3 | 128);
}
var1.set(PacketIO.PROTO_BYTE, var2 + 0, var3);
var3 = 0;
if (this.animationSets != null) {
var3 = (byte)(var3 | 1);
}
if (this.attachments != null) {
var3 = (byte)(var3 | 2);
}
if (this.particles != null) {
var3 = (byte)(var3 | 4);
}
if (this.trails != null) {
var3 = (byte)(var3 | 8);
}
if (this.detailBoxes != null) {
var3 = (byte)(var3 | 16);
}
if (this.phobiaModel != null) {
var3 = (byte)(var3 | 32);
}
var1.set(PacketIO.PROTO_BYTE, var2 + 1, var3);
PacketIO.requireFinite(this.scale, "Scale");
var1.set(PacketIO.PROTO_FLOAT, var2 + 2, this.scale);
PacketIO.requireFinite(this.eyeHeight, "EyeHeight");
var1.set(PacketIO.PROTO_FLOAT, var2 + 6, this.eyeHeight);
PacketIO.requireFinite(this.crouchOffset, "CrouchOffset");
var1.set(PacketIO.PROTO_FLOAT, var2 + 10, this.crouchOffset);
PacketIO.requireFinite(this.sittingOffset, "SittingOffset");
var1.set(PacketIO.PROTO_FLOAT, var2 + 14, this.sittingOffset);
PacketIO.requireFinite(this.sleepingOffset, "SleepingOffset");
var1.set(PacketIO.PROTO_FLOAT, var2 + 18, this.sleepingOffset);
if (this.hitbox != null) {
this.hitbox.serialize(var1, var2 + 22);
} else {
var1.asSlice(var2 + 22, 24L).fill((byte)0);
}
if (this.light != null) {
this.light.serialize(var1, var2 + 46);
} else {
var1.asSlice(var2 + 46, 4L).fill((byte)0);
}
var1.set(PacketIO.PROTO_BYTE, var2 + 50, (byte)this.phobia.getValue());
int var4 = var2 + 99;
if (this.assetId != null) {
var1.set(PacketIO.PROTO_INT, var2 + 51, var4 - var2 - 99);
var4 += PacketIO.writeVarString(var1, var4, this.assetId, 4096000);
} else {
var1.set(PacketIO.PROTO_INT, var2 + 51, -1);
}
if (this.path != null) {
var1.set(PacketIO.PROTO_INT, var2 + 55, var4 - var2 - 99);
var4 += PacketIO.writeVarString(var1, var4, this.path, 4096000);
} else {
var1.set(PacketIO.PROTO_INT, var2 + 55, -1);
}
if (this.texture != null) {
var1.set(PacketIO.PROTO_INT, var2 + 59, var4 - var2 - 99);
var4 += PacketIO.writeVarString(var1, var4, this.texture, 4096000);
} else {
var1.set(PacketIO.PROTO_INT, var2 + 59, -1);
}
if (this.gradientSet != null) {
var1.set(PacketIO.PROTO_INT, var2 + 63, var4 - var2 - 99);
var4 += PacketIO.writeVarString(var1, var4, this.gradientSet, 4096000);
} else {
var1.set(PacketIO.PROTO_INT, var2 + 63, -1);
}
if (this.gradientId != null) {
var1.set(PacketIO.PROTO_INT, var2 + 67, var4 - var2 - 99);
var4 += PacketIO.writeVarString(var1, var4, this.gradientId, 4096000);
} else {
var1.set(PacketIO.PROTO_INT, var2 + 67, -1);
}
if (this.camera != null) {
var1.set(PacketIO.PROTO_INT, var2 + 71, var4 - var2 - 99);
var4 += this.camera.serialize(var1, var4);
} else {
var1.set(PacketIO.PROTO_INT, var2 + 71, -1);
}
if (this.animationSets != null) {
var1.set(PacketIO.PROTO_INT, var2 + 75, var4 - var2 - 99);
if (this.animationSets.size() > 4096000) {
throw ProtocolException.dictionaryTooLarge("AnimationSets", this.animationSets.size(), 4096000);
}
var4 += VarInt.set(var1, var4, this.animationSets.size());
for (Entry var6 : this.animationSets.entrySet()) {
var4 += PacketIO.writeVarString(var1, var4, var6.getKey(), 4096000);
var4 += var6.getValue().serialize(var1, var4);
}
} else {
var1.set(PacketIO.PROTO_INT, var2 + 75, -1);
}
if (this.attachments != null) {
var1.set(PacketIO.PROTO_INT, var2 + 79, var4 - var2 - 99);
if (this.attachments.length > 4096000) {
throw ProtocolException.arrayTooLong("Attachments", this.attachments.length, 4096000);
}
var4 += VarInt.set(var1, var4, this.attachments.length);
int var17 = 0;
for (int var21 = 0; var21 < this.attachments.length; var21++) {
var17 += this.attachments[var21].serialize(var1, var4 + var17);
}
var4 += var17;
} else {
var1.set(PacketIO.PROTO_INT, var2 + 79, -1);
}
if (this.particles != null) {
var1.set(PacketIO.PROTO_INT, var2 + 83, var4 - var2 - 99);
if (this.particles.length > 4096000) {
throw ProtocolException.arrayTooLong("Particles", this.particles.length, 4096000);
}
var4 += VarInt.set(var1, var4, this.particles.length);
int var18 = 0;
for (int var22 = 0; var22 < this.particles.length; var22++) {
var18 += this.particles[var22].serialize(var1, var4 + var18);
}
var4 += var18;
} else {
var1.set(PacketIO.PROTO_INT, var2 + 83, -1);
}
if (this.trails != null) {
var1.set(PacketIO.PROTO_INT, var2 + 87, var4 - var2 - 99);
if (this.trails.length > 4096000) {
throw ProtocolException.arrayTooLong("Trails", this.trails.length, 4096000);
}
var4 += VarInt.set(var1, var4, this.trails.length);
int var19 = 0;
for (int var23 = 0; var23 < this.trails.length; var23++) {
var19 += this.trails[var23].serialize(var1, var4 + var19);
}
var4 += var19;
} else {
var1.set(PacketIO.PROTO_INT, var2 + 87, -1);
}
if (this.detailBoxes != null) {
var1.set(PacketIO.PROTO_INT, var2 + 91, var4 - var2 - 99);
if (this.detailBoxes.size() > 4096000) {
throw ProtocolException.dictionaryTooLarge("DetailBoxes", this.detailBoxes.size(), 4096000);
}
var4 += VarInt.set(var1, var4, this.detailBoxes.size());
for (Entry var24 : this.detailBoxes.entrySet()) {
var4 += PacketIO.writeVarString(var1, var4, var24.getKey(), 4096000);
var4 += VarInt.set(var1, var4, var24.getValue().length);
for (DetailBox var10 : var24.getValue()) {
var4 += var10.serialize(var1, var4);
}
}
} else {
var1.set(PacketIO.PROTO_INT, var2 + 91, -1);
}
if (this.phobiaModel != null) {
var1.set(PacketIO.PROTO_INT, var2 + 95, var4 - var2 - 99);
var4 += this.phobiaModel.serialize(var1, var4);
} else {
var1.set(PacketIO.PROTO_INT, var2 + 95, -1);
}
class="kw">return var4 - var2;
}
class="kw">public int computeSize() {
int var1 = 99;
if (this.assetId != null) {
var1 += PacketIO.stringSize(this.assetId);
}
if (this.path != null) {
var1 += PacketIO.stringSize(this.path);
}
if (this.texture != null) {
var1 += PacketIO.stringSize(this.texture);
}
if (this.gradientSet != null) {
var1 += PacketIO.stringSize(this.gradientSet);
}
if (this.gradientId != null) {
var1 += PacketIO.stringSize(this.gradientId);
}
if (this.camera != null) {
var1 += this.camera.computeSize();
}
if (this.animationSets != null) {
int var2 = 0;
for (Entry var4 : this.animationSets.entrySet()) {
var2 += PacketIO.stringSize(var4.getKey()) + var4.getValue().computeSize();
}
var1 += VarInt.size(this.animationSets.size()) + var2;
}
if (this.attachments != null) {
int var7 = 0;
for (ModelAttachment var6 : this.attachments) {
var7 += var6.computeSize();
}
var1 += VarInt.size(this.attachments.length) + var7;
}
if (this.particles != null) {
int var8 = 0;
for (ModelParticle var21 : this.particles) {
var8 += var21.computeSize();
}
var1 += VarInt.size(this.particles.length) + var8;
}
if (this.trails != null) {
int var9 = 0;
for (ModelTrail var22 : this.trails) {
var9 += var22.computeSize();
}
var1 += VarInt.size(this.trails.length) + var9;
}
if (this.detailBoxes != null) {
int var10 = 0;
for (Entry var18 : this.detailBoxes.entrySet()) {
var10 += PacketIO.stringSize(var18.getKey()) + VarInt.size(var18.getValue().length) + ((DetailBox[])var18.getValue()).length * 37;
}
var1 += VarInt.size(this.detailBoxes.size()) + var10;
}
if (this.phobiaModel != null) {
var1 += this.phobiaModel.computeSize();
}
class="kw">return var1;
}
class="kw">public Model clone() {
Model var1 = new Model();
var1.assetId = this.assetId;
var1.path = this.path;
var1.texture = this.texture;
var1.gradientSet = this.gradientSet;
var1.gradientId = this.gradientId;
var1.camera = this.camera != null ? this.camera.clone() : null;
var1.scale = this.scale;
var1.eyeHeight = this.eyeHeight;
var1.crouchOffset = this.crouchOffset;
var1.sittingOffset = this.sittingOffset;
var1.sleepingOffset = this.sleepingOffset;
if (this.animationSets != null) {
Map var2 = new HashMap<>();
for (Entry var4 : this.animationSets.entrySet()) {
var2.put(var4.getKey(), var4.getValue().clone());
}
var1.animationSets = var2;
}
var1.attachments = this.attachments != null ? Arrays.stream(this.attachments).map(var0 -> var0.clone()).toArray(ModelAttachment[]::new) : null;
var1.hitbox = this.hitbox != null ? this.hitbox.clone() : null;
var1.particles = this.particles != null ? Arrays.stream(this.particles).map(var0 -> var0.clone()).toArray(ModelParticle[]::new) : null;
var1.trails = this.trails != null ? Arrays.stream(this.trails).map(var0 -> var0.clone()).toArray(ModelTrail[]::new) : null;
var1.light = this.light != null ? this.light.clone() : null;
if (this.detailBoxes != null) {
Map var5 = new HashMap<>();
for (Entry var7 : this.detailBoxes.entrySet()) {
var5.put(var7.getKey(), Arrays.stream(var7.getValue()).map(var0 -> var0.clone()).toArray(DetailBox[]::new));
}
var1.detailBoxes = var5;
}
var1.phobia = this.phobia;
var1.phobiaModel = this.phobiaModel != null ? this.phobiaModel.clone() : 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 Model var2)
? false
: Objects.equals(this.assetId, var2.assetId)
&& Objects.equals(this.path, var2.path)
&& Objects.equals(this.texture, var2.texture)
&& Objects.equals(this.gradientSet, var2.gradientSet)
&& Objects.equals(this.gradientId, var2.gradientId)
&& Objects.equals(this.camera, var2.camera)
&& this.scale == var2.scale
&& this.eyeHeight == var2.eyeHeight
&& this.crouchOffset == var2.crouchOffset
&& this.sittingOffset == var2.sittingOffset
&& this.sleepingOffset == var2.sleepingOffset
&& Objects.equals(this.animationSets, var2.animationSets)
&& Arrays.equals(this.attachments, var2.attachments)
&& Objects.equals(this.hitbox, var2.hitbox)
&& Arrays.equals(this.particles, var2.particles)
&& Arrays.equals(this.trails, var2.trails)
&& Objects.equals(this.light, var2.light)
&& Objects.equals(this.detailBoxes, var2.detailBoxes)
&& Objects.equals(this.phobia, var2.phobia)
&& Objects.equals(this.phobiaModel, var2.phobiaModel);
}
}
@Override
class="kw">public int hashCode() {
int var1 = 1;
var1 = 31 * var1 + Objects.hashCode(this.assetId);
var1 = 31 * var1 + Objects.hashCode(this.path);
var1 = 31 * var1 + Objects.hashCode(this.texture);
var1 = 31 * var1 + Objects.hashCode(this.gradientSet);
var1 = 31 * var1 + Objects.hashCode(this.gradientId);
var1 = 31 * var1 + Objects.hashCode(this.camera);
var1 = 31 * var1 + Float.hashCode(this.scale);
var1 = 31 * var1 + Float.hashCode(this.eyeHeight);
var1 = 31 * var1 + Float.hashCode(this.crouchOffset);
var1 = 31 * var1 + Float.hashCode(this.sittingOffset);
var1 = 31 * var1 + Float.hashCode(this.sleepingOffset);
var1 = 31 * var1 + Objects.hashCode(this.animationSets);
var1 = 31 * var1 + Arrays.hashCode(this.attachments);
var1 = 31 * var1 + Objects.hashCode(this.hitbox);
var1 = 31 * var1 + Arrays.hashCode(this.particles);
var1 = 31 * var1 + Arrays.hashCode(this.trails);
var1 = 31 * var1 + Objects.hashCode(this.light);
var1 = 31 * var1 + Objects.hashCode(this.detailBoxes);
var1 = 31 * var1 + Objects.hashCode(this.phobia);
class="kw">return 31 * var1 + Objects.hashCode(this.phobiaModel);
}
}