1 package com.irtimaled.bbor.common.messages;
3 import com.irtimaled.bbor.client.events.AddBoundingBoxReceived;
4 import com.irtimaled.bbor.common.models.AbstractBoundingBox;
6 import java.util.HashSet;
9 public class AddBoundingBox {
10 public static final String NAME = "bbor:add_bounding_box";
12 public static PayloadBuilder getPayload(int dimensionId, AbstractBoundingBox key, Set<AbstractBoundingBox> boundingBoxes) {
13 if (!BoundingBoxSerializer.canSerialize(key)) return null;
15 PayloadBuilder builder = PayloadBuilder.clientBound(NAME)
16 .writeVarInt(dimensionId);
17 BoundingBoxSerializer.serialize(key, builder);
18 if (boundingBoxes != null && boundingBoxes.size() > 1) {
19 for (AbstractBoundingBox boundingBox : boundingBoxes) {
20 BoundingBoxSerializer.serialize(boundingBox, builder);
26 public static AddBoundingBoxReceived getEvent(PayloadReader reader) {
27 int dimensionId = reader.readVarInt();
28 AbstractBoundingBox key = BoundingBoxDeserializer.deserialize(reader);
29 if (key == null) return null;
31 Set<AbstractBoundingBox> boundingBoxes = new HashSet<>();
32 while (reader.isReadable()) {
33 AbstractBoundingBox boundingBox = BoundingBoxDeserializer.deserialize(reader);
34 boundingBoxes.add(boundingBox);
36 if (boundingBoxes.size() == 0)
37 boundingBoxes.add(key);
38 return new AddBoundingBoxReceived(dimensionId, key, boundingBoxes);