1
0
mirror of https://github.com/SquidDev-CC/CC-Tweaked synced 2025-11-06 00:22:58 +00:00
Files
CC-Tweaked/remappedSrc/dan200/computercraft/shared/data/BlockNamedEntityLootCondition.java
2021-07-11 01:33:21 +00:00

55 lines
1.6 KiB
Java

/*
* This file is part of ComputerCraft - http://www.computercraft.info
* Copyright Daniel Ratcliffe, 2011-2021. Do not distribute without permission.
* Send enquiries to dratcliffe@gmail.com
*/
package dan200.computercraft.shared.data;
import net.minecraft.block.entity.BlockEntity;
import net.minecraft.loot.condition.LootCondition;
import net.minecraft.loot.condition.LootConditionType;
import net.minecraft.loot.context.LootContext;
import net.minecraft.loot.context.LootContextParameter;
import net.minecraft.loot.context.LootContextParameters;
import net.minecraft.util.Nameable;
import javax.annotation.Nonnull;
import java.util.Collections;
import java.util.Set;
/**
* A loot condition which checks if the tile entity has a name.
*/
public final class BlockNamedEntityLootCondition implements LootCondition
{
public static final BlockNamedEntityLootCondition INSTANCE = new BlockNamedEntityLootCondition();
public static final LootConditionType TYPE = ConstantLootConditionSerializer.type( INSTANCE );
public static final Builder BUILDER = () -> INSTANCE;
private BlockNamedEntityLootCondition()
{
}
@Override
public boolean test( LootContext lootContext )
{
BlockEntity tile = lootContext.get( LootContextParameters.BLOCK_ENTITY );
return tile instanceof Nameable && ((Nameable) tile).hasCustomName();
}
@Nonnull
@Override
public Set<LootContextParameter<?>> getRequiredParameters()
{
return Collections.singleton( LootContextParameters.BLOCK_ENTITY );
}
@Override
@Nonnull
public LootConditionType getType()
{
return TYPE;
}
}