Nullable entity in loot context

This commit is contained in:
IzzelAliz 2020-05-17 12:37:36 +08:00
parent f58f636b36
commit 8fa71dd5c3

View File

@ -3,15 +3,20 @@ package io.izzel.arclight.mixin.core.block;
import io.izzel.arclight.bridge.block.BlockBridge;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.ItemEntity;
import net.minecraft.item.BlockItemUseContext;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.Direction;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.GameRules;
import net.minecraft.world.IWorld;
import net.minecraft.world.IWorldReader;
import net.minecraft.world.World;
import net.minecraft.world.server.ServerWorld;
import net.minecraft.world.storage.loot.LootContext;
import net.minecraft.world.storage.loot.LootParameters;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
import org.spongepowered.asm.mixin.Shadow;
@ -52,6 +57,16 @@ public abstract class BlockMixin implements BlockBridge {
}
}
/**
* @author IzzelAliz
* @reason
*/
@Overwrite
public static List<ItemStack> func_220077_a(BlockState state, ServerWorld worldIn, BlockPos pos, @Nullable TileEntity tileEntityIn, Entity entityIn, ItemStack stack) {
LootContext.Builder lootcontext$builder = (new LootContext.Builder(worldIn)).withRandom(worldIn.rand).withParameter(LootParameters.POSITION, pos).withParameter(LootParameters.TOOL, stack).withNullableParameter(LootParameters.THIS_ENTITY, entityIn).withNullableParameter(LootParameters.BLOCK_ENTITY, tileEntityIn);
return state.getDrops(lootcontext$builder);
}
public int getExpDrop(BlockState blockState, World world, BlockPos blockPos, ItemStack itemStack) {
return 0;
}