]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - src/main/java/com/irtimaled/bbor/common/messages/AddBoundingBox.java
3a12945565057955ae2971d51b80c38fff92d472
[BoundingBoxOutlineReloaded.git] / src / main / java / com / irtimaled / bbor / common / messages / AddBoundingBox.java
1 package com.irtimaled.bbor.common.messages;
2
3 import com.irtimaled.bbor.client.events.AddBoundingBoxReceived;
4 import com.irtimaled.bbor.common.models.AbstractBoundingBox;
5
6 import java.util.HashSet;
7 import java.util.Set;
8
9 public class AddBoundingBox {
10     public static final String NAME = "bbor:add_bounding_box";
11
12     public static PayloadBuilder getPayload(int dimensionId, AbstractBoundingBox key, Set<AbstractBoundingBox> boundingBoxes) {
13         if (!BoundingBoxSerializer.canSerialize(key)) return null;
14
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);
21             }
22         }
23         return builder;
24     }
25
26     public static AddBoundingBoxReceived getEvent(PayloadReader reader) {
27         int dimensionId = reader.readVarInt();
28         AbstractBoundingBox key = BoundingBoxDeserializer.deserialize(reader);
29         if (key == null) return null;
30
31         Set<AbstractBoundingBox> boundingBoxes = new HashSet<>();
32         while (reader.isReadable()) {
33             AbstractBoundingBox boundingBox = BoundingBoxDeserializer.deserialize(reader);
34             boundingBoxes.add(boundingBox);
35         }
36         if (boundingBoxes.size() == 0)
37             boundingBoxes.add(key);
38         return new AddBoundingBoxReceived(dimensionId, key, boundingBoxes);
39     }
40 }