Bed block sanity check for villagers

This commit is contained in:
Camotoy 2024-06-13 14:58:39 -04:00
parent 746be566a2
commit 4a334a2c8d
No known key found for this signature in database
GPG key ID: 7EEFB66FE798081F

View file

@ -34,6 +34,7 @@ import org.cloudburstmc.protocol.bedrock.data.entity.EntityFlag;
import org.cloudburstmc.protocol.bedrock.packet.MoveEntityAbsolutePacket; import org.cloudburstmc.protocol.bedrock.packet.MoveEntityAbsolutePacket;
import org.geysermc.geyser.entity.EntityDefinition; import org.geysermc.geyser.entity.EntityDefinition;
import org.geysermc.geyser.level.block.property.Properties; import org.geysermc.geyser.level.block.property.Properties;
import org.geysermc.geyser.level.block.type.BedBlock;
import org.geysermc.geyser.level.block.type.BlockState; import org.geysermc.geyser.level.block.type.BlockState;
import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.session.GeyserSession;
import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.EntityMetadata; import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.EntityMetadata;
@ -125,22 +126,24 @@ public class VillagerEntity extends AbstractMerchantEntity {
int bedRotation = 0; int bedRotation = 0;
float xOffset = 0; float xOffset = 0;
float zOffset = 0; float zOffset = 0;
switch (state.getValue(Properties.HORIZONTAL_FACING)) { if (state.block() instanceof BedBlock) {
case SOUTH -> { switch (state.getValue(Properties.HORIZONTAL_FACING)) {
bedRotation = 180; case SOUTH -> {
zOffset = -.5f; bedRotation = 180;
} zOffset = -.5f;
case EAST -> { }
bedRotation = 90; case EAST -> {
xOffset = -.5f; bedRotation = 90;
} xOffset = -.5f;
case WEST -> { }
bedRotation = 270; case WEST -> {
xOffset = .5f; bedRotation = 270;
} xOffset = .5f;
case NORTH -> { }
// rotation does not change because north is 0 case NORTH -> {
zOffset = .5f; // rotation does not change because north is 0
zOffset = .5f;
}
} }
} }