/*
* Copyright (c) CovertJaguar, 2014 http://railcraft.info
*
* This code is the property of CovertJaguar
* and may only be used with explicit written
* permission unless otherwise specified on the
* license page at http://railcraft.info/wiki/info:license.
*/
package mods.railcraft.common.blocks.machine.alpha;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import java.util.Random;
import net.minecraft.entity.Entity;
import net.minecraft.entity.passive.EntityTameable;
import net.minecraftforge.event.entity.player.EntityInteractEvent;
/**
*
* @author CovertJaguar <http://www.railcraft.info>
*/
public class TamingInteractHandler {
private Random rand = new Random();
@SubscribeEvent
public void interact(EntityInteractEvent event) {
Entity entity = event.target;
if (entity instanceof EntityTameable) {
EntityTameable tameable = (EntityTameable) entity;
String ownerId = tameable.func_152113_b();
if (tameable.isTamed() && (ownerId == null || ownerId.trim().length() == 0)) {
if (rand.nextInt(3) == 0) {
tameable.func_152115_b(event.entityPlayer.getUniqueID().toString());
playTameEffect(tameable, true);
tameable.func_70907_r().setSitting(true);
tameable.worldObj.setEntityState(tameable, (byte) 7);
} else {
playTameEffect(tameable, false);
tameable.worldObj.setEntityState(tameable, (byte) 6);
}
event.setCanceled(true);
}
}
}
protected void playTameEffect(EntityTameable tameable, boolean par1) {
String var2 = "heart";
if (!par1)
var2 = "smoke";
for (int var3 = 0; var3 < 7; ++var3) {
double var4 = rand.nextGaussian() * 0.02D;
double var6 = rand.nextGaussian() * 0.02D;
double var8 = rand.nextGaussian() * 0.02D;
tameable.worldObj.spawnParticle(var2, tameable.posX + (double) (rand.nextFloat() * tameable.width * 2.0F) - (double) tameable.width, tameable.posY + 0.5D + (double) (rand.nextFloat() * tameable.height), tameable.posZ + (double) (rand.nextFloat() * tameable.width * 2.0F) - (double) tameable.width, var4, var6, var8);
}
}
}