package net.minecraft.entity; import net.minecraft.block.state.IBlockState; import net.minecraft.command.server.CommandBlockLogic; import net.minecraft.entity.item.EntityMinecart; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.BlockPos; import net.minecraft.util.IChatComponent; import net.minecraft.util.Vec3; import net.minecraft.world.World; public class EntityMinecartCommandBlock extends EntityMinecart { private final CommandBlockLogic field_145824_a = new CommandBlockLogic() { private static final String __OBFID = "CL_00001673"; public void func_145756_e() { EntityMinecartCommandBlock.this.getDataWatcher().updateObject(23, this.getCustomName()); EntityMinecartCommandBlock.this.getDataWatcher().updateObject(24, IChatComponent.Serializer.componentToJson(this.getLastOutput())); } public BlockPos getPosition() { return new BlockPos(EntityMinecartCommandBlock.this.posX, EntityMinecartCommandBlock.this.posY + 0.5D, EntityMinecartCommandBlock.this.posZ); } public Vec3 getPositionVector() { return new Vec3(EntityMinecartCommandBlock.this.posX, EntityMinecartCommandBlock.this.posY, EntityMinecartCommandBlock.this.posZ); } public World getEntityWorld() { return EntityMinecartCommandBlock.this.worldObj; } public Entity getCommandSenderEntity() { return EntityMinecartCommandBlock.this; } }; private int field_145823_b = 0; private static final String __OBFID = "CL_00001672"; public EntityMinecartCommandBlock(World worldIn) { super(worldIn); } public EntityMinecartCommandBlock(World worldIn, double p_i45322_2_, double p_i45322_4_, double p_i45322_6_) { super(worldIn, p_i45322_2_, p_i45322_4_, p_i45322_6_); } protected void entityInit() { super.entityInit(); this.getDataWatcher().addObject(23, ""); this.getDataWatcher().addObject(24, ""); } /** * (abstract) Protected helper method to read subclass entity data from NBT. */ protected void readEntityFromNBT(NBTTagCompound tagCompund) { super.readEntityFromNBT(tagCompund); this.field_145824_a.readDataFromNBT(tagCompund); this.getDataWatcher().updateObject(23, this.func_145822_e().getCustomName()); this.getDataWatcher().updateObject(24, IChatComponent.Serializer.componentToJson(this.func_145822_e().getLastOutput())); } /** * (abstract) Protected helper method to write subclass entity data to NBT. */ protected void writeEntityToNBT(NBTTagCompound tagCompound) { super.writeEntityToNBT(tagCompound); this.field_145824_a.writeDataToNBT(tagCompound); } public EntityMinecart.EnumMinecartType func_180456_s() { return EntityMinecart.EnumMinecartType.COMMAND_BLOCK; } public IBlockState func_180457_u() { return Blocks.command_block.getDefaultState(); } public CommandBlockLogic func_145822_e() { return this.field_145824_a; } /** * Called every tick the minecart is on an activator rail. Args: x, y, z, is the rail receiving power */ public void onActivatorRailPass(int p_96095_1_, int p_96095_2_, int p_96095_3_, boolean p_96095_4_) { if (p_96095_4_ && this.ticksExisted - this.field_145823_b >= 4) { this.func_145822_e().trigger(this.worldObj); this.field_145823_b = this.ticksExisted; } } /** * First layer of player interaction */ public boolean interactFirst(EntityPlayer playerIn) { this.field_145824_a.func_175574_a(playerIn); return false; } public void func_145781_i(int p_145781_1_) { super.func_145781_i(p_145781_1_); if (p_145781_1_ == 24) { try { this.field_145824_a.func_145750_b(IChatComponent.Serializer.jsonToComponent(this.getDataWatcher().getWatchableObjectString(24))); } catch (Throwable var3) { ; } } else if (p_145781_1_ == 23) { this.field_145824_a.setCommand(this.getDataWatcher().getWatchableObjectString(23)); } } }