стабилизируем код
This commit is contained in:
@@ -2,6 +2,7 @@ package mc.protocol.pool;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.NoArgsConstructor;
|
||||
import mc.protocol.model.ChunkSectionLocation;
|
||||
import mc.protocol.model.Location;
|
||||
import mc.protocol.model.Look;
|
||||
import mc.protocol.packets.ClientSidePacket;
|
||||
@@ -13,24 +14,29 @@ import mc.utils.pool.SimpleObjectPool;
|
||||
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public final class ProtocolObjectPool {
|
||||
|
||||
private static final ObjectPool<Location> locationPool = new SimpleObjectPool<>(Location.class);
|
||||
private static final ObjectPool<Look> lookPool = new SimpleObjectPool<>(Look.class);
|
||||
private static final NetByteBufObjectPool netByteBufPool = new NetByteBufObjectPool();
|
||||
private static final MultiObjectPool<ClientSidePacket> packetPool = new PassivableMultiObjectPool<>();
|
||||
private static final ObjectPool<Location> LOCATION_POOL = new SimpleObjectPool<>(Location.class);
|
||||
private static final ObjectPool<ChunkSectionLocation> CHUNK_SECTION_LOCATION_POOL = new SimpleObjectPool<>(ChunkSectionLocation.class);
|
||||
private static final ObjectPool<Look> LOOK_POOL = new SimpleObjectPool<>(Look.class);
|
||||
private static final NetByteBufObjectPool NETBYTEBUF_POOL = new NetByteBufObjectPool();
|
||||
private static final MultiObjectPool<ClientSidePacket> PACKET_POOL = new PassivableMultiObjectPool<>();
|
||||
|
||||
public static ObjectPool<Location> location() {
|
||||
return locationPool;
|
||||
return LOCATION_POOL;
|
||||
}
|
||||
|
||||
public static ObjectPool<ChunkSectionLocation> chunkSectionLocation() {
|
||||
return CHUNK_SECTION_LOCATION_POOL;
|
||||
}
|
||||
|
||||
public static ObjectPool<Look> look() {
|
||||
return lookPool;
|
||||
return LOOK_POOL;
|
||||
}
|
||||
|
||||
public static NetByteBufObjectPool netByteBuf() {
|
||||
return netByteBufPool;
|
||||
return NETBYTEBUF_POOL;
|
||||
}
|
||||
|
||||
public static MultiObjectPool<ClientSidePacket> packet() {
|
||||
return packetPool;
|
||||
return PACKET_POOL;
|
||||
}
|
||||
}
|
||||
|
||||
52
protocol/src/main/java/mc/protocol/utils/LocationUtils.java
Normal file
52
protocol/src/main/java/mc/protocol/utils/LocationUtils.java
Normal file
@@ -0,0 +1,52 @@
|
||||
package mc.protocol.utils;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.NoArgsConstructor;
|
||||
import mc.protocol.model.BlockLocation;
|
||||
import mc.protocol.model.ChunkSectionLocation;
|
||||
import mc.protocol.model.Location;
|
||||
import mc.protocol.pool.ProtocolObjectPool;
|
||||
|
||||
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public final class LocationUtils {
|
||||
|
||||
//region Unpooled
|
||||
public static ChunkSectionLocation location2chunk(Location location) {
|
||||
var chunkSectionLocation = new ChunkSectionLocation();
|
||||
chunkSectionLocation.set(
|
||||
(int) location.getX() >> 4,
|
||||
(int) location.getY() >> 4,
|
||||
(int) location.getZ() >> 4);
|
||||
return chunkSectionLocation;
|
||||
}
|
||||
|
||||
public static ChunkSectionLocation location2chunk(BlockLocation blockLocation) {
|
||||
var chunkSectionLocation = new ChunkSectionLocation();
|
||||
chunkSectionLocation.set(
|
||||
blockLocation.getX() >> 4,
|
||||
blockLocation.getY() >> 4,
|
||||
blockLocation.getZ() >> 4);
|
||||
return chunkSectionLocation;
|
||||
}
|
||||
//endregion
|
||||
|
||||
//region Pooled
|
||||
public static ChunkSectionLocation location2chunkPooled(Location location) {
|
||||
ChunkSectionLocation chunkSectionLocation = ProtocolObjectPool.chunkSectionLocation().borrowObject();
|
||||
chunkSectionLocation.set(
|
||||
(int) location.getX() >> 4,
|
||||
(int) location.getY() >> 4,
|
||||
(int) location.getZ() >> 4);
|
||||
return chunkSectionLocation;
|
||||
}
|
||||
|
||||
public static ChunkSectionLocation location2chunkPooled(BlockLocation blockLocation) {
|
||||
ChunkSectionLocation chunkSectionLocation = ProtocolObjectPool.chunkSectionLocation().borrowObject();
|
||||
chunkSectionLocation.set(
|
||||
blockLocation.getX() >> 4,
|
||||
blockLocation.getY() >> 4,
|
||||
blockLocation.getZ() >> 4);
|
||||
return chunkSectionLocation;
|
||||
}
|
||||
//endregion
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
package mc.protocol.world;
|
||||
|
||||
import mc.protocol.model.ChunkSectionLocation;
|
||||
import mc.protocol.model.Location;
|
||||
import mc.protocol.utils.LevelType;
|
||||
|
||||
@@ -10,4 +11,5 @@ public interface World {
|
||||
Location getSpawn();
|
||||
|
||||
Chunk getChunk(int x, int z);
|
||||
Chunk getChunk(ChunkSectionLocation chunkSectionLocation);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user