diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/network/LegacyNetworkCellState.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/network/LegacyNetworkCellState.kt index 15d5f12e..08c92626 100644 --- a/src/main/kotlin/ru/dbotthepony/kstarbound/network/LegacyNetworkCellState.kt +++ b/src/main/kotlin/ru/dbotthepony/kstarbound/network/LegacyNetworkCellState.kt @@ -3,6 +3,7 @@ package ru.dbotthepony.kstarbound.network import ru.dbotthepony.kommons.io.readVarInt import ru.dbotthepony.kommons.io.writeVarInt import ru.dbotthepony.kstarbound.defs.tile.BuiltinMetaMaterials +import ru.dbotthepony.kstarbound.world.physics.CollisionType import java.io.DataInputStream import java.io.DataOutputStream @@ -66,7 +67,7 @@ data class LegacyNetworkCellState( val background: LegacyNetworkTileState, val foreground: LegacyNetworkTileState, - val collisionType: Int, // ubyte + val collisionType: CollisionType, // ubyte val blockBiomeIndex: Int, // ubyte val environmentBiomeIndex: Int, // ubyte val liquid: LegacyNetworkLiquidState, @@ -76,22 +77,22 @@ data class LegacyNetworkCellState( background.write(stream) foreground.write(stream) - stream.write(collisionType) - stream.write(blockBiomeIndex) - stream.write(environmentBiomeIndex) + stream.writeByte(collisionType.ordinal) + stream.writeByte(blockBiomeIndex) + stream.writeByte(environmentBiomeIndex) liquid.write(stream) stream.writeVarInt(dungeonId) } companion object { - val EMPTY = LegacyNetworkCellState(LegacyNetworkTileState.EMPTY, LegacyNetworkTileState.EMPTY, 0, 0, 0, LegacyNetworkLiquidState.EMPTY, 0) - val NULL = LegacyNetworkCellState(LegacyNetworkTileState.NULL, LegacyNetworkTileState.NULL, 0, 0, 0, LegacyNetworkLiquidState.EMPTY, 0) + val EMPTY = LegacyNetworkCellState(LegacyNetworkTileState.EMPTY, LegacyNetworkTileState.EMPTY, CollisionType.NONE, 0, 0, LegacyNetworkLiquidState.EMPTY, 0) + val NULL = LegacyNetworkCellState(LegacyNetworkTileState.NULL, LegacyNetworkTileState.NULL, CollisionType.NULL, 0, 0, LegacyNetworkLiquidState.EMPTY, 0) fun read(stream: DataInputStream): LegacyNetworkCellState { return LegacyNetworkCellState( LegacyNetworkTileState.read(stream), LegacyNetworkTileState.read(stream), - stream.readUnsignedByte(), + CollisionType.entries[stream.readUnsignedByte()], stream.readUnsignedByte(), stream.readUnsignedByte(), LegacyNetworkLiquidState.read(stream), diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/world/api/AbstractCell.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/world/api/AbstractCell.kt index 6107b493..617b8599 100644 --- a/src/main/kotlin/ru/dbotthepony/kstarbound/world/api/AbstractCell.kt +++ b/src/main/kotlin/ru/dbotthepony/kstarbound/world/api/AbstractCell.kt @@ -4,6 +4,7 @@ import com.github.benmanes.caffeine.cache.Interner import ru.dbotthepony.kstarbound.Starbound import ru.dbotthepony.kstarbound.network.LegacyNetworkCellState import ru.dbotthepony.kstarbound.util.HashTableInterner +import ru.dbotthepony.kstarbound.world.physics.CollisionType import java.io.DataInputStream import java.io.DataOutputStream @@ -21,7 +22,7 @@ sealed class AbstractCell { abstract fun mutable(): MutableCell fun toLegacyNet(): LegacyNetworkCellState { - return LegacyNetworkCellState(background.toLegacyNet(), foreground.toLegacyNet(), 0, biome, envBiome, liquid.toLegacyNet(), dungeonId) + return LegacyNetworkCellState(background.toLegacyNet(), foreground.toLegacyNet(), foreground.material.value.collisionKind, biome, envBiome, liquid.toLegacyNet(), dungeonId) } fun write(stream: DataOutputStream) {