]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - src/main/java/com/irtimaled/bbor/common/messages/AddBoundingBox.java
cc3759c5f0d4cdf72bc4b00e9b0b43bfbcc5e8ee
[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 import com.irtimaled.bbor.common.models.DimensionId;
6
7 import java.util.HashSet;
8 import java.util.Set;
9
10 public class AddBoundingBox {
11     public static final String NAME = "bbor:add_bounding_box_v2";
12
13     public static PayloadBuilder getPayload(DimensionId dimensionId, AbstractBoundingBox key, Set<AbstractBoundingBox> boundingBoxes) {
14         if (!BoundingBoxSerializer.canSerialize(key)) return null;
15
16         PayloadBuilder builder = PayloadBuilder.clientBound(NAME)
17                 .writeDimensionId(dimensionId);
18         BoundingBoxSerializer.serialize(key, builder);
19         if (boundingBoxes != null && boundingBoxes.size() > 1) {
20             for (AbstractBoundingBox boundingBox : boundingBoxes) {
21                 BoundingBoxSerializer.serialize(boundingBox, builder);
22             }
23         }
24         return builder;
25     }
26
27     public static AddBoundingBoxReceived getEvent(PayloadReader reader) {
28         DimensionId dimensionId = reader.readDimensionId();
29         AbstractBoundingBox key = BoundingBoxDeserializer.deserialize(reader);
30         if (key == null) return null;
31
32         Set<AbstractBoundingBox> boundingBoxes = new HashSet<>();
33         while (reader.isReadable()) {
34             AbstractBoundingBox boundingBox = BoundingBoxDeserializer.deserialize(reader);
35             boundingBoxes.add(boundingBox);
36         }
37         if (boundingBoxes.size() == 0)
38             boundingBoxes.add(key);
39         return new AddBoundingBoxReceived(dimensionId, key, boundingBoxes);
40     }
41 }