85 lines
2.4 KiB
Java
85 lines
2.4 KiB
Java
package net.minecraft.entity;
|
|
|
|
import javax.annotation.Nullable;
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
import net.minecraft.inventory.InventoryMerchant;
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraft.util.math.BlockPos;
|
|
import net.minecraft.util.text.ITextComponent;
|
|
import net.minecraft.util.text.TextComponentTranslation;
|
|
import net.minecraft.village.MerchantRecipe;
|
|
import net.minecraft.village.MerchantRecipeList;
|
|
import net.minecraft.world.World;
|
|
import net.minecraftforge.fml.relauncher.Side;
|
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
|
|
|
@SideOnly(Side.CLIENT)
|
|
public class NpcMerchant implements IMerchant
|
|
{
|
|
/** Instance of Merchants Inventory. */
|
|
private final InventoryMerchant merchantInventory;
|
|
/** This merchant's current player customer. */
|
|
private final EntityPlayer customer;
|
|
/** The MerchantRecipeList instance. */
|
|
private MerchantRecipeList recipeList;
|
|
private final ITextComponent name;
|
|
|
|
public NpcMerchant(EntityPlayer customerIn, ITextComponent nameIn)
|
|
{
|
|
this.customer = customerIn;
|
|
this.name = nameIn;
|
|
this.merchantInventory = new InventoryMerchant(customerIn, this);
|
|
}
|
|
|
|
@Nullable
|
|
public EntityPlayer getCustomer()
|
|
{
|
|
return this.customer;
|
|
}
|
|
|
|
public void setCustomer(@Nullable EntityPlayer player)
|
|
{
|
|
}
|
|
|
|
@Nullable
|
|
public MerchantRecipeList getRecipes(EntityPlayer player)
|
|
{
|
|
return this.recipeList;
|
|
}
|
|
|
|
public void setRecipes(@Nullable MerchantRecipeList recipeList)
|
|
{
|
|
this.recipeList = recipeList;
|
|
}
|
|
|
|
public void useRecipe(MerchantRecipe recipe)
|
|
{
|
|
recipe.incrementToolUses();
|
|
}
|
|
|
|
/**
|
|
* Notifies the merchant of a possible merchantrecipe being fulfilled or not. Usually, this is just a sound byte
|
|
* being played depending if the suggested itemstack is not null.
|
|
*/
|
|
public void verifySellingItem(ItemStack stack)
|
|
{
|
|
}
|
|
|
|
/**
|
|
* Get the formatted ChatComponent that will be used for the sender's username in chat
|
|
*/
|
|
public ITextComponent getDisplayName()
|
|
{
|
|
return (ITextComponent)(this.name != null ? this.name : new TextComponentTranslation("entity.Villager.name", new Object[0]));
|
|
}
|
|
|
|
public World getWorld()
|
|
{
|
|
return this.customer.world;
|
|
}
|
|
|
|
public BlockPos getPos()
|
|
{
|
|
return new BlockPos(this.customer);
|
|
}
|
|
} |