- 最后登录:
- -
- 阅读权限:
- 25
- 主题数:
- 6
- 总积分:
- 2038
- 回帖数:
- 31
- 精华数:
- 0
- MCID:
- CuiJiangQiu
-
EU:5
RF:1951
Vis:4
Mana:0
AE:70
|
本帖最后由 C、江秋菌 于 2024-3-9 21:18 编辑
我也不是特别懂渲染的问题,但你可以试试先创建一个类:- package net.mcreator.test.procedures;//不要在意Mcr(>-<)
- import net.minecraft.world.level.block.entity.BlockEntity;
- import net.minecraft.world.level.LevelAccessor;
- import net.minecraft.core.BlockPos;
- public class ShowProcedure {//这里的ShowProcedure就是你后面需要调用的
- public static void execute(LevelAccessor world, double x, double y, double z) {
- BlockEntity blockEntity = world.getBlockEntity(new BlockPos((int) x, (int) y, (int) z));
- if (blockEntity != null) {
- // 如果 BlockEntity 存在,那么标记它需要更新
- blockEntity.setChanged();
- }
- }
复制代码
再在你的实体类代码里加一段这个:
- @Override
- public ItemStack removeItem(int index, int count) {
- ItemStack removedItem = super.removeItem(index, count);
- // 当物品被移除时,调用一个新的方法来更新渲染
- if (!removedItem.isEmpty()) {
- ShowProcedure.execute(level, worldPosition.getX(), worldPosition.getY(), worldPosition.getZ());
- }
- return removedItem;
-
复制代码
这个我拿Mcr的“物品槽内容改变时的”代码改的,不知道能不能成功
|
|