From 30046b25c81b70c8fbb896be911d8be374658d2b Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Tue, 28 Dec 2021 22:11:24 +0300 Subject: [PATCH] Pedestals entity fix --- .../betterend/blocks/basis/PedestalBlock.java | 4 +- .../blocks/entities/PedestalBlockEntity.java | 47 +++++-------------- 2 files changed, 15 insertions(+), 36 deletions(-) diff --git a/src/main/java/ru/betterend/blocks/basis/PedestalBlock.java b/src/main/java/ru/betterend/blocks/basis/PedestalBlock.java index 1b9720ef..597e7de4 100644 --- a/src/main/java/ru/betterend/blocks/basis/PedestalBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/PedestalBlock.java @@ -109,7 +109,7 @@ public class PedestalBlock extends BaseBlockNotFull implements EntityBlock { pedestal.setItem(0, itemStack); level.blockEntityChanged(pos); checkRitual(level, pos); - return InteractionResult.SUCCESS;//InteractionResult.sidedSuccess(level.isClientSide()); + return InteractionResult.sidedSuccess(level.isClientSide()); } else { ItemStack itemStack = pedestal.getItem(0); @@ -117,7 +117,7 @@ public class PedestalBlock extends BaseBlockNotFull implements EntityBlock { pedestal.removeItemNoUpdate(0); level.blockEntityChanged(pos); checkRitual(level, pos); - return InteractionResult.SUCCESS;//InteractionResult.sidedSuccess(level.isClientSide()); + return InteractionResult.sidedSuccess(level.isClientSide()); } return InteractionResult.FAIL; } diff --git a/src/main/java/ru/betterend/blocks/entities/PedestalBlockEntity.java b/src/main/java/ru/betterend/blocks/entities/PedestalBlockEntity.java index 06c3ff73..52a62b05 100644 --- a/src/main/java/ru/betterend/blocks/entities/PedestalBlockEntity.java +++ b/src/main/java/ru/betterend/blocks/entities/PedestalBlockEntity.java @@ -1,7 +1,5 @@ package ru.betterend.blocks.entities; -//import net.fabricmc.fabric.api.block.entity.BlockEntityClientSerializable; - import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; @@ -15,13 +13,9 @@ import ru.betterend.blocks.basis.PedestalBlock; import ru.betterend.registry.EndBlockEntities; import ru.betterend.registry.EndItems; -// TODO Fix client serialisation -public class PedestalBlockEntity extends BlockEntity implements Container/*, BlockEntityClientSerializable*/ { +public class PedestalBlockEntity extends BlockEntity implements Container { private ItemStack activeItem = ItemStack.EMPTY; - //private final int maxAge = 314; - //private int age; - public PedestalBlockEntity(BlockPos blockPos, BlockState blockState) { this(EndBlockEntities.PEDESTAL, blockPos, blockState); } @@ -30,13 +24,18 @@ public class PedestalBlockEntity extends BlockEntity implements Container/*, Blo super(blockEntityType, blockPos, blockState); } - /*public int getAge() { - return age; - }*/ + protected void toTag(CompoundTag tag) { + if (activeItem != ItemStack.EMPTY) { + tag.put("active_item", activeItem.save(new CompoundTag())); + } + } - /*public int getMaxAge() { - return maxAge; - }*/ + protected void fromTag(CompoundTag tag) { + if (tag.contains("active_item")) { + CompoundTag itemTag = tag.getCompound("active_item"); + activeItem = ItemStack.of(itemTag); + } + } @Override public int getContainerSize() { @@ -114,29 +113,9 @@ public class PedestalBlockEntity extends BlockEntity implements Container/*, Blo @Override protected void saveAdditional(CompoundTag tag) { super.saveAdditional(tag); - fromTag(tag); + toTag(tag); } - protected void fromTag(CompoundTag tag) { - if (tag.contains("active_item")) { - CompoundTag itemTag = tag.getCompound("active_item"); - activeItem = ItemStack.of(itemTag); - } - } - - /*public static void tick(Level level, BlockPos blockPos, BlockState blockState, T uncastedEntity) { - clientTick(level, blockPos, blockState, (PedestalBlockEntity) uncastedEntity); - }*/ - - /*private static void clientTick(Level tickLevel, BlockPos tickPos, BlockState tickState, PedestalBlockEntity blockEntity) { - if (!blockEntity.isEmpty()) { - blockEntity.age++; - if (blockEntity.age > blockEntity.maxAge) { - blockEntity.age = 0; - } - } - }*/ - @Override public ClientboundBlockEntityDataPacket getUpdatePacket() { return ClientboundBlockEntityDataPacket.create(this);