classpublicPriority 3
ParticleAnimationFrame
com.hypixel.hytale.protocol.ParticleAnimationFrame
6
Methods
6
Public Methods
5
Fields
3
Constructors
Constants
intFIXED_BLOCK_SIZE= 58
intMAX_SIZE= 58
intNULLABLE_BIT_FIELD_SIZE= 1
intVARIABLE_BLOCK_START= 58
intVARIABLE_FIELD_COUNT= 0
Constructors
public
ParticleAnimationFrame()public
ParticleAnimationFrame(Range frameIndex, RangeVector2f scale, RangeVector3f rotation, Color color, float opacity)public
ParticleAnimationFrame(ParticleAnimationFrame other)Methods
Public Methods (6)
publicstatic
int computeBytesConsumed(ByteBuf buf, int offset)public
int computeSize()public
boolean equals(Object obj)@Override
public
int hashCode()@Override
public
void serialize(ByteBuf buf)publicstatic
ValidationResult validateStructure(ByteBuf buffer, int offset)Fields
Public Fields (5)
public
Color colorpublic
Range frameIndexpublic
float opacitypublic
RangeVector3f rotationpublic
RangeVector2f scaleRelated Classes
Used By
Source Code
package com.hypixel.hytale.protocol;
import com.hypixel.hytale.protocol.io.ValidationResult;
import io.netty.buffer.ByteBuf;
import java.util.Objects;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
public class ParticleAnimationFrame {
public static final int NULLABLE_BIT_FIELD_SIZE = 1;
public static final int FIXED_BLOCK_SIZE = 58;
public static final int VARIABLE_FIELD_COUNT = 0;
public static final int VARIABLE_BLOCK_START = 58;
public static final int MAX_SIZE = 58;
@Nullable
public Range frameIndex;
@Nullable
public RangeVector2f scale;
@Nullable
public RangeVector3f rotation;
@Nullable
public Color color;
public float opacity;
public ParticleAnimationFrame() {
}
public ParticleAnimationFrame(
@Nullable Range frameIndex, @Nullable RangeVector2f scale, @Nullable RangeVector3f rotation, @Nullable Color color, float opacity
) {
this.frameIndex = frameIndex;
this.scale = scale;
this.rotation = rotation;
this.color = color;
this.opacity = opacity;
}
public ParticleAnimationFrame(@Nonnull ParticleAnimationFrame other) {
this.frameIndex = other.frameIndex;
this.scale = other.scale;
this.rotation = other.rotation;
this.color = other.color;
this.opacity = other.opacity;
}
@Nonnull
public static ParticleAnimationFrame deserialize(@Nonnull ByteBuf buf, int offset) {
ParticleAnimationFrame obj = new ParticleAnimationFrame();
byte nullBits = buf.getByte(offset);
if ((nullBits & 1) != 0) {
obj.frameIndex = Range.deserialize(buf, offset + 1);
}
if ((nullBits & 2) != 0) {
obj.scale = RangeVector2f.deserialize(buf, offset + 9);
}
if ((nullBits & 4) != 0) {
obj.rotation = RangeVector3f.deserialize(buf, offset + 26);
}
if ((nullBits & 8) != 0) {
obj.color = Color.deserialize(buf, offset + 51);
}
obj.opacity = buf.getFloatLE(offset + 54);
return obj;
}
public static int computeBytesConsumed(@Nonnull ByteBuf buf, int offset) {
return 58;
}
public void serialize(@Nonnull ByteBuf buf) {
byte nullBits = 0;
if (this.frameIndex != null) {
nullBits = (byte)(nullBits | 1);
}
if (this.scale != null) {
nullBits = (byte)(nullBits | 2);
}
if (this.rotation != null) {
nullBits = (byte)(nullBits | 4);
}
if (this.color != null) {
nullBits = (byte)(nullBits | 8);
}
buf.writeByte(nullBits);
if (this.frameIndex != null) {
this.frameIndex.serialize(buf);
} else {
buf.writeZero(8);
}
if (this.scale != null) {
this.scale.serialize(buf);
} else {
buf.writeZero(17);
}
if (this.rotation != null) {
this.rotation.serialize(buf);
} else {
buf.writeZero(25);
}
if (this.color != null) {
this.color.serialize(buf);
} else {
buf.writeZero(3);
}
buf.writeFloatLE(this.opacity);
}
public int computeSize() {
return 58;
}
public static ValidationResult validateStructure(@Nonnull ByteBuf buffer, int offset) {
return buffer.readableBytes() - offset < 58 ? ValidationResult.error("Buffer too small: expected at least 58 bytes") : ValidationResult.OK;
}
public ParticleAnimationFrame clone() {
ParticleAnimationFrame copy = new ParticleAnimationFrame();
copy.frameIndex = this.frameIndex != null ? this.frameIndex.clone() : null;
copy.scale = this.scale != null ? this.scale.clone() : null;
copy.rotation = this.rotation != null ? this.rotation.clone() : null;
copy.color = this.color != null ? this.color.clone() : null;
copy.opacity = this.opacity;
return copy;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
} else {
return !(obj instanceof ParticleAnimationFrame other)
? false
: Objects.equals(this.frameIndex, other.frameIndex)
&& Objects.equals(this.scale, other.scale)
&& Objects.equals(this.rotation, other.rotation)
&& Objects.equals(this.color, other.color)
&& this.opacity == other.opacity;
}
}
@Override
public int hashCode() {
return Objects.hash(this.frameIndex, this.scale, this.rotation, this.color, this.opacity);
}
}