From a38e1c1548c3395777deaa33f8edaa9470961195 Mon Sep 17 00:00:00 2001 From: YuRaNnNzZZ Date: Wed, 18 Sep 2024 18:00:41 +0300 Subject: [PATCH] =?UTF-8?q?=D1=81=D1=82=D1=83=D0=BB=20=D0=B1=D0=B5=D0=B7?= =?UTF-8?q?=20=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85=20=D0=BA=D0=BB=D0=B8?= =?UTF-8?q?=D0=B5=D0=BD=D1=82=D1=83=20=D0=BD=D0=B5=20=D0=BD=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=B8=D1=82=D1=81=D1=8F=20=D0=9D=D0=95=20=D0=A2=D0=98?= =?UTF-8?q?=D0=9A=D0=90=D0=99=20=D0=9D=D0=95=20=D0=A1=D0=92=D0=9E=D0=98?= =?UTF-8?q?=D0=9C=20=D0=A1=D0=A2=D0=A3=D0=9B=D0=9E=D0=9C,=20=D0=AD=D0=A2?= =?UTF-8?q?=D0=9E=20=D0=A1=D0=95=D0=A0=D0=92=D0=95=D0=A0=D0=9D=D0=AB=D0=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dbotthepony/mc/otm/block/decorative/StarChairBlock.kt | 5 ++--- .../kotlin/ru/dbotthepony/mc/otm/entity/RideableDummy.kt | 8 ++++++-- .../kotlin/ru/dbotthepony/mc/otm/registry/MEntityTypes.kt | 6 +++++- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/decorative/StarChairBlock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/decorative/StarChairBlock.kt index 1620e2966..81b1b94b8 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/decorative/StarChairBlock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/decorative/StarChairBlock.kt @@ -28,13 +28,12 @@ class StarChairBlock(val color: DyeColor?) : RotatableMatteryBlock(DEFAULT_PROPE override fun useWithoutItem(blockState: BlockState, level: Level, blockPos: BlockPos, ply: Player, blockHitResult: BlockHitResult): InteractionResult { if (ply.isCrouching) return super.useWithoutItem(blockState, level, blockPos, ply, blockHitResult) + if (level.isClientSide) return InteractionResult.SUCCESS val entities = level.getEntitiesOfClass(RideableDummy::class.java, AABB(blockPos, blockPos + BlockPos(1, 1, 1))) if (entities.isNotEmpty()) return InteractionResult.FAIL - val entity = RideableDummy(level) - entity.blockPos = blockPos - entity.blockState = blockState + val entity = RideableDummy(level, blockPos, blockState) entity.yRot = blockState[rotationFreedom()].front.toYRot() entity.setPos(blockPos.x + 0.5, blockPos.y.toDouble(), blockPos.z + 0.5) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/entity/RideableDummy.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/entity/RideableDummy.kt index 8f12bba1a..0b8dc9950 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/entity/RideableDummy.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/entity/RideableDummy.kt @@ -15,6 +15,11 @@ class RideableDummy(level: Level) : Entity(MEntityTypes.RIDEABLE_DUMMY, level) { var blockPos: BlockPos = BlockPos.ZERO var blockState: BlockState = Blocks.AIR.defaultBlockState() + constructor(level: Level, blockPos: BlockPos, blockState: BlockState) : this(level) { + this.blockPos = blockPos + this.blockState = blockState + } + init { isNoGravity = true noPhysics = true @@ -23,10 +28,9 @@ class RideableDummy(level: Level) : Entity(MEntityTypes.RIDEABLE_DUMMY, level) { override fun tick() { super.tick() + if (level().isClientSide) return if (level().getBlockState(blockPos) != blockState || passengers.isEmpty()) { discard() - - return } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MEntityTypes.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MEntityTypes.kt index 18a2a378f..beb4f5153 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MEntityTypes.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MEntityTypes.kt @@ -29,7 +29,11 @@ object MEntityTypes { } val RIDEABLE_DUMMY: EntityType by registry.register(MNames.RIDEABLE_DUMMY) { - EntityType.Builder.of({ _, level -> RideableDummy(level)}, MobCategory.MISC).sized(0.5f, 0.5f).build(MNames.RIDEABLE_DUMMY) + EntityType.Builder.of({ _, level -> RideableDummy(level) }, MobCategory.MISC) + .sized(0.5f, 0.5f) + .passengerAttachments(0.5f) + .clientTrackingRange(8) + .build(MNames.RIDEABLE_DUMMY) } fun register(bus: IEventBus) {