Exemple #1
0
        private void SetStateIfMobInteractsWithPlate(net.minecraft.src.World world, int i
                                                     , int j, int k)
        {
            bool          flag  = world.GetBlockMetadata(i, j, k) == 1;
            bool          flag1 = false;
            float         f     = 0.125F;
            List <Entity> list  = null;

            if (triggerMobType == net.minecraft.src.EnumMobType.everything)
            {
                list = world.GetEntitiesWithinAABBExcludingEntity(null, net.minecraft.src.AxisAlignedBB
                                                                  .GetBoundingBoxFromPool((float)i + f, j, (float)k + f, (float)(i + 1) - f, (double
                                                                                                                                              )j + 0.25D, (float)(k + 1) - f));
            }
            if (triggerMobType == net.minecraft.src.EnumMobType.mobs)
            {
                list = world.GetEntitiesWithinAABB(Sharpen.Runtime.GetClassForType(typeof(net.minecraft.src.EntityLiving
                                                                                          )), net.minecraft.src.AxisAlignedBB.GetBoundingBoxFromPool((float)i + f, j, (float
                                                                                                                                                                       )k + f, (float)(i + 1) - f, (double)j + 0.25D, (float)(k + 1) - f));
            }
            if (triggerMobType == net.minecraft.src.EnumMobType.players)
            {
                list = world.GetEntitiesWithinAABB(Sharpen.Runtime.GetClassForType(typeof(net.minecraft.src.EntityPlayer
                                                                                          )), net.minecraft.src.AxisAlignedBB.GetBoundingBoxFromPool((float)i + f, j, (float
                                                                                                                                                                       )k + f, (float)(i + 1) - f, (double)j + 0.25D, (float)(k + 1) - f));
            }
            if (list.Count > 0)
            {
                flag1 = true;
            }
            if (flag1 && !flag)
            {
                world.SetBlockMetadataWithNotify(i, j, k, 1);
                world.NotifyBlocksOfNeighborChange(i, j, k, ID);
                world.NotifyBlocksOfNeighborChange(i, j - 1, k, ID);
                world.MarkBlocksDirty(i, j, k, i, j, k);
                world.PlaySoundEffect((double)i + 0.5D, (double)j + 0.10000000000000001D, (double
                                                                                           )k + 0.5D, "random.click", 0.3F, 0.6F);
            }
            if (!flag1 && flag)
            {
                world.SetBlockMetadataWithNotify(i, j, k, 0);
                world.NotifyBlocksOfNeighborChange(i, j, k, ID);
                world.NotifyBlocksOfNeighborChange(i, j - 1, k, ID);
                world.MarkBlocksDirty(i, j, k, i, j, k);
                world.PlaySoundEffect((double)i + 0.5D, (double)j + 0.10000000000000001D, (double
                                                                                           )k + 0.5D, "random.click", 0.3F, 0.5F);
            }
            if (flag1)
            {
                world.ScheduleUpdateTick(i, j, k, ID, TickRate());
            }
        }