39public final class AnimationDefinition {
45 public int secondary[];
46 public int[] duration;
48 public int interleaveOrder[];
49 public boolean allowsRotation;
53 public int resetCycle;
58 public AnimationDefinition(
final int id) {
62 allowsRotation =
false;
72 public void decode(ByteBuf buffer) {
74 final int opcode = buffer.readUnsignedByte();
78 }
else if (opcode == 1) {
79 length = buffer.readUnsignedShort();
80 primary =
new int[length];
81 secondary =
new int[length];
82 duration =
new int[length];
84 for (
int i = 0; i < length; i++) {
85 duration[i] = buffer.readUnsignedShort();
88 for (
int i = 0; i < length; i++) {
89 primary[i] = buffer.readUnsignedShort();
93 for (
int i = 0; i < length; i++) {
94 primary[i] += buffer.readUnsignedShort() << 16;
96 }
else if (opcode == 2) {
97 padding = buffer.readUnsignedShort();
98 }
else if (opcode == 3) {
99 int len = buffer.readUnsignedByte();
100 interleaveOrder =
new int[len + 1];
101 for (
int i = 0; i < len; i++) {
102 interleaveOrder[i] = buffer.readUnsignedByte();
104 interleaveOrder[len] = 9999999;
105 }
else if (opcode == 4) {
106 allowsRotation =
true;
107 }
else if (opcode == 5) {
108 priority = buffer.readUnsignedByte();
109 }
else if (opcode == 6) {
110 shield = buffer.readUnsignedShort();
111 }
else if (opcode == 7) {
112 weapon = buffer.readUnsignedShort();
113 }
else if (opcode == 8) {
114 resetCycle = buffer.readUnsignedByte();
115 }
else if (opcode == 9) {
116 runFlag = buffer.readUnsignedByte();
117 }
else if (opcode == 10) {
118 walkFlag = buffer.readUnsignedByte();
119 }
else if (opcode == 11) {
120 type = buffer.readUnsignedByte();
121 }
else if (opcode == 12) {
122 int len = buffer.readUnsignedByte();
124 for (
int i = 0; i < len; i++) {
125 buffer.readUnsignedShort();
128 for (
int i = 0; i < len; i++) {
129 buffer.readUnsignedShort();
131 }
else if (opcode == 13) {
132 int len = buffer.readUnsignedByte();
133 for (
int i = 0; i < len; i++) {
134 buffer.readUnsignedMedium();
136 }
else if (opcode == 14) {
137 buffer.readUnsignedInt();
138 }
else if (opcode == 15) {
139 int len = buffer.readUnsignedShort();
141 for (
int index = 0; index < len; ++index) {
142 buffer.readUnsignedShort();
143 buffer.readUnsignedMedium();
145 }
else if (opcode == 16) {
146 buffer.readUnsignedShort();
147 buffer.readUnsignedShort();
148 }
else if (opcode == 17) {
150 int len = buffer.readUnsignedByte();
151 for (
int i = 0; i < len; ++i) {
152 buffer.readUnsignedByte();
158 primary =
new int[1];
160 secondary =
new int[1];
162 duration =
new int[1];
167 runFlag = (interleaveOrder ==
null) ? 0 : 2;
170 if (priority == -1) {
171 priority = (interleaveOrder ==
null) ? 0 : 2;
174 durationTime = calculateDuration();
177 public int durationTime = 0;
179 private int calculateDuration() {
181 if (this.duration ==
null) {
184 for (
final int i : this.duration) {
188 duration += Math.abs(i) * 20;